按地址(例如城市)在结帐页面中购买的最小金额

  • 本文关键字:金额 地址 城市 prestashop
  • 更新时间 :
  • 英文 :


大家好!提前感谢谁会花时间回答我😆!事实上,我想找到一个解决方案,使最小的购买在结帐页面(而不是在购物车页面),这取决于地址城市。我已经在Prestashop 1.6中做过了,但现在我使用Prestashop 1.7.7.1,我不得不重写购物车演示器,但我没有提供一个方便的解决方案。即使我按国家购买了一个最低购买的模块,并将其修改为按城市购买,但模块本身不稳定,无法正常工作,模块的支持无法找到解决方案,因为它需要覆盖Symfony代码中的Prestashop核心,它会影响所有的订单隧道,这通常是不可能的。
这个主题对开发人员来说将是一个真正的挑战,他们不知道不可能😆!提前谢谢。

假设你正在创建一个模块,在CartPresenter类中你有钩子overrideMinimalPurchasePrice。您可以将模块挂接到此钩子,并根据您的逻辑修改模块中的$minimalPurchase值。

你说价格取决于地址所在的城市。在钩子中,你可以得到地址,因为在Prestashop前台,你总是可以访问购物车,购物车可能有送货地址id:

public function hookOverrideMinimalPurchasePrice($params)
{
$cart = $this->context->cart;
$id_address = $cart->id_address_delivery;
// If customer did not enter the address yet, the address id is 0.
if($id_address != 0)
{
$address = new Address($id_address);
$city = $address->city;
if($city == 'New York')
$params['minimalPurchase'] = 100;
}
}
}

你不需要在钩子中返回任何东西,因为在cartpresent .php中,钩子是通过引用传递参数来调用的:

Hook::exec('overrideMinimalPurchasePrice', [
'minimalPurchase' => &$minimalPurchase,
]);

最新更新