2011-06-14 61 views
2

我正在嘗試向Magento中的現有產品添加一些自定義選項。似乎做工精細,我加下表所需要的行:手動向現有產品添加自定義選項

catalog_product_option 
catalog_product_option_title 
catalog_product_option_type_value 
catalog_product_option_type_price 
catalog_product_option_type_title 

我也更新has_optionsrequired_options了正確的產品,下表:

catalog_product_entity 
catalog_product_flat_1 
catalog_product_flat_2 
catalog_product_flat_3 

當我打開產品,選項不顯示,實際上,它顯示較少。訂購它的按鈕消失。當我打開編輯頁面時,它會顯示選項。保存後,它也出現在前端。

我錯過了什麼?

更新: 在手動檢查保存操作後執行的所有查詢後,我發現我錯過了什麼。當產品有選項時,它必須在不同的模板(或任何它在Magento中調用的)中顯示它們。爲此,您必須更改屬性options_container的值。

所以,有一個非常簡單的解決方案。請在eav_attribute表中查詢attribute_id。然後,對每個產品運行以下查詢:

UPDATE `catalog_product_entity_varchar` SET `value` = 'container1' WHERE `attribute_id` = 836 AND `entity_id` = $productId; 

這樣做就可以了! :)

+0

如果您發現並發現任何變通方法(如打開並保存產品的代碼/ api),請發佈答案。 – 2011-06-14 14:24:19

+1

解決了,用解決方案更新了我的問題。一個非常容易的! – 2011-06-15 08:23:10

+0

非常感謝你,做得好! (保存爲最喜歡的問題...) – 2011-06-15 09:01:39

回答

0

手動完成保存操作後執行的每一個查詢後,我發現我錯過了什麼。當產品有選項時,它必須在不同的模板(或任何它在Magento中調用的)中顯示它們。爲此,您必須更改屬性options_container的值。

所以,有一個非常簡單的解決方案。請在eav_attribute表中查詢attribute_id。然後,只需運行下面的查詢爲每個產品:

UPDATE `catalog_product_entity_varchar` SET `value` = 'container1' WHERE `attribute_id` = 836 AND `entity_id` = $productId; 

那會做的伎倆! :)

0

你真的不應該由於任何原因直接訪問數據庫。這破壞了使用EAV系統的能力和智能。

  1. 擴展Mage.php如果Magento的外(無視如果不)
  2. 讓你想操縱
  3. 使用該收集寫任何實體的集合/讀取數據
  4. 保存自己頭疼下來馬路!
+0

得說。這是我第一次與Magento合作,僅僅幾天。自那以後沒有碰過它,一點都不放過它。但謝謝你的補充。 :) – 2012-03-12 20:08:44

相關問題