Magento购物车价格规则 - 购买5个SKU的任意组合,免费获赠一个! #失败

时间:2014-06-03 23:24:08

标签: magento conditional-statements shopping-cart magento-1.8

我已尝试过所有条件和行动的组合,但似乎无法破解这一点。应该很简单。任何帮助将非常感激。

我有5个SKU&#39。让我们称他们为A,B,C,D,E。所有这些都是相同的价格(8.99)。每购买5个 - 你就可以免费获得一个。此规则涵盖了这些SKU的任何组合。应该匹配的示例:

  • 如果购物车中有6个A,则免费​​(8.99折扣)。
  • 如果购物车中有2个A,2个B和2个C,则一个是免费的(8.99折扣)。
  • 如果购物车中有12个A,则有两个是免费的(17.98折扣)。
  • 如果购物车中有6个C,6个D和6个E,则有3个免费(26.97折扣)。

在这里,我相信应该完成这项工作,但事实并非如此:

条件: enter image description here

操作: enter image description here

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我更倾向于使用事件 - 观察者方法,这将为您提供最大的灵活性。 您可以构建一个捕获add-to-cart事件sales_quote_add_item的观察者,并将您的逻辑放在那里。

观察者功能中的以下代码将指向正确的方向:

//添加了产品:

$item = $observer->getEvent()->getQuoteItem();
$itemQty = $item->getQty();
$itemSku = $item->getSku();

// Change price of added product 
$item->setOriginalCustomPrice($newPrice);

//在购物车中获取所有产品:

$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
    $itemSku = $item->getSku();
    $itemQty = $item->getQty();
}
祝你好运!