0

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

将不胜感激任何帮助。

4

2 回答 2

0

这听起来像是运营商模块应该处理的事情。不幸的是,关于这个主题的文档并不多,因此需要大量的试验和错误。这里有一个简短的 PS 1.4 载体模块教程,可以帮助您入门。我还建议您阅读现有的其他免费送货模块的源代码。

于 2013-03-18T10:46:12.993 回答
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 可升级。版本:1.5.5.0

于 2013-12-10T12:29:52.513 回答