订单处理过程中的Prestashop价格变化

时间:2013-02-06 09:20:25

标签: php prestashop

在prestashop的订单处理过程中是否有可能改变价格? 我需要制作模块,根据某些条件增加运费(不能在presta,需要模块)。 我试图在一些钩子(hookBackBeforePayment,hookBeforeCarrier,hookProcessCarrier,hookExtraCarrier)上做,我只是试图改变['total_price']或其他传递给钩子函数的变量。

感谢任何帮助。

2 个答案:

答案 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