如果想要使用Magento產品經理,那麼你應該堅持Magento的核心功能。 Catalog > Manage Products
中沒有產品,因爲您不使用Mage_Catalog模塊及其實體來存儲這些產品。
而是使用自定義模塊。這不是存儲您的目錄的正確方法。
看來你想在你的產品上使用一些自定義屬性。這很好,正確。但是您需要將它們添加到catalog_product
實體中,而不是您自定義eavvehicle
。
要添加新的產品屬性,請轉到管理面板Catalog > Manage Attributes
並創建一個新的屬性。有一種方法可以動態創建它們。只要使用Mage_Catalog_Model_Resource_Setup
對象,例如:
$catalogSetup = Mage::getResourceModel('catalog/setup','default_setup');
$catalogSetup->addAttribute('catalog_product', 'attribute_name', array $attributeDefinition);
或者你可以使用你的模塊定義安裝,然後使用升級腳本在需要的時候增加新的屬性。
也可以將屬性集定義爲組屬性。這允許您僅將必要的屬性放在產品上。
您想使用Mage::getModel('catalog/product')
來添加您的產品。所以,你的循環將如下所示:
foreach ($xml as $c) {
$car = Mage::getModel('catalog/product');
...
...
...
$car->save();
}
如果您正在使用多個商店的意見(也許是語言版本),那麼你可以對相同的產品設置不同的語言值。爲了拯救他們進行適當的商店,你需要設置正確的商店視圖,例如:
$car = Mage::getModel('catalog/product');
$car->setStoreId(Mage::app()->getStore('french')->getId());
$car->setName('French Name of the car');
$car->save();
如果不使用多個商店的觀點,那麼它是安全的設置產品admin
店鋪ID保存之前。
- attribute_set_id
- TYPE_ID(即簡單,可配置的,分組等)
- website_ids(如陣列)
- IS_ACTIVE
:用於在Magento創造新產品
必填字段/屬性
- 狀態(不確定是否強制)
- 知名度
- 根據需要設置屬性集中的所有屬性(即sku,名稱,價格,tax_class_id等)
非常感謝您的支持。 Magento正在慢慢開始有意義。我從學習他們的佈局系統開始,現在嘗試轉向操縱產品數據以及如何顯示這些數據。這週末我會全力以赴。 – Nathan 2013-04-05 16:22:23
嘿,我試圖保存時出現無效的外鍵約束錯誤。我所有的屬性都已添加。通過代碼,嘗試將一行添加到'catalog_product_entity'表時,它會死掉。 'attribute_set_id'字段丟失。我是否需要以某種方式分配默認屬性集?我看過這個方法' - > setAttributeSetId(4);'但是有一個默認屬性集的全局ENV類型?我猜測在這個例子中,4是一個PK,但我不想像這樣硬編碼。 – Nathan 2013-04-05 19:35:36
是的,在創建新產品時,'attribute_set_id'是強制性的。所有屬性集存儲在'eav_attribute_set'表中,並且可以在目錄>屬性>管理屬性集中查看/編輯。您可以使用'Mage_Eav_Model_Entity_Attribute_Set'模型按名稱加載它們。 'Mage :: getModel('eav/entity_attribute_set') - > load('Default','name');'然後'$ car-> setAttributeSetId($ attributeSet-> getId());'我有更新的第一篇文章與其他強制性設置。 – Ventus 2013-04-06 14:29:55