Product 在prestashop admin的编辑产品页面中添加一个字段

Product 在prestashop admin的编辑产品页面中添加一个字段,product,prestashop,Product,Prestashop,我在prestashop数据库的产品表中添加了一个字段mystock。现在我想在编辑产品页面中显示/编辑此字段。它也可以在产品更新时更新。此过程需要分步骤进行一些变通。下面我列出了它们 1开放类/Product.php。放置公共$mystock;在类属性列表中,可以在类启动后看到该列表 2下文件,找到publicstatic$definition=array,它将是一个长数组。在其中找到“fields”=>数组,在那里你会看到所有的数据库字段都放置了验证、数据类型等。将你的mystock作为另一

我在prestashop数据库的产品表中添加了一个字段mystock。现在我想在编辑产品页面中显示/编辑此字段。它也可以在产品更新时更新。

此过程需要分步骤进行一些变通。下面我列出了它们

1开放类/Product.php。放置公共$mystock;在类属性列表中,可以在类启动后看到该列表

2下文件,找到publicstatic$definition=array,它将是一个长数组。在其中找到“fields”=>数组,在那里你会看到所有的数据库字段都放置了验证、数据类型等。将你的mystock作为另一项放置在该数组中,并像放置在其他字段中一样放置正确的验证和数据类型

3现在打开adminFolder/themes/default/template/controllers/products/informations.tpl,并将具有正确名称和id的字段放在适当的位置。请注意,字段名/id应该与db字段名和我们在Products.php类中添加的字段名相同

就这样,, 希望你理解这个过程,并能使它发挥作用


谢谢

这一款在prestashop 1.5.4上对我很有用

将Product.php文件添加到\override\类,其中包含:

    <?php
    Product::$definition['fields']['mystock'] = array('type' => ObjectModel::TYPE_INT, 'validate' => 'isUnsignedInt');
    class Product extends ProductCore 
    { 
       public $mystock; 
    } 
<?php
Product::$definition['fields']['mystock'] = array('type' => ObjectModel::TYPE_INT, 'validate' => 'isUnsignedInt');
class Product extends ProductCore 
{ 
   public $mystock; 
} 
…假设您需要一个字段来输入数字

然后是altafhussain回答的第三个问题

不要忘记将您的字段添加到数据库中,对于数字字段:
ALTER TABLE ps_product ADD mystock INT NOT NULL

我偶然发现了这篇文章,并在此基础上构建了我的组件,这似乎是最干净的解决方案:它基本上描述了如何制作一个模块,在产品编辑页面的自定义面板中添加了多语言字段

无需编辑模板、核心文件或添加覆盖文件。

谢谢altafhussain。 您必须将字段添加到“products\u shop”和“products”表中

ALTER TABLE ps_product_shop ADD `mystock` int NOT NULL DEFAULT 0;
ALTER TABLE ps_product ADD `mystock` int NOT NULL DEFAULT 0;

我使用的是ps 1.6.0.6

四个步骤中最好的综合解决方案是:

1将Product.php文件添加到\override\类,其中包含:

    <?php
    Product::$definition['fields']['mystock'] = array('type' => ObjectModel::TYPE_INT, 'validate' => 'isUnsignedInt');
    class Product extends ProductCore 
    { 
       public $mystock; 
    } 
<?php
Product::$definition['fields']['mystock'] = array('type' => ObjectModel::TYPE_INT, 'validate' => 'isUnsignedInt');
class Product extends ProductCore 
{ 
   public $mystock; 
} 

[感谢Bell418对1和4的支持,以及Altaf Hussain对2的支持]

你好,altafhussain,感谢您的回复,这对我很有用,现在我面临新的问题。当我进入产品编辑时,它会给我错误此字段友好的URL是必需的,至少是英文,不显示保存按钮帮助。我想告诉你,我在表中添加了产品directlyLink rewrite或任何其他必填字段,这些字段仅是网站默认语言所必需的。我认为您已经添加了产品,但是没有在product_lang表中添加产品详细信息,例如链接重写,或者如果您已经添加了它们,那么您没有为默认语言(如英语)添加它们。请检查此答案是否更好,您有更好的机会进行预启动更新,而不会破坏您的功能如果它位于模块覆盖类中,则此功能不起作用!我为此做了调查,但它肯定是错的:ps v1.5.6.1