【问题标题】:Adding product type in prestashop add product page在 prestashop 添加产品页面添加产品类型
【发布时间】:2014-11-15 13:32:58
【问题描述】:

我是 prestashop 的新手,我正在尝试在标准产品、虚拟产品、现有产品包之外添加新产品类型

在 informations.tpl 文件中添加了这个

<
div class="radio">
                <label for="digital_product">
                    <input type="radio" name="type_product" id="digital_product" {if $is_in_pack}disabled="disabled"{/if} value="{Product::PTYPE_DIGITAL}" {if $product_type == Product::PTYPE_DIGITAL}checked="checked"{/if} >
                    {l s='Digital product (services, booking, downloadable products, etc.)'}</label>
            </div>

我想将其保存在 ps_product 表中的新列 is_digital 中。我在此处敲击。请帮助。 prestashop 的所有类和功能的完整工作流程是否有任何文档?

【问题讨论】:

  • 如果你想添加一个新的产品类型,那么你应该通过商店的配置来完成,而不是通过将某些东西写入模板文件。例如,将其设为类别。
  • 在哪里可以看到这个配置?
  • 我的意思是一般意义上的“配置”(而不是把东西侵入模板)。如果您不清楚具体细节,例如如何创建新类别,请查阅文档和/或谷歌搜索。
  • 我知道。但是有没有办法从后端添加其他产品类型?我找不到这个选项

标签: php prestashop prestashop-1.6


【解决方案1】:

改变 PrestaShop 的核心工作方式是一项艰巨的任务。对于这种情况,您应该并且必须使用模块。

  1. 转到Hook.php 并找到exec() 函数。使用error_log($hook_name) 找出执行特定操作时可用的挂钩。例如,当您打开产品编辑页面时,它们可能是FormModifier 挂钩,您可以使用它为新产品类型添加单选框。但这只是添加新类型的“化妆品”。
  2. 您应该创建一个用于修改 PrestaShop 的模块。首先,尝试查找是否有可用的钩子来修改您需要的内容。如果没有,您将需要覆盖实际的class/controller。覆盖很容易,但通常不推荐。在您的模块文件夹中创建类/控制器文件的副本:modules/yourmodule/override/controller/admin/AdminProductCotnroller.php,并且只保留您所覆盖的功能。另外,尝试使 if 有条件: if ($iCanModify) { // Modify} else { return parent::method(); }
  3. 跟踪产品类型常量、变量或字符串 (Product::TYPE_STANDARD?) 在 PS 文件中出现的任何位置。您将需要修改/添加逻辑到这些地方,以使您的新tyoe 工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 2017-09-18
    相关资源
    最近更新 更多