-
12-12-2019 - |
题
我有一家销售新鲜和冷冻食品的商店。我们需要客户订购最少8公斤的冷冻产品,以确保产品到达冻结状态。
我们目前有一个名为“Fresh”和“冻结”
的产品属性有最低订单的最佳方式(重量)是什么?例如,如果冷冻食品的数量低于8kg
,则不允许订单解决方案
我将使用观察者在购物车中强制执行该约束。这样,您可以在开始结帐之前通知客户(并且不会让他们生气)。
checkout_cart_save_before
似乎是一个体面的候选人,以用观察者钩住。有观察者检查购物车物品的权重,并使用结账会话抛出一个警告消息,以通知客户对掌控度限制。
一些伪代码..
// In Observer
$quote = $observer->getCart();
foreach ($quote->getAllVisibleItems() as $item) { // Iterate through items listed in the cart only
// Add up the weights
}
// Throw exception if added weight doesn't meet the restriction
.
请注意,如果您有父母产品,请确保从您拥有的简单产品中检索正确的重量。我认为使用可配置产品时,可能无法使用简单的产品的属性(例如,如果您购买与可配置产品相关的简单产品),则从可配置产品中拉出。