【问题标题】:Magento: Importing / updating LOTS of products via cron job?Magento:通过 cron 作业导入/更新大量产品?
【发布时间】:2015-03-30 07:05:58
【问题描述】:

我正在尝试从给定的 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 作业运行。

谢谢!

【问题讨论】:

标签: php magento


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-07-22
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    相关资源
    最近更新 更多