Si vous mettez à jour les stock options des produits, vous pouvez réindexer les tables "Stock Status" par programme:
try {
$indexer = Mage::getModel('index/indexer')->getProcessByCode('cataloginventory_stock');
$indexer->reindexEverything();
} catch (Exception $e) {
//Some error handling
}
Pour obtenir l'utilisation du modèle d'indexeur Mage::getModel('index/indexer')->getProcessByCode('some_indexer_code_given_below')
. Magento fournit plusieurs indexeurs. Si vous mettez à jour le produit par programme, vous pouvez utiliser les indexeurs suivants, je donne juste indexer_code et vous devez changer l'extrait donné (voir la table index_process):
- catalog_product_attribute - Attributs du produit (si vous avez mis à jour des attributs utilisés pour la navigation en couches)
- catalog_product_price - Prix des produits (si vous avez mis à jour les prix)
- catalog_url - Réécriture de l'URL du catalogue (si vous avez mis à jour l'URL du produit ou Catalag)
- catalog_product_flat - Données plates sur le produit (si votre magasin utilise des tables Flate et si vous avez mis à jour des attributs de produit qui sont utilisés partout dans la logique frontale)
- catalog_category_flat - Données plates de catégorie (si vous avez mis à jour les attributs de catégorie)
- catalog_category_product - Produits de catégorie (si vous avez ajouté ou supprimé des produits du catalogue)
- catalogsearch_fulltext - Index de recherche de catalogue (si vous avez mis à jour les attributs de produit pouvant être recherchés)
- cataloginventory_stock - État du stock (si vous avez mis à jour les options d'achat d'actions du produit)
- tag_summary - Données d'agrégation de balises (si vous avez mis à jour la balise de produit)
Et vous pouvez (vous devez actualiser les cashes après toute mise à jour des produits / catégories) nettoyer le cache magento par programmation dans votre logique:
Mage::app()->getCacheInstance()->flush();
Mage::app()->cleanCache();