2012-12-12 27 views
12

Cách thích hợp để kết nối lại một mục duy nhất sau khi sửa đổi đã được thực hiện với nó là gì.Cách chính xác của Magento để Reindex một mặt hàng và sản phẩm liên quan đến nhóm

Ví dụ bối cảnh:

Công ty chúng tôi dựa trên một nền tảng quản lý hàng tồn kho của bên thứ ba được gọi là Stone Edge. Chúng tôi cũng bán các mặt hàng trên nhiều mặt tiền cửa hàng bao gồm Magento, Amazon, Ebay và Buy.com

Cứ 10 phút một lần Stone Edge sẽ tải xuống tất cả đơn đặt hàng từ các trang web và sau đó gửi điều chỉnh khoảng không quảng cáo trở lại cửa hàng Magento của chúng tôi. Điều này được thực hiện bằng cách gửi một yêu cầu http đơn giản tới một tập lệnh php được lưu trữ trên máy chủ web của chúng tôi với một loạt các cặp khóa giá trị cho từng mục trong khoảng không quảng cáo đã có thay đổi khoảng không quảng cáo kể từ lần cập nhật cuối cùng.

Sau khi chức năng lưu được hoàn tất trên mỗi mục, mục này sau đó được lập chỉ mục sao cho không phản ánh khoảng không quảng cáo 0 ở giữa thời gian cập nhật và chỉ mục lại trên trang web tiếp theo.

Tôi đã nằm trên các diễn đàn thảo luận Magento về làm thế nào để tái lập chỉ mục các mục:

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

Trước khi đặt lệnh này bạn sẽ thấy một cái gì đó giống như

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

Tuy nhiên, sau hoàn thành điều này, một vấn đề trở nên rõ ràng. Bản thân các mục này đã được lập chỉ mục lại, nhưng nếu chúng là thành viên của một sản phẩm được nhóm, thì sản phẩm nhóm không được cập nhật.

Có một vấn đề rõ ràng mà tôi sẽ cần giải quyết. Cách tiếp cận tốt nhất cho vấn đề này là gì?

Tôi sẽ đăng câu trả lời nếu tôi tình cờ tìm ra câu trả lời.

+0

này sẽ reindex chỉ số lượng chứng khoán, phải không? Mã tương tự có thể được sử dụng để cập nhật chỉ mục 'catalog_product_flat' và' catalogsearch_fulltext' sau khi nhập dữ liệu sản phẩm không? I E. nó có thể chèn các hàng mới và/hoặc sửa đổi các hàng hiện có không? –

+0

Tôi vẫn đang tìm câu trả lời cho câu hỏi của Buttle về việc áp dụng điều này cho các chỉ mục khác, cụ thể là catalog_product_flat. Bất kỳ ai? – spadeworkers

Trả lời

0

Trước hết, cảm ơn mã reindex cho mỗi sản phẩm. Đã tìm kiếm điều đó.

Đối với việc cập nhật phụ huynh, tôi sẽ thu thập các ID sản phẩm của cha mẹ trong một mảng khi cập nhật các sản phẩm đơn giản.

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

Và khi bạn đang thực hiện với các sản phẩm đơn giản, chỉ cần đi qua các bậc thầy và thiết lập chúng để được lập chỉ mục lại cũng với ->setForceReindexRequired(true)

Các vấn đề liên quan