Mage产品以编程方式刷新

时间:2014-12-12 18:55:38

标签: magento magmi mage

我正在通过API使用magmi进行产品导入。我的脚本将csv文件解析为$ product_rows,然后使用my属性在mage中加载产品以获取magmi使用的sku。我这样做是因为后来我将使用已经加载的magento skus的外部数据库来利用magmi导入的速度。以下是我在法师身上拉扯skus的方法:

$magentoproducts = Mage::getResourceModel('catalog/product_collection')
                    ->addAttributeToSelect('*')
                    ->addAttributeToFilter('mpn', $product_row['mpn'])
                    ->addAttributeToFilter('brand', $_POST['selectbrand'])
                    ->load();
foreach($magentoproducts as $product){

                $items[] = array(
                "store" => 'admin',
                "sku" => $product->getSku(),
                "price" => $product_row['map']
                );

            }
foreach($items as $item){
            $dp->ingest($item); //do the update
        }

问题是我的价格在magento的管理产品页面中更新,但它们没有显示在目录中。然后,我将以下代码放入reindex catalog_product_price,这会更改搜索页面上显示的价格,但不会更改产品添加时的实际产品页面或购物车。

Mage::getModel('index/indexer')
    ->getProcessByCode('catalog_product_price')
    ->reindexAll();

我尝试在magento管理面板中手动重新索引其他几个索引,以及从magento面板清除缓存。在所有页面上更新价格的唯一方法是使用magento中的增强型产品经理刷新产品,但这需要大约2-3秒的时间。该操作重新索引哪些索引?哪个缓存?

1 个答案:

答案 0 :(得分:1)

可能是您为产品启用了FLAT模式。如果是这样,请在更新后尝试调用next命令:

Mage::getResourceModel('catalog/product_flat_indexer')->rebuild();