2011-12-19 216 views
0

只是一個簡單但頭疼的問題。Magento:創建自定義屬性,設置默認屬性集

我創建一個屬性,將其設置爲下拉行爲(在Admin-Store中,被視爲下拉屬性) 它創建安靜平滑但未設置attribute_set。

簡而言之:

是狀態: 我的屬性 - >未鏈接到一個屬性集

到狀態: 我的屬性 - >連接到默認屬性設置

+0

這是編程的問題? – 2011-12-19 15:36:26

+0

是的,我忘了說它應該在php下(通過Magento-API)完成。我通過php創建了一個屬性,但它不會自動設置爲某個attribute_set,如果有人知道將其「設置」爲默認attributset – 2011-12-19 15:55:38

回答

3

管理方式:

這是很自然的一個新創建的屬性沒有被分配到屬性集(包括設置默認屬性)AUT omatically。你需要手動完成。

在管理員的目錄>屬性>管理屬性集下。

source

的編程方式:

試試這個代碼:

$installer = Mage::getModel('eav/entity_setup'); 
$installer->addAttributeToSet($entityTypeId, $setId, $groupId, $attributeId, $sortOrder); 

的規範功能addAttributeToSet:

  • 混合$ entityTypeId
  • 混合$ SETID
  • 混合$的groupId
  • 混合$屬性Id
  • INT $中將sortOrder = NULL
  • @返回Mage_Eav_Model_Entity_Setup

與 'ID' 結束的論點實際上並不需要根據代碼是ids。設置和組名可以自動轉換爲ID。但對於屬性,您應該使用代碼(通常以小寫字母,例如'firstname')而不是名稱(例如'First Name')。

例如,你想叫「普及」產品屬性添加到在「常規」組設置的「默認」屬性,就這樣寫:

$installer = Mage::getModel('eav/entity_setup'); 
$installer->addAttributeToSet('catalog_product', 'Default', 'General', 'popularity'); 

不幸的是我沒有一個安裝測試代碼的時刻,希望它應該工作:)

+0

感謝您的答案,我已經找到了一些有關它的東西通過後端。我忘了說它應該在php下完成(通過Magento-API)我通過php創建了一個屬性,但它不會自動設置爲某個attribute_set,並且如果有人知道將其「設置」爲默認attributset – 2011-12-19 15:55:55

+0

我接受答案,因爲它幫助我尋找合適的術語,找到對我的問題的幫助。有沒有機會以編程方式選擇默認的attribute_set?剛剛獲得了attribute_Set id和DefaultAttributeSet的名稱。只需要告訴API我的屬性應該在這個集合內。感謝Advantage – 2011-12-19 16:11:50

+0

我編輯了答案。希望能幫助到你。 – vicch 2011-12-19 16:37:35