我记得在Magento 1.9中曾经有一种方法可以根据产品SKU设置购物车规则。但是,由于某种原因,我能够在Magento 2上找到该选项。
我错过了什么或Magento 2改变了他们做事的方式吗?
答案 0 :(得分:0)
在magento 2中,您可以从这里购物车价格规则。
Marketing -> Cart Price Rules
您可以根据产品SKU进行设置。
答案 1 :(得分:0)
Magento 2中的另一个巧妙的解决方案是允许恕我直言提供更大的灵活性,是免费的先进航运延期(由owebia提供)。所有语法都在admin后端输入。不试图在这里做广告,但这只是解决了问题,而且这是一个免费且相当直接的解决方案。
回答这个问题:这是一个为一个特定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,
]);