将产品添加到购物车时更新小计

时间:2012-03-20 15:26:40

标签: magento

我目前正以编程方式向购物车添加产品,为我的网站创建“免费样品”方面。

目前,所有这些产品都是0美元,您最多可以添加15个。一旦购物车中有5个“免费样品”产品,我需要在小计中添加20美元。

我知道我可以使用以下方式获得格式:

Mage::getSingleton('checkout/cart')->getQuote()->getGrandTotal();

但是如何访问小计并且还要加20美元?

我猜我需要写一个观察者,因为我需要检查从购物车中添加/删除产品的时间,以便添加20美元。

之前有没有人这样做过,或者能指出我如何做到这一点的正确方向?

非常感谢

谢谢

2 个答案:

答案 0 :(得分:5)

我实际上最近回答了这个问题,这是一个需要做什么的基本概念,如果您需要更具体的细节,请告诉我: 添加一个查找此事件的观察者'sales_quote_add_item':

<events>
    <sales_quote_add_item>
        <observers>
            <priceupdate_observer>
                <type>singleton</type>
                <class>mymodule/observer</class>
                <method>updatePrice</method>
            </priceupdate_observer>
        </observers>
    </sales_quote_add_item>

观察者应该有一个类似这样的方法:

public function updatePrice($observer) {
    $event = $observer->getEvent();
    $quote_item = $event->getQuoteItem();
    if(sample etc...) $new_price = <insert logic>
    $quote_item->setOriginalCustomPrice($new_price);
    $quote_item->save();
}

答案 1 :(得分:0)

你得到的这个稍微有点错误,总计是根据你所引用的商品价格来计算的,而“总数”不仅仅是你可以添加或减去你想要的东西。

对于您当前的任务,我建议您创建购物车规则“add x get n for free”