在prestashop的订单处理过程中是否有可能改变价格? 我需要制作模块,根据某些条件增加运费(不能在presta,需要模块)。 我试图在一些钩子(hookBackBeforePayment,hookBeforeCarrier,hookProcessCarrier,hookExtraCarrier)上做,我只是试图改变['total_price']或其他传递给钩子函数的变量。
感谢任何帮助。
答案 0 :(得分:0)
这听起来像是运营商模块应该处理的事情。不幸的是,关于这个主题的文档并不多,所以它需要相当多的试验和错误。有一个关于PS 1.4 here的简要运营商模块教程可能会帮助您入门。我还建议您阅读其他免费送货模块的源代码。
答案 1 :(得分:0)
Order.php中的getFields()函数包含下订单的所有数据。 通过修改此阵列,您可以为订单提供自定义价格。
public function getFields()
{
if (!$this->id_lang)
$this->id_lang = Configuration::get('PS_LANG_DEFAULT', null, null, $this->id_shop);
$val = parent::getFields();
$val['total_paid'] = 5678.88;
$val['total_paid_tax_incl'] = 5678.88;
$val['total_paid_tax_excl'] = 5678.88;
$val['total_paid_real'] = 0;
$val['total_products'] = 5678.88;
$val['total_products_wt'] = 5678.88;
return $val; //Return this array
//return parent::getFields();
}
实际上,您可以将此功能置于覆盖中,以使您的prestashop可升级。 Ver:1.5.5.0