在Magento中,创建新产品时,您可以手动输入SKU编号。稍后,您可以决定将此SKU编号更改为其他编号。有没有办法在Magento禁止这个?一旦分配了SKU号码,我希望它始终是SKU - 我不想让我的用户改为分配不同的SKU。
答案 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,但假设您可以信任管理员用户。