Welche Indizes müssen neu indiziert werden, damit Produkte korrekt angezeigt werden, nachdem der Lagerbestand per Skript geändert wurde?

8

Ich habe einen Cron geschrieben, der jeden Abend das Inventar meiner Produkte aktualisiert. Welche Indizes müssen neu indiziert werden, damit Produkte korrekt angezeigt werden, nachdem der Lagerbestand per Skript geändert wurde? Muss der Cache aktualisiert werden? Der Versuch, genau herauszufinden, warum "In den Warenkorb" letzte Woche in den Produkten fehlte. Die Neuindizierung hat dieses Problem letzte Woche behoben, muss aber wissen, ob mein Aktienskript die Notwendigkeit einer Neuindizierung verursacht hat.

CaitlinHavener
quelle

Antworten:

14

Wenn Sie die Lageroptionen von Produkten aktualisieren, können Sie die "Lagerstatus" -Tabellen programmgesteuert neu indizieren:

    try {
        $indexer = Mage::getModel('index/indexer')->getProcessByCode('cataloginventory_stock');
        $indexer->reindexEverything();
    } catch (Exception $e) {
        //Some error handling
    }

Um das Indexermodell zu erhalten, verwenden Sie Mage::getModel('index/indexer')->getProcessByCode('some_indexer_code_given_below'). Magento bietet mehrere Indexer. Wenn Sie das Produkt programmgesteuert aktualisieren, können Sie folgende Indexer verwenden. Ich gebe nur indexer_code an und Sie sollten das angegebene Snippet ändern (siehe Tabelle index_process):

  • catalog_product_attribute - Produktattribute (Wenn Sie Attribute aktualisiert haben, die für die geschichtete Navigation verwendet werden)
  • catalog_product_price - Produktpreise (Wenn Sie die Preise aktualisiert haben)
  • catalog_url - Umschreiben der Katalog-URL (Wenn Sie die Produkt- oder Katalog-URL aktualisiert haben)
  • catalog_product_flat - Product Flat Data (Wenn Ihr Geschäft Flate-Tabellen verwendet und Sie Produktattribute aktualisiert haben, die überall als Frontend-Logik verwendet werden)
  • catalog_category_flat - Category Flat Data (Wenn Sie Kategorieattribute aktualisiert haben)
  • catalog_category_product - Kategorieprodukte (Wenn Sie Produkte zum Katalog hinzugefügt oder daraus entfernt haben)
  • catalogogsearch_fulltext - Katalogsuchindex (Wenn Sie durchsuchbare Attribute des Produkts aktualisiert haben)
  • cataloginventory_stock - Lagerstatus (Wenn Sie die Lageroptionen des Produkts aktualisiert haben)
  • tag_summary - Tag-Aggregationsdaten (Wenn Sie das Produkt-Tag aktualisiert haben)

Und Sie können (Sie sollten Cashes nach jeder Aktualisierung von Produkten / Kategorien aktualisieren) den Magento-Cache programmgesteuert in Ihrer Logik bereinigen:

Mage::app()->getCacheInstance()->flush();
Mage::app()->cleanCache();
mageUz
quelle