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);
Удачи!