我目前正以编程方式向购物车添加产品,为我的网站创建“免费样品”方面。
目前,所有这些产品都是0美元,您最多可以添加15个。一旦购物车中有5个“免费样品”产品,我需要在小计中添加20美元。
我知道我可以使用以下方式获得格式:
Mage::getSingleton('checkout/cart')->getQuote()->getGrandTotal();
但是如何访问小计并且还要加20美元?
我猜我需要写一个观察者,因为我需要检查从购物车中添加/删除产品的时间,以便添加20美元。
之前有没有人这样做过,或者能指出我如何做到这一点的正确方向?
非常感谢
谢谢
答案 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”