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();