希望有人可以帮助我使用Magento规则 - 这条规则是否可行
我有许多不同尺寸的产品都属于同一类别。
每件产品无论尺寸成本为£3.98 - 如果买家购买3件相同类别的产品,无论产品或尺寸如何,均可以9.99英镑购买。如果他们购买了4种产品,他们就可以获得其中3种产品的9.99但是要支付第4次全价...每组3只是9.99英镑
如果客户购买相同产品和相同尺寸的3/6/9项目,我创建的规则似乎完美无缺......但如果它们混合搭配则不起作用(尽管它们是相同的)类)
规则是:
如果所有这些条件都为TRUE: 如果购物车中与所有这些条件相匹配的商品的子选择总数量等于或大于3: 类别为4
我还将折扣数量设置为3
* 更新 *
感谢您的回复 - 我已经尝试实施您的建议,并且到目前为止我获得了添加产品的类别ID。我不确定如何设定以前产品的价格,因此它将是一个自动折扣的价格
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
$itemPrice = "3.33";
foreach ($cartItems as $items) {
$product = $items->getProduct();
$prodCats = $product->getCategoryIds();
if (in_array('4', $prodCats)) {
$itemQty = $items->getQty();
}
$totalItems += $itemQty;
}
所以我想做的是对于category_id为4的任何产品,对3的倍数应用折扣......价格将是3.33而不是正常的3.99
答案 0 :(得分:0)
您需要事件 - 观察者方法,这将为您提供所需的灵活性。您可以构建一个捕获add-to-cart事件sales_quote_add_item
的观察者,并将您的逻辑放在那里。
观察者功能中的以下代码将指向正确的方向:
//在购物车中获取产品:
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
$itemSku = $item->getSku();
$itemQty = $item->getQty();
}
//添加了产品:
$item = $observer->getEvent()->getQuoteItem();
$itemQty = $item->getQty();
$itemSku = $item->getSku();
//更改添加产品的价格:
$item->setOriginalCustomPrice($newPrice);
祝你好运!