1

我希望能够创建自己的自定义促销操作。关于这个主题的文档很少。

我正在通过向内看来拼凑其中的一些app/code/mage/SalesRule/

但是我认为在这个模块的观察者中会有一个在购物车上调用的方法来重新计算总数。我看到的方法是addProductAttributes

当我对此进行 var 转储时,我曾期望在组合中的某个地方看到价格,但事实并非如此。

销售规则如何影响总成本?有人可以指出我正确的方向吗?

-- 更新:app/code/core/Mage/SalesRule/Model/Validator.php似乎是一个关键组件(参见public function process(Mage_Sales_Model_Quote_Item_Abstract $item

4

1 回答 1

3

它从 Discount 收集器开始Mage_SalesRule_Model_Quote_Discount,它创建一个实例Mage_SalesRule_Model_Validator并循环引用以将$item(或子项,如果它是可配置的)发送到流程方法(第 99 行)

$this->_calculator->process($child);  

在那里它循环规则

foreach ($this->_getRules() as $rule)  

然后你有两个验证:

if (!$this->_canProcessRule($rule, $address)) {
    continue;
}

if (!$rule->getActions()->validate($item)) {
   continue;
}  

第一个检查条件,第二个,获取条件动作模型,并将动作发送到验证。

然后,根据

$rule->getSimpleAction()  

它决定对项目做什么。

于 2013-08-14T23:52:58.337 回答