2012-07-20 29 views
0

我只知道,如果我有一個product_collection(例如,在目錄頁生成的集合)Magento的 - 產品型號和product_collection項在平坦目錄模式不同性質

//事件catalog_product_collecion_after_load $ productCollection = $觀察員 - > getEvent() - > getCollection();

如果我從這個集合中獲取一個項目,並且將它與相對模型進行比較,則可以使用這個項目來獲得這個項目的所有項目。

這2個實體相同的實體有不同的屬性!

我正在使用扁平目錄模式。 爲什麼該系列產品與產品型號不一樣? 我想知道這是否是正確的行爲,如果它是如何在兩個對象中具有相同的屬性!

抱歉,Magento的很暗:(

回答

0

帶有flat_mode的catalog_product_collection比較複雜,爲其添加一個屬性項目的集合。 產品項目中的屬性是catalog_product_flat表與產品實體的EAV屬性之間的聯接。

所以,從產品型號:

  • 收集我們有屬性catalog_product_flat表和EAV屬性
  • getModel( '目錄/產品')我們都EAV之間加入屬性

在這些屬性上,我們肯定會有其他屬性,我想在其他方面加入其他屬性。

現在,哪些屬性在catalog_product_flat中? 簡單是您在magento管理屬性中檢查爲「在產品清單中使用」的屬性! :)

但在某些屬性中,您無法更改此選項,具體取決於您選擇的類型。屬性類型圖像沒有「用於產品清單」標誌,因此如果您需要產品清單中的新圖像,則必須修改catalog_eav_attribute。

嗯,我花了2天才知道這一點,我希望它會對其他不幸的magento開發者有用。 :)

Magento的1.5版本

1

因爲Mage::getModel('catalog/product')->load($item->getEntityId());負荷僅指定了產品的各項屬性,並收集負載屬性的情況不同,你可以在app/code/core/Mage/Catalog/etc/config.xmlattributes找到(CTRL + F),然後你會看到產品收集的所有默認加載屬性的列表,你也可以在你的模塊中或直接在目錄config.xml中更改它們,但不是最好的想法,在app/code/core/Mage/Catalog/etc/config.xml除了調試

+0

是偉大的! 我有平的catalog_product表,我現在看到,我想檢索「圖像」的屬性不在此表!但是這存在於產品的EAV結構中,它也應該存在於平板電腦中......有些事情是錯的! :( – 2012-07-20 08:14:27

相關問題