2012-12-12 7 views
12

Tek bir öğeyi, üzerinde değişiklik yapıldıktan sonra yeniden dizine sokmanın doğru yolu nedir.Magento Tek Başına Yeniden Satır Şeklindeki Tek Öğe ve ilişkili Grup ürün

Örnek bağlam:

Firmamız Taş Kenar adı verilen üçüncü taraf envanter yönetimi platformu dayanır. Ayrıca, Magento, Amazon, Ebay ve Buy.com adresindeki birden fazla mağazada ürün satıyoruz.

Her 10 dakikada bir Stone Edge, tüm siparişleri sitelerden indirecek ve envanter ayarlamalarını Magento mağazamıza geri gönderecek. Bu, web sunucumuzda saklanan bir php komut dosyasına, en son güncellemeden beri bir envanter değişikliği yapmış olan envanterdeki her bir öğe için bir dizi anahtar değer çiftiyle basit bir http isteği göndererek yapılır.

Her biri üzerinde kaydetme işlevi tamamlandıktan sonra, öğe, güncellemenin süresi ile bir sonraki site yeniden oluşturma endeksi arasındaki 0 ​​envanterini yansıtmamak için yeniden endekslenir.

Ben öğeyi endekslemek yeniden konusunda Magento forumları tartışma üzerine tespit ettik: sonra,

$item->setForceReindexRequired(true); 
Mage::getSingleton('index/indexer')->processEntityAction($item,Mage_CatalogInventory_Model_Stock_Item::ENTITY,Mage_Index_Model_Event::TYPE_SAVE); 

önce sen Ancak

$item = Mage::getModel('cataloginventory/stock_item')->loadByProduct($entityid); 
$item->addQty($change); 
$item->save(); 

gibi bir şey görecekti talimatların bu kümesine Bunu tamamlayarak, bir sorun ortaya çıktı. Ürünlerin kendileri yeniden endekslendi, ancak gruplandırılmış bir ürünün üyesiyse, grup ürünü güncellenmedi.

Adreslemem gerekecek açık bir sorun var. Bu probleme en iyi yaklaşım nedir?

Biriyle gelirsem bir cevap vereceğim.

+0

ile Bu hak, sadece stok miktarlarını reindex olur reindexed? Ürün verilerini içe aktardıktan sonra "catalog_product_flat" ve "catalogsearch_fulltext" dizinlerini güncellemek için benzer kod kullanılabilir mi? Yani yeni satırlar ekleyebilir ve/veya mevcut olanları değiştirebilir mi? –

+0

Hala Buttle'ın bunu diğer dizinlere, özellikle de catalog_product_flat'a uygulamakla ilgili sorusuna bir cevap arıyorum. Kimse? – spadeworkers

cevap

0

Her şeyden önce ürün reindex kodu için teşekkürler. Bunu arıyordum.

Ebeveynleri güncellemek için, basit ürünleri güncelleştirirken ana ürün kimliklerini bir dizide toplardım.

$masterIds[] = Mage::getModel('catalog/product_type_configurable') ->getParentIdsByChild($product->getId())

Ve basit ürünlerle bitince, sadece ustaların üzerinde gidip onları kurmak yanı ->setForceReindexRequired(true)