Klient ma ponad 20000 produktów z 7 witrynami. Kiedyś mieli 4 strony internetowe, a większość produktów jest powiązanych z 4 stronami internetowymi. Jaki jest najlepszy i najszybszy sposób na iterację produktów i aktualizację produktów w celu uwzględnienia nowych stron internetowych.
Mam następujący kod, jednak jest on zbyt wolny:
$ productCollection = Mage :: getModel ('catalog / product') -> getCollection () -> addFieldToFilter ('sku', tablica ('like' => '02% ')); foreach ($ productCollection as $ product) { echo $ product-> getSku (); $ product-> setWebsiteIds (tablica (1,2,3,4,5,6,7)); próbować { $ product-> save (); echo "- zapisane."; } catch (wyjątek $ e) { echo '-'. $ e-> getMessage (); } echo "\ n"; }
Myślałem o użyciu metody marszu iteratora, ale rozumiem, że sklep / strona internetowa nie jest dokładnie atrybutem, więc nie można jej łatwo samodzielnie zaktualizować.
Jeśli chcesz dodać tylko produkty przypisane do wszystkich 4 wcześniej istniejących stron internetowych, użyj tego:
Zobacz także: Filtruj produkty według stron internetowych przy użyciu AND
Może to być skrypt instalacyjny Magento lub jednorazowy skrypt PHP (w tym przypadku dodaj
include 'app/Mage.php';
u góry i usuń go z serwera po użyciu)źródło
Krok 1: Uzyskaj wszystkie identyfikatory witryny / utwórz tablicę identyfikatorów witryny
Krok 2: Uzyskaj wszystkie identyfikatory produktu
Krok 3: Dodaj identyfikatory witryn do wszystkich produktów
Uwaga: jeśli chcesz usunąć witrynę z produktu. użyj usuń zamiast dodaj słowo
źródło
Kolejne rozwiązanie, jeśli twoje lenistwo do tego stopnia, że nie chcesz tworzyć żadnych plików PHP:
Pracował dla mnie.
źródło