2012-11-30 46 views
1

在Magento中,創建新產品時,您可以手動輸入SKU編號。稍後,您可以決定將此SKU號碼更改爲不同的號碼。有沒有辦法在Magento中禁止這個?一旦分配了SKU編號,我希望它始終是SKU--我不想讓我的用戶分配不同的SKU。有沒有辦法禁用更改已經在Magento中創建的SKU?

回答

4

我可以想到兩種方法:事件觀察者和SKU屬性的自定義屬性後端模型,後者是更徹底的解決方案。

對於事件觀察者,可以觀察比較SKU屬性的值,查看它是否已更改,並使用警告消息將其設置爲原始值。除非使用saveAttribute()等保存SKU屬性,否則這應該就足夠了。

也可以在EAV屬性後端模型中執行相同的邏輯,通過設置腳本可以輕鬆地將其分配給屬性。但是,對於SKU屬性,它已經有後端模型Mage_Catalog_Model_Product_Attribute_Backend_Sku [link]。使用標準的Magento類重寫來重寫validate()方法,添加所需的值保護邏輯,然後調用父方法會很容易 - 使得解決方案非常便攜。

而後端模型不管通過save()還是saveAttribute()保存,都可以保證通過管理後端進行的所有保存都將根據您的邏輯進行處理。

1

我能想到的最簡單的方法之一是將自定義Javascript文件添加到添加產品頁面,並檢查產品ID是否存在,該產品ID是否僅在產品保存後纔可用。如果產品ID存在,則禁用/隱藏sku字段。這不是100%安全的,因爲您只使用JS,但假設您可以信任管理員用戶。

相關問題