Prestashop运费根据国家/地区而定

时间:2015-09-13 20:48:34

标签: php smarty prestashop-1.6 shipping

我正在升级Prestashop上的电子商店。 我想根据将要发送的国家/地区来编辑运费(运营商)费用。从理论上讲,我希望将delivery = 1的价格放在后台,然后根据国家/权重或其他选项在代码中进行编辑。

我想我发现了获得运费的功能。这是 getTotalShippingCost 或者 getOrderTotal 请告诉我,如果我错了。

此时如何在 getOrderTotal 中获取投放的国家/地区名称?

if ($type == Cart::ONLY_SHIPPING)
return $shipping_fees;

或者如果在这个订单点上没有地址无法获取,请告诉我们这样做的地方。在ParentOrderController.php或PaymentModule.php或其他地方?

1 个答案:

答案 0 :(得分:1)

如何管理您可以在Prestashop documentation中阅读的运费/运营商,并获得每个国家/地区的运费(默认为Presta使用'区域')而无需使用外部模块,您可以创建区域为每个国家/地区设置每个新区域的运费。所有这些操作都可以从后台完成,无需更改核心。

但是如果您决定在代码中执行此操作,请记住,直接更改核心文件被认为是不好的做法;使用built-in capabilities更好的方式。

$shippingCostTaxExc can be found in _assignSummaryInformations method in /controllers/front/ParentOrderController.php file. 

$option array in /classes/Cart.php

<强>更新 您可以从任何模型/控制器类using Context object访问一些常见对象,如Currency,Cookie等和Country,所以在您的情况下,如果您需要国家/地区名称,它将如下所示:

$context = Context::getContext();
$context->country->name[1]; // for language with id=1
$context->language->id; // if you need to get actual customer language