Magento產品屬性非常靈活,但每個產品具有動態值意味着您需要每個產品一個屬性,這樣做沒什麼意義,所以我假設這些屬性值共享產品中的一些共同點所以你將擁有有限數量的屬性(或一個?)。對於每個這樣的屬性,您應該先爲其創建屬性和後端模型,然後使用cron作業或事件從您的API更新屬性值選項,並將它們本地緩存在數據庫或其他方法中。您可以在模塊的安裝程序添加一個屬性是這樣的:
$installer->addAttribute('catalog_product', 'my_attr_code', array(
'label' => 'Attribute Name',
'required' => false,
'input' => 'select',
'source' => 'namespace/source',
'default' => 'none',
'position' => 1,
'sort_order' => 3,
));
或者推出自己的SQL INSERT語句爲eav_attribute
表。確保將新屬性分配給在後端設置的屬性,以便它可用於您的產品。然後你在My_Namespace_Model_Source
延伸Mage_Eav_Model_Entity_Attribute_Source_Table
(假設你想爲你的屬性值的選擇輸入),並在最小實現下列方法創建一個模型:
getAllOptions()
getOptionText($value)
因此,這些將來自於本地緩存的動態選項拉和在大多數情況下,您的新屬性的行爲與Magento中的其他屬性相同。請務必使用智能緩存,因爲這些方法可能會在一次頁面加載中多次觸發。在產品創建或編輯頁面顯示之前,可能會出現一個您可以觀察到的事件,否則只是覆蓋類或控制器或使用Magento cron任務。
編輯:您也可以使用現有的Magento屬性模型,並通過現有的API創建您的選項值,但我假設要執行同步或出於其他原因,您可能需要一些額外的元數據,一個自定義的後端模型。
接受答案? – ColinM 2014-07-15 20:33:10
@ColinM哎呀。完成。 :) – 2014-07-16 08:02:17