Magento API: Erstellen Sie Indizes neu, nachdem Sie neue Produkte hinzugefügt haben

8

Ich schreibe gerade ein Skript, mit dem ich mehrere Produkte in Magento importieren kann.

%Vor%

Das Produkt wird perfekt erstellt, aber es wird nicht in meinem Frontend angezeigt, bis ich es entweder im Backend speichern (ohne etwas zu ändern!) ODER ich die Indizes im Backend neu erstellen.

Ich habe die relevanten Datenbanktabellen analysiert, um zu sehen, was sich ändert, wenn ich das Produkt speichere, und diese Felder zu meinem Import-Skript hinzugefügt habe, aber es hatte keine Auswirkungen. Das importierte Produkt muss in Ordnung sein, da es angezeigt wird, wenn ich die Indizes manuell über das Backend neu anlege.

Caching ist vollständig deaktiviert.

Nun meine Frage ist: Wie kann ich die Indizes nach dem Importieren meiner Produkte neu erstellen?

    
Alex 03.12.2010, 08:35
quelle

2 Antworten

34

Sie können ein solches Modell im Modul Index verwenden.

%Vor%

Da Sie alle Indizes neu erstellen müssen, gibt es keine Filter für die Sammlung. Aber Sie können die Liste der Indexprozesse nach Parametern (Code, zuletzt indiziert usw.) über addFieldToFilter($field, $condition) method filtern.

Kleiner Vorschlag

Es wäre großartig, die Indizes beim Importieren der Produkte in den manuellen Modus zu versetzen. Dies würde Ihnen helfen, den Importvorgang zu beschleunigen, da einige von ihnen das Produktsparereignis beobachten, so dass es einige Zeit in Anspruch nimmt. Sie können es auf folgende Weise tun:

%Vor%     
Ivan Chepurnyi 03.12.2010, 08:57
quelle
4

Es gibt mindestens zwei Umstände, die verhindern, dass der Indexer ein Produkt beim Speichern neu indiziert.

Eins: Die Einstellung "Manuelle Aktualisierung" in den Indexeigenschaften, die Sie unter System, Indexverwaltung finden. Sie sollten es auf "Update bei Speichern" setzen, wenn Sie möchten, dass ein Produkt beim Speichern indiziert wird.

Zwei: Das setIsMassupdate-Produktflag, das z. B. in DataFlow-Batch-Importprozeduren verwendet wird, um zu verhindern, dass der Indexer bei jedem Aufruf der Produktspeichermethode ausgelöst wird.

Hoffe, das hilft. Grüße, Alessandro

    
Alessandro Ronchi 25.10.2011 04:55
quelle

Tags und Links