1

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

4

2 回答 2

4

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

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

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

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

于 2012-11-30T23:41:01.263 回答
1

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

于 2012-11-30T22:35:10.440 回答