Magento-API: erstellen von Indizes nach dem hinzufügen neuer Produkte
Bin ich derzeit ein Skript schreiben, dass mir erlaubt den import mehrerer Produkte in magento.
$product = Mage::getModel('catalog/product');
$product->setSku($data['sku']);
//etc etc
$product->save();
Das Produkt wird perfekt geschaffen, aber es wird nicht zeigen, bis in meinem frontend bis ich entweder speichern Sie es im backend (ohne etwas zu ändern!) ODER ich Baue die Indizes im backend.
Habe ich ein diff auf die relevanten Datenbank-Tabellen, um zu sehen, was ändert sich, wenn ich das Produkt Hinzugefügt und diese Felder in meine import-Skript, aber es hatte keinen Effekt. Das importierte Produkt muss in Ordnung sein, da es sich zeigt, wenn ich die Neuerstellung der Indizes, die über das backend manuell.
Caching komplett deaktiviert.
Nun meine Frage: Wie kann ich das erneute erstellen der Indizes nach Import meiner Produkte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie mit diesem Modell in der Index-Modul.
Da müssen Sie alles neu erstellen der Indizes, es gibt keine Filter aplied Sammlung. Aber Sie können filter der index-Prozesse-Liste durch setzen von Parameter (code, das Letzte mal re-indiziert, etc) über
addFieldToFilter($field, $condition)
Methode.Kleine Anregung
Wäre toll, set-Indizes in den manuellen Modus, während Sie den Import der Produkte, wird es Ihnen helfen, beschleunigen den import-Prozess, weil einige von Ihnen beobachten, Produkt-saving-Ereignis , so dauert es einige Zeit. Sie können es in der folgenden Weise:
Gibt es mindestens zwei Umstände, die verhindern, dass indexer reindex ein Produkt auf speichern.
Eins: das "Manuelle update" - Einstellung in den Indizes Eigenschaften, die Sie finden unter System, Index-Management. Sollten Sie diese Einstellung auf "Update auf "Speichern", wenn Sie möchten, ein Produkt, indiziert auf speichern.
Zwei: die setIsMassupdate Produkt-flag, das verwendet wird, zum Beispiel in der Datenfluss-batch-import-Verfahren, um zu verhindern, dass indexer ausgelöst werden, bei jedem Produkt save-Methode aufrufen.
Hoffe, das hilft.
Grüße, Alessandro