Magento购物车规则-这种组合可能吗

Magento购物车规则-这种组合可能吗,magento,cart,shopping,magento-rules,Magento,Cart,Shopping,Magento Rules,希望有人能帮我制定一条Magento规则-这条规则可能吗 我有许多不同尺寸的产品,都属于同一类别 无论大小,每件产品的价格均为3.98英镑——如果买家购买同一类别的3件产品,无论产品或尺寸如何,他们以9.99英镑的价格购买。如果他们购买4种产品,他们以9.99英镑的价格获得其中3种,但第4种产品则全额支付……每组3种产品的价格为9.99英镑 我创建了一个规则,如果客户购买3/6/9个相同产品和相同尺寸的商品,它似乎可以完美地工作……但是如果他们混合搭配,它就不起作用(尽管它们属于同一类别) 规则

希望有人能帮我制定一条Magento规则-这条规则可能吗

我有许多不同尺寸的产品,都属于同一类别

无论大小,每件产品的价格均为3.98英镑——如果买家购买同一类别的3件产品,无论产品或尺寸如何,他们以9.99英镑的价格购买。如果他们购买4种产品,他们以9.99英镑的价格获得其中3种,但第4种产品则全额支付……每组3种产品的价格为9.99英镑

我创建了一个规则,如果客户购买3/6/9个相同产品和相同尺寸的商品,它似乎可以完美地工作……但是如果他们混合搭配,它就不起作用(尽管它们属于同一类别)

规则是:

如果所有这些条件均为真: 如果购物车中符合所有这些条件的子选择项目的总数量等于或大于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;
}

因此,我想做的是对任何类别id为4的产品应用3的倍数的折扣…价格将是3.33,而不是正常的3.99,这需要事件观察方法,这将为您提供所需的灵活性。您可以构建一个观察者来捕获添加到购物车事件
sales\u quote\u add\u item
,并将您的逻辑放在那里

observer函数中的以下代码将为您指明正确的方向:

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

$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);

祝你好运

非常感谢你的指导-我已经更新了我的进展票到目前为止…也许你可以进一步帮助