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!
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:
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_anchor
atrybut do „1” dla wszystkich kategorii.
SELECT * FROM eav_attribute where attribute_code = 'is_anchor'
Powyższe zapytanie powinno dać ci is_anchor
atrybut. W zapisie, który wynika, widzę, że identyfikator atrybutu to 51 (może być inny dla Ciebie). i backend_type
jest 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.
catalog_category_entity_int
ustawiona wartość = 1 gdzie eav_attribute
identyfikator_atrybutu = (WYBIERZ identyfikator_atrybutu OD, gdzie kod_atrybutu = „is_anchor”);
catalog_category_int
ustawić wartość = 1 gdzie attribute_id = 51 i parent_id <> 0; ale błąd: # 1146 - Tabela „magento1.catalog_category_int” nie istnieje
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ą.
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