Jak zastosować ustawienie wyświetlania kategorii do wszystkich kategorii?


10

Mam wiele kategorii i zamiast stosować nowe ustawienia do wszystkich kategorii jeden po drugim, chciałbym wiedzieć, czy można zastosować nowe ustawienia do wszystkich kategorii jednocześnie?

Dzięki!

Odpowiedzi:


13

Nie ma takiej możliwości z poziomu interfejsu użytkownika.
Zwykle robię to, aktualizując wartości w bazie danych. To nie jest zalecane podejście, ale działa.
Załóżmy, że chcesz zaktualizować is_anchoratrybut do „1” dla wszystkich kategorii.

SELECT * FROM eav_attribute where attribute_code = 'is_anchor'

Powyższe zapytanie powinno dać ci is_anchoratrybut. W zapisie, który wynika, widzę, że identyfikator atrybutu to 51 (może być inny dla Ciebie). i backend_typejest int. Oznacza to, że wartości atrybutu znajdują się w tabeli catalog_category_entity_int.

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

To zapytanie ustawi wartość 1 dla atrybutu is_anchor (id 51), dla wszystkich kategorii oprócz „root wszystkich korzeni”, kategorii z parent = 0.
Po uruchomieniu zapytania ponownie indeksuję kategorie płaskie i to wszystko.


perfecto! dokładnie to, czego szukałem: D
Aamir Siddique

7
Zaktualizowano zapytanie SQL dla nowszych wersji Magento (na przykład nie miałem kolumny parent_id). AKTUALIZACJA catalog_category_entity_intustawiona wartość = 1 gdzie eav_attributeidentyfikator_atrybutu = (WYBIERZ identyfikator_atrybutu OD, gdzie kod_atrybutu = „is_anchor”);
Jasuten

@Marius nie działa w moim przypadku, próbuję UPDATE catalog_category_intustawić wartość = 1 gdzie attribute_id = 51 i parent_id <> 0; ale błąd: # 1146 - Tabela „magento1.catalog_category_int” nie istnieje
Dinesh

1
@Dinesh oznacza to, że coś jest nie tak z instancją magento.
Marius

@Marius, jak go znaleźć i naprawić, wszelka pomoc
Dinesh

2

Nie jestem pewien, które ustawienia zmieniasz w swojej kategorii, ale jeśli znajduje się na liście opcji na tej stronie , to użycie interfejsu API REST Magento jest prawdopodobnie najlepszą opcją.


1

Najpierw określ identyfikator atrybutu atrybutu is_anchor:

SELECT * FROM eav_attribute where attribute_code = 'is_anchor';

otrzymujemy identyfikator atrybutu 51 w mojej bazie danych. Teraz uruchom następujące zapytanie

UPDATE catalog_category_entity_int set value = 1 where attribute_id = 51;

zastąp 51 własnym identyfikatorem atrybutu. I po prostu odbuduj te indeksy

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.