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


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, вероятно, является лучшим вариантом.


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 своим собственным идентификатором атрибута. И просто перестроить эти индексы

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.