我使用REST API创建了一些自定义产品属性,正确填充了它们并为产品分配了值。
在开发环境中一切正常,而我在登台环境中遇到困难,即使数值和设置相同,即使在数据库中也是如此。 例如,如果我想在后端的现有属性中更新“is_filterable”选项的值,Magento说它正确保存了属性,但实际上没有进行任何更改。
我尝试使用正确的值对PUT调用REST API进行更新,但我只能更新属性标签,
这是我传给"products/attributes/my_attr"
{"attribute":{"attribute_code":"my_attr","attribute_id":174,"scope":"Global","default_frontend_label":"my_attr","frontend_labels":
[{"store_id":1,"label":"my_attr"}],"frontend_input":"select","is_searchable":true,
"is_visible_in_advanced_search":true,"is_comparable":true,"is_filterable":true}}
这是Json响应,你可以看到它完全忽略了is_filterable和scope的值。
{"is_wysiwyg_enabled":false,"is_html_allowed_on_front":false,"used_for_sort_by":
true,"is_filterable":false,"is_filterable_in_search":false,"is_used_in_grid":
true,"is_visible_in_grid":true,"is_filterable_in_grid":true,"position":0,
"apply_to"[], "is_searchable":"0","is_visible_in_advanced_search":"0",
"is_comparable":"0","is_used_for_promo_rules":"0","is_visible_on_front":"0",
"used_in_product_listing":"0","is_visible":true,"scope":"global",
"attribute_id":174,"attribute_code":"taglia","frontend_input":"select",
"entity_type_id":"4","is_required":false,"....
显然我已经重新编制索引并不断清除缓存。
我设法更改这些值的唯一方法是直接来自数据库。 我将尝试扩展,但我不确定是否会成功。
我已经看到有一个问题应该在较旧的Magento版本中修复,实际上其他属性工作正常。
有任何线索吗?
修改的 通过调用中的一组不同参数,我设法更改了属性值,但后端仍然没有运气。
这是更新的请求(数组版本)
$data = [
"attribute" => [
"attribute_code" => $my_opt,
"attribute_id" => 173,
"entity_type_id" => 4,
"scope" => "global",
"default_frontend_label" => $my_opt,
"frontend_labels" => [
["store_id" => 1,
"label" => $my_opt ]
],
"frontend_input" => "select",
"is_wysiwyg_enabled" => true,
"is_html_allowed_on_front" => true,
"used_for_sort_by" => true,
"is_filterable" => true,
"is_filterable_in_search" => true,
"is_used_in_grid" => true,
"is_visible_in_grid" => true,
"is_filterable_in_grid" => true,
"position" => 1,
"is_searchable" => true,
"is_visible_in_advanced_search" => true,
"is_comparable" => true,
"is_used_for_promo_rules" => true,
"is_visible_on_front" => true,
"used_in_product_listing" => true,
"is_visible" => true
]
];
EDIT2 :此外,如果我尝试从后端更新某些信息,Magento会将默认视图商店标签的值重置为空,并将“在分层导航中使用”重置为“否”。任何尝试都是陌生人。
编辑3 似乎最可能的问题可能是由这些下拉属性中的重复值引起的,但我小心地从
中删除了所有这些eav_attribute_option
eav_attribute_option_value
db中的,但实际上只删除选项,也可以从后端工作,而新选项的创建不起作用
答案 0 :(得分:0)
这不是一个明确的解决方案,我将为此创建一个有希望能够回答的新问题,但我想至少发布真正的问题。
实际上,我观察到一切正常,直到一定数量的选项,然后,无论价值是多少,它都会停止工作。 实际上我也在开发环境中体验过它,其限制更高,但是对于具有超过1300个选项的属性,没有任何工作也是如此。
所以环顾四周我发现这是一个php内存问题,你必须增加
的值max_input_vars=100000
但默认情况下只有1000.
有人建议其他参数,但这实际上是最常用的。 剩下的问题是,我仍然没有找到合适的值来让我的属性有很多选项来工作。