我正在通过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秒的时间。该操作重新索引哪些索引?哪个缓存?
答案 0 :(得分:1)
可能是您为产品启用了FLAT模式。如果是这样,请在更新后尝试调用next命令:
Mage::getResourceModel('catalog/product_flat_indexer')->rebuild();