为所有产品添加全局自定义字段-PrestaShop 1.6

为所有产品添加全局自定义字段-PrestaShop 1.6,prestashop,prestashop-1.6,prestashop-1.7,prestashop-1.5,Prestashop,Prestashop 1.6,Prestashop 1.7,Prestashop 1.5,我想添加自定义字段,但所有产品都有一个自定义字段,而不是每个产品一个自定义字段。 为此,我创建了override/classes/Product.php: class Product extends ProductCore{ public $is_exclusive = null; function __construct( $id_product = null, $full = false, $id_lang = null,

我想添加自定义字段,但所有产品都有一个自定义字段,而不是每个产品一个自定义字段。 为此,我创建了
override/classes/Product.php

class Product extends ProductCore{

    public $is_exclusive = null;

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

        Product::$definition['fields']['is_exclusive'] = 
             array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml');
    }
我可以在
ps\u product\u lang
中创建一个字段,但这将为每个产品创建一行


我想要的是一个领域的所有产品。它可以在“产品”页面中编辑和显示。

在这种情况下,您可以在ps_产品表中创建它,以便它只显示一次,同时覆盖产品类和产品页面的BO

我的建议是创建一个模块,该模块将被移植到钩子“displayAdminProductsExtra”上,以便在产品的BO中有更多字段。因此,您可以在不更改Prestashop结构的情况下获得附加信息表

然后,您可以将一个tpl显示在FO中所需的挂钩上


关于

在这种情况下,您可以在ps_产品表中创建它,这样它只出现一次,同时覆盖了产品类和产品页面的BO

我的建议是创建一个模块,该模块将被移植到钩子“displayAdminProductsExtra”上,以便在产品的BO中有更多字段。因此,您可以在不更改Prestashop结构的情况下获得附加信息表

然后,您可以将一个tpl显示在FO中所需的挂钩上


关于

如果所有产品只需要一个字段,则必须添加一个配置

您可以重写Product类并将其添加到构造方法(如果此字段仅可读)

您还必须手动将自定义值添加到配置表中


真正的方法是创建新模块。您可以在模块配置页面中管理配置:

Configuration::updateValue($key, $value); // save data

Configuration::get($key, $id_lang); // get data
如果您的数据与该语言相关:

$value = [
    1 => 'value 1', // for language 1
    2 => 'value 2', // for language 2
    3 => 'value 3', // for language 3
];
Configuration::updateValue($key, $value); // save data

Configuration::get($key, 2); // get data of language 2

提示:最简单的方法是通过创建一个新模块,然后对其进行编辑。

如果所有产品只需要一个字段,则必须添加一个配置

您可以重写Product类并将其添加到构造方法(如果此字段仅可读)

您还必须手动将自定义值添加到配置表中


真正的方法是创建新模块。您可以在模块配置页面中管理配置:

Configuration::updateValue($key, $value); // save data

Configuration::get($key, $id_lang); // get data
如果您的数据与该语言相关:

$value = [
    1 => 'value 1', // for language 1
    2 => 'value 2', // for language 2
    3 => 'value 3', // for language 3
];
Configuration::updateValue($key, $value); // save data

Configuration::get($key, 2); // get data of language 2

提示:最简单的方法是通过创建一个新模块,然后对其进行编辑。

use可以使用Configuration::updateValue('key','value');use可以使用Configuration::updateValue('key','value');嗨,如果它是可编辑的字段并且有语言,那怎么办?嗨,如果它是可编辑的字段并且有语言,那怎么办?