【问题标题】:Magento - apply discount without shopping cart ruleMagento - 在没有购物车规则的情况下应用折扣
【发布时间】:2011-11-14 13:41:21
【问题描述】:

我有以下问题:

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

我需要做的是制作此扩展程序以免费添加这些产品,而无需购物车规则。我发现与折扣有关的唯一事件是sales_quote_address_discount_item,但对其进行的任何操作都没有结果。

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

【问题讨论】:

    标签: magento magento-1.5


    【解决方案1】:

    看看这个模块;它可以将产品作为礼物添加到购物车中,并在添加过程中将其价格设置为 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/也有详细描述。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 非常感谢。这就是我所需要的。
        猜你喜欢
        • 1970-01-01
        • 2013-03-25
        • 2011-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多