1

我希望有人可以对此有所了解:

我正在使用 Magento 中的搜索工具查找具有特定属性的产品,然后选择这些产品并使用“更新属性”功能将数据添加到(更新)不同的属性字段。

在某些情况下,这可以正常工作,记录新的属性数据并且一切正常。在我尝试保存新属性数据的其他选择中,它会出现红色警告“这是必填字段”。果然,它指定的字段是必填字段,但由于我没有更新该特定字段,因此我没有勾选它下面的复选框,并且应该忽略该字段。

如果我为突出显示的字段关闭“必填字段”选项,那么新的属性数据将被保存但是:它会擦除其他属性负载中的数据,这意味着我会丢失产品属性中的有价值数据。似乎它在我一天内使用它的前几次有效,然后它吐出它的假人并提出所需的字段问题。

我在 Google Chrome 和 Firefox 上都试过了。正如我所说,有时它会起作用,有时它不会。我一次选择 20-100 种产品。我什至尝试只选择一种产品,但仍然会在该产品上遇到相同的错误。

我在 Magento 1.7.0.2

去年当我们在 1.6 上时,我确实遇到过属性数据被擦除的类似问题,但我似乎记得这是一个 Magento 错误,当我们升级到新版本时已修复。

谁能解释为什么会发生这种情况?搜索引擎中没有任何内容,这真的让我慢了下来!

4

1 回答 1

3

问题是属性在更新属性页面中默认没有被禁用,因此需要一个值。

为什么?

很可能是由于在您的属性上方某处出现故障属性。

选项 1. 由于我不知道是什么属性或属性问题,请破解 js/mage/adminhtml/product.js 并更改此功能以忽略错误属性。

function disableFieldEditMode(fieldContainer) {
    try {
        $(fieldContainer).disabled = true;
        if ($(fieldContainer + '_hidden')) {
            $(fieldContainer + '_hidden').disabled = true;
        }
    }
    catch(exception) {
    }
}

选项 2. 从产品中删除错误属性(您可能需要删除限制)。

update eav_attribute set is_user_defined = 1 where attribute_code like 'foo_bar';

选项 3. 修复故障属性。在我的例子中,有问题的模块是 AW_Onsale。

它试图渲染一个不存在的前端模型:onsale/system_entity_form_element_position

select attribute_code, frontend_model from eav_attribute where attribute_code like '%aw_os_%';

aw_os_product_position | onsale/entity_attribute_frontend_position

update eav_attribute set frontend_model = null where attribute_code like '%aw_os_product_position%';
update eav_attribute set frontend_model = null where attribute_code like '%aw_os_category_position%';
于 2014-08-21T09:10:37.927 回答