2014-11-15 160 views
1

蔭新的Prestashop,IAM試圖除了標準產品,虛擬產品添加新的產品類型,包裝現有產品增加產品類型中添加的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> 

我想保存在新列中is_digital在ps_product table.iam在這裏遇到。請幫助。有沒有任何文檔可以用於prestashop的所有類和功能的完整工作流程?

+0

如果你想添加一個新的產品類型,那麼你應該通過商店的_configuration_來做到這一點,而不是通過黑客入侵一個模板文件。例如,把它作爲一個類別。 – CBroe

+0

我可以看到這個配置? –

+0

我的意思是「配置」的一般方式(而不是黑客入侵模板)。如果您不清楚具體細節,例如如何創建新類別,請參閱文檔和/或Google。 – CBroe

回答

1

更改PrestaShop的核心工作是一項巨大的工作。你應該並且必須使用一個模塊來處理這種情況。

  1. 轉到Hook.php並找到exec()函數。使用error_log($hook_name)找出執行特定操作時可用的鉤子。例如,當您打開產品編輯頁面時,它們可能是FormModifier鉤子,您可以使用該鉤子爲新產品類型添加收音機框。但這只是添加新類型的「化妝品」。
  2. 您應該創建一個修改PrestaShop的模塊。首先,嘗試查找是否有可用於修改所需內容的鉤子。如果沒有,則需要覆蓋實際的class/controller。 Overrding很容易,但一般不推薦。在您的模塊文件夾中創建類/控制器文件的副本:modules/yourmodule/override/controller/admin/AdminProductCotnroller.php,只留下您正在覆蓋的功能。此外,如果條件允許,請嘗試製作: if ($iCanModify) { // Modify} else { return parent::method(); }
  3. 跟蹤產品類型常量,變量或字符串(Product :: TYPE_STANDARD?)在PS文件中出現的任何位置。您將需要修改/添加邏輯到這些地方,以使您的新tyoe工作。