Indeks apa yang perlu diindeks ulang agar produk ditampilkan dengan benar setelah stok diubah melalui skrip?

8

Saya telah menulis cron yang memperbarui inventaris produk saya setiap malam. Indeks apa yang perlu diindeks ulang agar produk ditampilkan dengan benar setelah stok diubah melalui skrip? Apakah cache perlu di-refresh? Mencoba menunjukkan dengan tepat mengapa "add to cart" hilang dari produk minggu lalu. Reindexing menyelesaikan masalah itu minggu lalu tetapi perlu tahu apakah skrip stok saya menyebabkan kebutuhan untuk mengindeks ulang.

CaitlinHavener
sumber

Jawaban:

14

Jika Anda memperbarui opsi stok produk, Anda dapat mengindeks ulang tabel "Status Stok" secara terprogram:

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

Untuk mendapatkan penggunaan model pengindeks Mage::getModel('index/indexer')->getProcessByCode('some_indexer_code_given_below'). Magento menyediakan beberapa pengindeks. Jika Anda memperbarui produk secara terprogram Anda dapat menggunakan pengindeks berikut, cukup saya berikan indexer_code dan Anda harus mengubah potongan yang diberikan (lihat tabel index_process):

  • catalog_product_attribute - Atribut Produk (Jika Anda memperbarui atribut yang digunakan navigasi berlapis)
  • catalog_product_price - Harga Produk (Jika Anda memperbarui harga)
  • catalog_url - Katalog URL Rewrites (Jika Anda memperbarui Produk atau url Catalag)
  • catalog_product_flat - Data Flat Produk (Jika toko Anda menggunakan tabel Flate dan jika Anda memperbarui atribut produk yang menggunakan logika frontend di mana pun)
  • catalog_category_flat - Category Flat Data (Jika Anda memperbarui atribut kategori)
  • catalog_category_product - Kategori Produk (Jika Anda menambahkan atau menghapus produk dari katalog)
  • catalogsearch_fulltext - Indeks Pencarian Katalog (Jika Anda memperbarui atribut produk yang dapat dicari)
  • cataloginventory_stock - Status Stok (Jika Anda memperbarui opsi stok produk)
  • tag_summary - Data Agregasi Tag (Jika Anda memperbarui tag Produk)

Dan Anda dapat (Anda harus menyegarkan uang tunai setelah pembaruan produk / kategori) membersihkan cache magento secara terprogram dalam logika Anda:

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