有没有办法禁用更改已在Magento中创建的SKU?

时间:2012-11-30 21:55:53

标签: php magento-1.7 magento-1.6 magento

在Magento中,创建新产品时,您可以手动输入SKU编号。稍后,您可以决定将此SKU编号更改为其他编号。有没有办法在Magento禁止这个?一旦分配了SKU号码,我希望它始终是SKU - 我不想让我的用户改为分配不同的SKU。

2 个答案:

答案 0 :(得分:4)

我可以想到两种方法:事件观察者和SKU属性的自定义属性后端模型,后者是更彻底的解决方案。

对于事件观察者,可以观察比较SKU属性的值,查看它是否已更改,并将其设置为带有警告消息的原始属性。除非使用saveAttribute()等保存SKU属性,否则这应该足够了。

也可以在EAV属性后端模型中执行相同的逻辑,可以通过设置脚本轻松地将其分配给属性。但是,对于SKU属性,它已经有一个后端模型Mage_Catalog_Model_Product_Attribute_Backend_Sku [link]。使用标准Magento类重写来重写validate()方法,添加所需的值保护逻辑,然后调用父方法 - 使解决方案非常便于移植将非常容易。

而且,无论通过save()还是saveAttribute()保存,都会使用后端模型,这将确保通过管理后端的所有保存都将根据您的逻辑进行处理。

答案 1 :(得分:1)

我能想到的最简单的方法之一是将自定义Javascript文件添加到添加产品页面并检查是否存在产品ID,这仅在产品保存后才可用。如果产品ID存在,则禁用/隐藏sku字段。这不是100%安全,因为您只使用JS,但假设您可以信任管理员用户。