2012-12-12 9 views
12

Jaki jest właściwy sposób na ponowneindeksowanie pojedynczego przedmiotu po wprowadzeniu w nim modyfikacji.Właściwy sposób Magento do pojedynczego elementu Reindex i powiązany produkt grupy

Przykład kontekst:

Nasza firma opiera się na platformie zarządzania zapasami cywilnej o nazwie Kamień krawędź. Sprzedajemy również przedmioty na wielu witrynach sklepowych takich jak Magento, Amazon, Ebay i Buy.com.

Raz na 10 minut Stone Edge pobierze wszystkie zamówienia z witryn, a następnie wyśle ​​korekty z magazynu z powrotem do naszego sklepu Magento. Odbywa się to poprzez wysłanie prostego żądania http do skryptu php przechowywanego na naszym serwerze internetowym z tablicą par wartości klucza dla każdego z produktów w ekwipunku, które zmieniły stan magazynowy od czasu ostatniej aktualizacji.

Po zakończeniu funkcji składowania każdego z tych elementów, przedmiot jest ponownie indeksowany tak, aby nie odzwierciedlał inwentarza 0 w okresie między aktualizacją a ponownym indeksowaniem w następnej kolejności.

Ja się na Magento forach dyskusyjnych na temat Ponowne indeksowanie urządzenia:

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

przed tym zestawem instrukcji można zobaczyć coś takiego

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

Jednak po dopełniając tego, pojawił się problem. Same pozycje zostały ponownie zindeksowane, ale jeśli były częścią zgrupowanego produktu, produkt grupowy nie został zaktualizowany.

Istnieje oczywisty problem, który będę musiał rozwiązać. Jakie jest najlepsze podejście do tego problemu?

Napiszę odpowiedź, jeśli zdarzy mi się wymyślić jedną.

+0

To reindex tylko ilości akcji, prawda? Czy podobny kod może być użyty do aktualizacji "catalog_product_flat" i "catalogsearch_fulltext" indeksów po zaimportowaniu danych produktu? To znaczy. czy może wstawić nowe wiersze i/lub zmodyfikować istniejące? –

+0

Wciąż szukam odpowiedzi na pytanie Buttle o zastosowanie tego do innych indeksów, w szczególności catalog_product_flat. Ktoś? – spadeworkers

Odpowiedz

0

Przede wszystkim dziękuję za kod reindeksu na produkt. Szukałem tego.

Jeśli chodzi o aktualizowanie rodziców, chciałbym zebrać identyfikatory nadrzędnych produktów w tablicy podczas aktualizacji prostych produktów.

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

A kiedy skończysz z prostych produktów, wystarczy przejść przez mistrzów i ustawić je do przeindeksowane jak również z ->setForceReindexRequired(true)

Powiązane problemy