我有一家销售新鲜和冷冻食品的商店。我们需要客户订购最少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
.

请注意,如果您有父母产品,请确保从您拥有的简单产品中检索正确的重量。我认为使用可配置产品时,可能无法使用简单的产品的属性(例如,如果您购买与可配置产品相关的简单产品),则从可配置产品中拉出。

许可以下: CC-BY-SA归因
scroll top