尝试覆盖产品Prestashop 1.7.5

时间:2019-07-23 16:35:13

标签: overriding prestashop product

我很难覆盖product.php类(prestashop 1.7.5)。

我想在后台为产品添加一个新的价格字段(管理员可以使用该字段为产品添加额外的价格。

我已覆盖Product.php类(override / classes / product.php)以添加此新字段:

public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null){

        public $service;

        self::$definition['fields']['service'] = [
            'type' => self::TYPE_FLOAT,
            'required' => true, 'size' => 10
        ];

        parent::__construct($id_product, $full, $id_lang, $id_shop, $context);
}

它有效,它在数据库中,管理员可以对它进行CRUD。

但是,现在计算价格有些不同,因为我希望价格+ =服务。

因此,始终在override / classes / product.php中,我通过查询数据库来覆盖公共静态函数priceCalculation(){}(选择然后更新结果)。

但是,每次我在后台办公室的产品表上单击“保存”或在前台办公室的产品表上单击(每次增加)时,都会进行计算...

这不是缓存问题,请务必在尝试之前将其删除...

只能在网络解决方案上找到要添加文本字段,而不是价格字段...

如果有人可以帮助:):)

谢谢!

计算价格(一旦获得DB提供的信息): $ price =(float)$ result ['price'] + $ result ['service'];

这种计算方法很好。

查询:更新ps_product设置价格= $ price,id_product = id_product。

也许我必须找到可以放置此查询的位置以避免这种循环...

0 个答案:

没有答案