Как применить настройку отображения категории ко всем категориям?

10

У меня много категорий, и вместо того, чтобы применять новые настройки ко всем категориям по одной, я хотел бы знать, возможно ли применить новые настройки ко всем категориям одновременно?

Спасибо!

Амир Сиддик
источник

Ответы:

13

Нет способа сделать это из пользовательского интерфейса.
Я обычно делаю это, чтобы обновить значения в базе данных. Это не рекомендуемый подход, но он работает.
Допустим, вы хотите обновить is_anchorатрибут до «1» для всех категорий.

SELECT * FROM eav_attribute where attribute_code = 'is_anchor'

Запрос выше должен дать вам is_anchorатрибут. В записи, по результатам которой я вижу, что идентификатор атрибута равен 51 (может отличаться для вас). и backend_typeесть int. Это означает, что значения для атрибута находятся в таблице catalog_category_entity_int.

UPDATE `catalog_category_entity_int` set value = 1 where attribute_id = 51 and parent_id <> 0;

Этот запрос установит значение 1 для атрибута is_anchor (id 51) для всех категорий, кроме «корня всех корней», категории с parent = 0.
После запуска запроса я переиндексирую плоские категории и все.

Мариус
источник
перфекто! именно то, что я искал: D
Амир Сиддик
7
Обновлен SQL-запрос для более новых версий Magento (например, у меня не было столбца parent_id). ОБНОВЛЕНИЕ catalog_category_entity_intустановить значение = 1, где attribute_id = (ВЫБЕРИТЬ attribute_id ОТ, eav_attributeгде attribute_code = 'is_anchor');
Джасутен
@Marus не работает в моем случае, я пытаюсь catalog_category_intустановить значение UPDATE = 1, где attribute_id = 51 и parent_id <> 0; но ошибка: # 1146 - Таблица 'magento1.catalog_category_int' не существует
Динеш
1
@Dinesh это означает, что что-то не так с вашим экземпляром magento.
Мариус
@Marius, как найти и исправить это, любая помощь
Динеш
2

Я не уверен, какие настройки вы изменяете в своей категории, но если они есть в списке параметров на этой странице , то использование Magento REST API, вероятно, является лучшим вариантом.

Talesh
источник
1

Сначала определите идентификатор атрибута атрибута is_anchor:

SELECT * FROM eav_attribute where attribute_code = 'is_anchor';

Получаем атрибут id 51 в моей базе данных. Теперь запустите следующий запрос

UPDATE catalog_category_entity_int set value = 1 where attribute_id = 51;

замените 51 своим собственным идентификатором атрибута. И просто перестроить эти индексы

Пратик Камани
источник