Magento Shopping Cart Rule - возможно ли это сочетание

Надеясь, что кто-нибудь может помочь мне с правилом Magento - возможно ли это правило

У меня есть многочисленные продукты разных размеров, все они принадлежат к одной категории.

Каждый продукт, независимо от его размера, стоит 3,98 фунтов стерлингов. Если покупатель приобретает 3 продукта одной категории, независимо от продукта или размера, он получает его за 9,99 фунтов стерлингов. Если они покупают 4 продукта, они получают 3 из них по 9,99, но платят полную цену за 4-й... Каждая группа из 3 - £9,99.

У меня есть созданное правило, которое, кажется, работает идеально, если Клиент покупает 3 / 6 / 9 товаров одного и того же продукта и того же размера... Однако, если они смешиваются и совпадают, это не работает (хотя они относятся к той же категории)

Правило таково:

ЕСЛИ ВСЕ эти условия являются ИСТИННЫМИ: если общее количество равно или больше 3 для подбора товаров в корзине, соответствующих ВСЕМ из этих условий: Категория 4

Я также установил для параметра Discount Qty Step значение 3

* ОБНОВЛЕНИЕ *

Спасибо за ваш ответ - я попытался реализовать то, что вы предлагаете, и дошел до того, где я могу получить идентификатор категории добавленных продуктов. Я не уверен, как установить цену предыдущим продуктам, чтобы это была цена со скидкой автоматически

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

Поэтому я хочу применить скидку, кратную 3, для любого продукта, у которого category_id равен 4... Цена будет 3,33 вместо обычных 3,99.

1 ответ

Для этого вам нужен подход наблюдателя, который даст вам необходимую гибкость. Вы можете создать наблюдателя, который ловит событие добавления в корзину 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);

Удачи!

Другие вопросы по тегам