3

我有以下问题:

当用户添加某些特定产品时,有一个 3rd 方扩展程序会自动将产品添加到购物车作为礼物。它也适用优惠券。例如,当用户想要购买电视时,它会添加免费的 WiFi 接收器。它添加的产品足够好,但必须有购物车规则才能为这些产品提供 100% 的折扣。

我需要做的是让这个扩展程序在没有购物车规则的情况下免费添加这些产品。我发现与折扣有关的唯一事件是sales_quote_address_discount_item,但任何使用它的操作都没有结果。

因此,如果有人指出我正确的方向,我将非常感激:此折扣在代码中的确切位置以及如何从此扩展中获得相同的折扣?

4

3 回答 3

7

优惠券的折扣适用于Mage_SalesRule_Model_Validatorprocess()方法。每次collectTotals()在报价单上调用此方法时都会调用此方法。您需要覆盖这个类(可能还有其他几个)来覆盖优惠券行为。该方法中有一个事件salesrule_validator_process,您可以使用它而不是覆盖整个方法,但这取决于您需要更改的逻辑,以确定它是否发生在适合您的位置。

于 2011-09-11T03:23:33.827 回答
2

您还可以在触发 add_to_cart_after 事件后添加自己的逻辑。(例如,创建您自己的活动 apply_discount_after_add_to_cart ;)

于 2011-09-13T06:17:24.890 回答
2

看看这个模块;它可以将产品作为礼物添加到购物车中,并在添加过程中将其价格设置为 0 美元:http: //www.code4business.de/make-a-gift-magento-warenkorbpreisregeln-um-geschenke-erweitern/

为此,它会捕获两个事件 salesrule_validator_process 和 sales_quote_collect_totals_before。它不会重写任何东西。该代码还在http://www.webguys.de/magento/turchen-21-kostenlose-produkte-uber-warenkorb-preisregeln/中进行了详细描述。

它需要一个价格规则——但只是为了确定您收到礼物的产品(或条件)。礼物永远是免费的;不需要额外的规则。

于 2014-02-28T16:55:45.420 回答