0

我在 prestashop 数据库的产品表中添加了一个字段“mystock”。现在我想在编辑产品页面中显示/编辑这个文件。产品更新时也会更新。

4

5 回答 5

6

这个适用于我的 prestashop 1.5.4

添加一个文件 Product.php 到 \override\classes 包含:

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

...假设您需要一个字段来输入数字。

然后 3) altafhussain 的回答

不要忘记将您的字段添加到数据库中,对于数字字段:
ALTER TABLE ps_productADD mystockINT NOT NULL;

于 2013-05-27T14:04:10.893 回答
5

此过程需要逐步解决。下面我列出了它们。

1) 打开类/Product.php。公开 $mystock ; 在类属性列表中,您可以在类启动后看到。

2) 在文件中,找到public static $definition = array( ,这将是一个长数组。找到'fields' => array(在里面,你会看到所有的数据库字段都放置了验证,数据类型等. 将您的 mystock 作为另一个项目放在该数组中,并像放置其他字段一样放置正确的验证和数据类型。

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

就是这样,希望您了解该过程并使其发挥作用。

谢谢

于 2013-03-19T07:13:37.510 回答
3

我遇到了这篇文章并基于它构建了我的组件,它似乎是最干净的解决方案:http: //nemops.com/prestashop-products-new-tabs-fields/基本上它描述了如何制作一个模块,它添加了多语言产品编辑页面上自定义面板中的字段..

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

于 2013-10-22T15:50:02.513 回答
1

谢谢阿尔塔夫萨因。您必须将您的字段添加到“products_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

于 2015-09-10T19:15:06.710 回答
1

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

1) 添加一个文件 Product.php 到 \override\classes 包含:

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

2) 打开 adminFolder/themes/default/template/controllers/products/informations.tpl 并将具有正确名称和 ID 的字段放在适当的位置。

3) 删除文件缓存/class_index.php

4)将您的字段添加到数据库中,对于数字字段:

ALTER TABLE ps_product ADD mystock INT NOT NULL;

[感谢 Bell418 的 1) 和 4) 以及 Altaf Hussain 的 2)]

于 2016-04-07T16:55:41.390 回答