2017-02-07 4 views
0

Я помню, что раньше было в Magento 1.9, чтобы настроить правило корзины покупок на основе продукта SKU. Тем не менее, я смог найти этот вариант на Magento 2 по какой-то причине.Magento 2 - Есть ли способ установить бесплатное правило цены на доставку для определенных продуктов?

Я что-то упустил или что-то изменил Magento 2, как они это делают?

ответ

0

В magento 2, вы можете регулировать цену корзины покупок здесь.

Marketing -> Cart Price Rules 

Вы можете установить на основе продукта SKU.

  1. Вам необходимо выбрать "Product attribute combination" в разделе состояния. Как сортировка экрана. enter image description here

  2. В настоящее время он показывает отличительный атрибут продукта, из которого вам нужно выбрать SKU. Как сортировка экрана. enter image description here

0

Другой изящное решение в 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, 
]); 

Это также работает для более артикулов или различных категорий товаров.

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