我正在通过API使用magmi进行产品导入。我的脚本将csv文件解析成$product_rows,然后使用我的属性在mage中加载一个产品,以获取magmi要使用的sku。我这样做是因为稍后我将使用已加载magento skus的外部数据库,以利用magmi导入的速度。下面是我在mage中拉取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秒的时间。此操作对哪些索引进行重新索引?哪些缓存?
发布于 2014-12-13 17:41:42
您可能已经为产品启用了平面模式。如果是,请在更新后尝试调用下一个命令:
Mage::getResourceModel('catalog/product_flat_indexer')->rebuild();https://stackoverflow.com/questions/27450260
复制相似问题