Magento 2.2 - Невозможно обновить значения атрибутов

Я создал некоторые пользовательские атрибуты продукта с помощью REST API, правильно заполнил их и присвоил продуктам значения.

В среде разработки все работает нормально, тогда как в тестовой среде у меня возникли трудности, хотя значения и настройки одинаковы, даже в БД. Если, например, я хочу обновить значение параметра «is_filterable» в существующем атрибуте из бэкэнда, Magento говорит, что атрибут сохранен правильно, но на самом деле никаких изменений не производится.

Я пытался обновить с помощью вызова PUT REST API с правильными значениями, но я могу обновить только метки атрибутов,

Это json, который я передаю "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 и области действия.

    {"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, и на самом деле другие атрибуты работают нормально.

Любая подсказка?

EDIT С другим набором параметров в вызове мне удалось изменить значения атрибутов, но со стороны бэкэнда все равно не повезло.

Это обновленный запрос (версия массива)

$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 сбрасывает значения метки хранилища представления по умолчанию на пустое, а «использовать в многоуровневой навигации» на «Нет». Незнакомец при любой попытке.

EDIT 3 кажется, что наиболее вероятная проблема может быть вызвана дублированием значений в этих раскрывающихся атрибутах, но я тщательно удалил их все из

eav_attribute_option
eav_attribute_option_value

в БД, но на самом деле только удаление параметров, работает и из бэкэнда, тогда как создание новых параметров не работает


person sissy    schedule 26.02.2018    source источник


Ответы (1)


Это не окончательное решение, для которого я создам новый вопрос, на который, надеюсь, кто-то сможет ответить, но я хотел хотя бы опубликовать, в чем заключается истинная проблема.

На самом деле, я заметил, что все работало до определенного количества опций, а после этого, независимо от того, какие значения были, оно перестало работать. На самом деле я испытал это и в среде разработки, для которой предел был выше, но для атрибута с более чем 1300 вариантами тоже ничего не работало.

Итак, осмотревшись, я обнаружил, что это проблема с памятью php, и вам нужно увеличить значение

max_input_vars=100000

тогда как по умолчанию только 1000.

кто-то предлагает и другие параметры, но на самом деле это наиболее часто используемый. Проблема, которая остается, заключается в том, что я до сих пор не нашел хороших значений, чтобы мои атрибуты с множеством опций работали.

person sissy    schedule 27.02.2018