Ein Kunde hat mehr als 20000 Produkte mit 7 Websites. Früher hatten sie 4 Websites, und die meisten Produkte sind mit 4 Websites verknüpft. Was ist der beste und schnellste Weg, um durch die Produkte zu iterieren und die Produkte zu aktualisieren, um die neuen Websites einzuschließen?
Ich habe den folgenden Code, aber es ist viel zu langsam:
$ productCollection = Mage :: getModel ('Katalog / Produkt') -> getCollection () -> addFieldToFilter ('sku', array ('like' => '02% ')); foreach ($ productCollection als $ product) { echo $ product-> getSku (); $ product-> setWebsiteIds (array (1,2,3,4,5,6,7)); Versuchen { $ product-> save (); Echo "- gespeichert."; } catch (Ausnahme $ e) { echo '-'. $ e-> getMessage (); } Echo "\ n"; }
Ich habe überlegt, die Iterator-Walk-Methode zu verwenden, aber ich verstehe, dass der Shop / die Website nicht genau ein Attribut ist und daher nicht einfach von alleine aktualisiert werden kann.
Wenn Sie nur die Produkte hinzufügen möchten, die allen vier zuvor vorhandenen Websites zugewiesen sind , verwenden Sie diese Option:
Siehe auch: Filtern von Produkten nach Website mithilfe von AND
Dies kann ein Magento-Setup-Skript oder ein wegwerfbares PHP-Skript sein (in diesem Fall oben hinzufügen
include 'app/Mage.php';
und nach der Verwendung vom Server entfernen).quelle
Schritt 1: Alle Website-IDs abrufen / Reihe von Website-IDs erstellen
Schritt 2: Alle Produkt-IDs abrufen
Schritt 3: Fügen Sie allen Produkten Website-IDs hinzu
Hinweis: Wenn Sie die Website aus dem Produkt entfernen möchten. benutze remove statt add word
quelle
Eine andere Lösung, wenn Sie so faul sind, dass Sie keine PHP-Dateien mehr erstellen möchten:
Hat für mich gearbeitet.
quelle