基于数量的 Magento 每个客户折扣

Magento per customer discount based on qty

我需要根据每个客户的折扣对某些产品应用折扣 table,但部分原因是每个客户 table 中的每件商品都有数量价格优惠基础。

当商品添加到购物车时以及购物车中的数量稍后更新时,最好连接哪个观察者才能应用此折扣?

要在商品添加到购物车时设置代码,您可以使用此观察器

<events>
    <checkout_cart_save_before> 
       <observers>
         <checkout_cart_save_before_handler> 
            <type>model</type> 
            <class>Vendor_Extension_Model_Observer</class> 
            <method>AddToCartBefore</method>  
         </checkout_cart_save_before_handler>
       </observers>
    </checkout_cart_save_before>
</events>

如果购物车中有任何商品更新,您可以使用此事件。

<events>
  <checkout_cart_update_items_before>
    <observers>
      <checkout_cart_update_items_before_handler> 
        <class>Vendor_Extension_Model_Observer</class> 
        <method>UpdateCartBefore</method>  
      </checkout_cart_update_items_before_handler>
    </observers>
  </checkout_cart_update_items_before>
</events>

我最终使用的是...

        <sales_quote_add_item>
            <observers>
                <fluidaccess>
                    <class>Magnesium_Access_Model_Observer_Product</class>
                    <method>setCartQtyProductDiscount</method>
                </fluidaccess>
            </observers>
        </sales_quote_add_item>

        <checkout_cart_update_items_before>
            <observers>
                <fluidaccess>
                    <class>Magnesium_Access_Model_Observer_Product</class>
                    <method>setCartQtyUpdateProductDiscount</method>
                </fluidaccess>
            </observers>
        </checkout_cart_update_items_before>

我使用 sales_quote_add_item 而不是 checkout_cart_save_before,因为我正在即时更新价格,而 cart_save_before 只是没有按照我想要的方式工作。