一、代码流程:

1、Mage_Sales_Model_Quote::collectTotals();

图1-001 Mage_Sale模块的Mage_Sales_Model_Quote::collectTotals()方法

2、循环 Mage_Sales_Model_Quote::getAllAddress()地址信息

3、调用 Mage_Sales_Model_Quote_Address::collectTotals();

图1-002 Mage_Sale模块的Mage_Sales_Model_Quote_Address::collectTotals()方法

4、循环 Mage_Sales_Model_Quote_Address::getTotalCollector()->getCollectors()

5、调用 Mage_Sales_Model_Quote_Address_Total_Collector::getCollectors();

图1-003 Mage_Sale模块的Mage_Sales_Model_Quote_Address_Total_Collector::_initModels()方法

图1-004 Mage_Sale模块的Mage_Sales_Model_Config_Ordered::_initCollectors()方法

图1-005 Mage_Sale模块的Mage_Sales_Model_Config_Ordered::_getSortedCollectorCodes()方法

6、至此,就得到了config.xml里配置得各计价用的total类,他们均继承与Mage_Sales_Model_Quote_Address_Total_Abstract类,并分别实现各自的collect方法

注:尤其注意理解config.xml的global/sales/quote/total/{code}的before与after两个配置项对价格计算的影响及作用

图1-005-01 DEBUG调试Mage_Sales_Model_Config_Ordered::_getSortedCollectorCodes()方法 【排序前】

图1-005-02 DEBUG调试Mage_Sales_Model_Config_Ordered::_getSortedCollectorCodes()方法 【排序后】

二、案例分析

现在,我们抽出最关键一个促销折扣的计价类做为示例来看一下他是怎么实现促销匹配及价格计算的

图2-001 Mage_SalesRule模块的config.xml

图2-002 Mage_SalesRule模块的Mage_SalesRule_Model_Quote_Discount::__construct()方法

图2-002-01 Mage_SalesRule模块的Mage_SalesRule_Model_Quote_Discount::collect()方法

图2-002-02 Mage_SalesRule模块的Mage_SalesRule_Model_Quote_Discount::collect()方法

图2-003 Mage_SalesRule模块的Mage_SalesRule_Model_Validator::init()方法

图2-004 Mage_SalesRule模块的Mage_SalesRule_Model_Validator::initTotals()方法

图2-005 Mage_SalesRule模块的Mage_SalesRule_Model_Validator::process()方法【关键】

(责任编辑:最模板)

购物车 怎么计算总价 php,Magento购物车价格计算的功能实现代码相关推荐

  1. python计算总价_vue 实现购物车总价计算

    效果如下所示: js window.οnlοad=function () { var vm = new Vue({ el:'#huo', data:{ myList:[ { number:0, pri ...

  2. 070——VUE中vuex之使用getters计算每一件购物车中商品的总价

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  3. 购物车(七)-计算商品总价——计算总价-计算属性 数据缓存api-wx.setStorageSync()方法

    计算商品总价--计算总价-计算属性 & 数据缓存api-wx.setStorageSync()方法 通过计算属性计算商品总价 allPrice() {// 计算购物车所有商品的总价格// 单价 ...

  4. php总价,JS实现购物车中商品总价计算

    JS计算购物车中商品总价,供大家参考,具体内容如下 题目要求: 购物车中有若干商品信息,其中包括商品的名称.单价.数量,计算购物车中商品的总价. 具体思路: 商品信息通过创建商品对象来实现,若干商品的 ...

  5. uniapp中购物车demo(全选反选、计算总价、改变商品数量)

    复选框checkbox插件下载地址 这个插件可以使用Vue中的双向绑定,方便(给购物车列表中的数据添加双向绑定的属性即可) HTML <template><view class=&q ...

  6. Vue购物车功能计算总价/全选/删除

    要求 功能实现 初始页面 功能1:删除 点击删除操作后,整行可以被删除. 功能2:全选 当所有商品都被勾选上是,全选按钮也勾上,当全选按钮勾上时,所有商品都被勾选上. 功能3:计算总价 当输入商品数量 ...

  7. Flutter实战视频-移动电商-59.购物车_计算商品价格和数量

    59.购物车_计算商品价格和数量 本节课主要是加上自动计算的功能 provide/cart.dart 在provide的类里面增加两个变量 cart_bottom.dart 三个组件因为我们都需要套一 ...

  8. Magento教程 1:免费购物车系统,轻松建立Magento第一步!

    Magento为多功能购物车系统,为电子商务提供了灵活.强大的管理系统,让商家在经营网购事业时能够事半功倍,顺利掌管订单.库存等大小琐事. 若您对Magento有兴趣,并正在经营网购事业,欢迎至官方网 ...

  9. 淘宝购物车运费计算方式

    淘宝购物车运费计算方式 如果您使用购物车在同一卖家店铺购买多件非虚拟宝贝,无论您购买宝贝数量是多少,只要是一个订单就只需付一笔运费,但若宝贝支持的运送方式没有产生交集,也会被拆分成不同的订单,点此查看 ...

最新文章

  1. UVA 10494 - If We Were a Child Again(高精度除法和取余)
  2. java i 原子_为什么i ++不是原子的?
  3. [bug]超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。...
  4. fabrication的拦截器Interceptors简介
  5. 计算机网络系统什么组成,计算机网络系统由什么组成
  6. GoldenGate Logdump基本使用
  7. 好文推荐 | 从数据的属性看数据资产
  8. 在HTML5中,用getCurrentPosition()获取用户的当前位置
  9. c语言象棋图片大全精美,【图片】象棋C语言【中国新象棋吧】_百度贴吧
  10. 龙之谷手游微信连接授权服务器失败,龙之谷手游ios微信授权失败怎么办_龙之谷手游ios微信授权失败解决办法-66街机网...
  11. 实现家庭WiFi网络全覆盖
  12. P5144 【蜈蚣】
  13. android 静态蓝牙地址吗,用于BLE广告的Android 5静态蓝牙MAC地址 | 所有编程讨论 | zhouni.net...
  14. Visual Studio 快速统一设置项目属性(以VS2017为例)
  15. 白天 996, 我还能晚上669!
  16. Verilog纠错记录
  17. 2020上半年盘点:全球AI融资降至3年最低,但这四大领域被按了加速键
  18. 计算机硬件系统的外观组成图,计算机硬件系统及组装.doc
  19. 优达学城 Udacity 数据分析 数据科学家 数据工程师 商业分析 SQL
  20. k线顶分型 python_顶底分型-(K线分类及顶底分型的一种数学原理 源码 贴图)...

热门文章

  1. 【如何把CSDN博客转为PDF?】手把手教你如何将CSDN博客以正确格式输出为PDF或打印
  2. 投稿sci杂志一般会经过什么过程
  3. CES Asia:电子烟成为行业新热点
  4. 代码写个九宫格布局显示图片
  5. 根据时间戳计算宝宝年龄(年月日)
  6. python计算狗的年龄_如何判断狗的年龄?
  7. matlab中的delaunay,基于MATLAB 实现二维delaunay 三角剖分
  8. ezTrack-master使用教程
  9. pandas中的to_excel方法解析
  10. 无论何时,请保持微笑