Я помню, что в Magento 1.9 был способ настроить правило корзины покупок на основе SKU продукта. Однако по какой-то причине мне удалось найти эту опцию в Magento 2.
Я что-то упустил или Magento 2 изменил то, как они работают?
Я помню, что в Magento 1.9 был способ настроить правило корзины покупок на основе SKU продукта. Однако по какой-то причине мне удалось найти эту опцию в Magento 2.
Я что-то упустил или Magento 2 изменил то, как они работают?
В magento 2 вы можете изменить цену корзины покупок отсюда.
Marketing -> Cart Price Rules
Вы можете установить на основе SKU продукта.
Вам нужно выбрать "Product attribute combination"
в разделе условия. Как экранная сортировка.
Теперь Далее он показывает различные атрибуты продукта, из которых вам нужно выбрать SKU. Как экранная сортировка.
Еще одно изящное решение в Magento 2, которое, по моему мнению, обеспечивает большую гибкость, — это бесплатное расширенное расширение доставки (от owebia). Весь синтаксис вводится в админке. Не пытаюсь рекламировать здесь, но это просто решает вопрос, и это бесплатное и довольно простое решение.
Чтобы ответить на вопрос: Вот решение для создания правила бесплатной доставки для ОДНОГО КОНКРЕТНОГО SKU:
addMethod('id_001', [
'title' => "Free Shipping for Product SKU 998877 ONLY",
'enabled' => array_sum(
array_map(
function ($item) {
return substr($item->product->sku, 0, 6) == '998877';
},
$request->all_items
)
) > 0
&&
array_sum(
array_map(
function ($item) {
return substr($item->product->sku, 0, 6) != '998877';
},
$request->all_items
)
) <= 0,
'price' => 0,
]);
Это также работает для большего количества SKU или различных категорий продуктов.
Вы могли бы в принципе придумать другие правила, такие как бесплатная доставка для всех товаров, однако для заказов, содержащих определенный крупногабаритный товар, промежуточная сумма должна превышать 300 долларов США.
Другое использование может быть, если вы хотите вообще исключить определенный громоздкий продукт из бесплатной доставки. Вот только один пример, с которым мне пришлось столкнуться, и которым я хочу поделиться:
Бесплатная доставка для всех заказов на сумму свыше 100 долларов США, если эти заказы не содержат крупногабаритный товар 998877.
addMethod('id_001', [
'title' => "Free Shipping on Orders which DO NOT contain product SKU 998877",
'enabled' => $quote->subtotal >= 100.00
&&
array_sum(
array_map(
function ($item) {
return substr($item->product->sku, 0, 6) == '998877';
},
$request->all_items
)
) <= 0,
'price' => 0,
]);