Magento:通过cron作业导入/更新大量产品?

时间:2015-03-30 07:05:58

标签: php magento

我正在尝试从给定的XML文件(没有Magento导入格式)将10000+产品导入/更新到Magento 1.9中。这是当前的工作流程:

在cron作业中,我每天凌晨1点下载一个XML文件。此文件包含10000多种产品。所以我使用PHP的XMLReader类来浏览XML文件。为了确定产品是否已经存在,我首先通过sku加载产品,就像这样,之后我检查它是否已加载,如下所示:

$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
if(!$product) { 
    // create the product
} else {
    // update the product
}

当然这不是唯一的代码,但也许是我的瓶颈?代码永远以我现在编写的方式运行。关于如何快速(可能在3-4小时内)进口10000多种产品的任何想法?

我无法使用magmi或导入工作流程,因为导入必须在晚上通过cron作业运行。

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,关于数据库中的产品实体存储:所有内容都使用EAV模式存储,这意味着您可以向产品实体添加任意属性,并将它们视为与产品表上的另一列大致相同。但是,它们实际上存储在一组表中,然后在您请求产品模型时必须将它们连接起来(因此您要加入几个大型表,10000次以上)。

幸运的是,有一种方法可以采用平面表的形式 - 这些表采用自定义属性并创建一个包含所有产品属性的表(使用“在产品列表中使用”选项配置) 。您的瓶颈可能是您没有使用此产品平台(在“目录”部分下的“系统配置”中启用它)。它应该在打开后自动重新构建平台,如果不是,您需要从索引管理手动重新索引。