【问题标题】:Magento import products API Call model: product_api: create product 1 product takes 40 secondsMagento 导入产品 API 调用模型:product_api:创建产品 1 产品需要 40 秒
【发布时间】:2013-03-04 02:50:37
【问题描述】:

有人知道为什么 api 调用需要这么多时间来创建 1 个产品吗?

一个客户需要 1-3 秒的产品,而另一个客户的相同代码需要 30 秒到 1 分钟。

我从 Alan Storm http://alanstorm.com/magento_soap_api_shell_scripts 的文章“Scrubbing Bubbles for Magento 的 SOAP”中得到它

因此您可以跳过 SOAP 或 XML-RPC 层并在核心中使用直接调用。

UPDATE(1):我看到索引是很久以前(数周)建立的,之后它的速度要快得多。但不要太快。每个产品 6 秒,3 秒仅用于产品的创建。在另外 3 秒内更新股票 api 并添加媒体 api。

UPDATE(2):索引正在重建(在程序中也自动重建)但今天每个产品需要 40 秒(这怎么可能,网店不慢)

UPDATE(3):这是缓存问题,每次清空缓存(storage cache),再3-6秒(只有第一次没问题,大批量产品,以后每晚都会这样一些新产品)。

更新(4):是的,Magmi 的速度非常快,每小时 18.000 个产品,并且创建了所有图像和额外图像(包括自己的 ERP 扩展记录)。但是插件gallery_images的目录问题,花了最多时间让它工作,我的程序是从根+子目录运行的,而Magmi将根+子目录作为“根”,所以我不得不改变Magmi,以确定是否有创建产品也不例外,因为我必须在之后做自己的事情(为 ERP 扩展创建记录)。

UPDATE(5):Magento API(创建产品)和 Magmi 有什么区别? Magmi 在数据库中创建直接记录,但如果扩展做额外的事情核心扩展可能被 Magento API(创建产品)覆盖,我认为你必须自己做的事情,因此我找到 Magento API(创造产品)更安全使用,或不使用? (第一次慢,正常后,​​但任何版本都安全)

问题:我创建这个是因为我在论坛上看到,Magmi 和 Martinez 速度很快,但他们都有问题,你不能做所有事情。所以我只使用 Magmi 来更新产品,速度非常快(Martinez 也是)。 但这是真的吗,还是您通常也可以使用 Magmi 或 Martinez 轻松创建产品?(我的程序始终是我的第二种可能性)。但我现在去试试这个(Magmi),因为这一切都太慢了。

回答:是的,目前看来,使用 Magmi 创建产品很容易.. 我还不知道我错过了什么,因为其他扩展..

代码:

  $model = Mage::getModel('catalog/product_api');

  $type = 'simple';
  $product_attribute_set_id = '9';
  $sku = ($products_array[$p][0]);
  $data = array('short_description' => $products_array[$p][3],
                'name' => $products_array[$p][1],
                'weight' => ((float)str_replace(",", ".", $products_array[$p][16])),
                'price' => ((float)str_replace(",", ".", $products_array[$p][7])) * $profit,
                'cost' => ((float)str_replace(",", ".", $products_array[$p][8])),
                'description' => $products_array[$p][2],
                'tax_class_id' => $tax_class_id,
                'status' => '1',
                'eancode' => $products_array[$p][4],
                'afas_sku' => $products_array[$p][0],
                'leverancier' => $supplier,
                'inhoud_verpakking' => $products_array[$p][0],
                'size' => $products_array[$p][13],
                'material' => $products_array[$p][15],
                'kleur' => $color,
                'manufacturer' => $manufacturer,
                'delivery' => $delivery,
                'pptitleadditional' => $products_array[$p][24],
                'meta_title' => $products_array[$p][1] . " | " . $products_array[$p][23] . " | xxxxx.nl",
                'meta_description' => "xxx.",
                'categories' => array('0' => $cat_new_prod1[(string)( $products_array[$p][0])],
                                      '1' => $cat_new_prod2[(string)( $products_array[$p][0])],
                                      '2' => $cat_new_prod3[(string)( $products_array[$p][0])],
                                      '3' => $cat_new_prod4[(string)( $products_array[$p][0])],
                                      '4' => $cat_new_prod5[(string)( $products_array[$p][0])]
                                     )
               );
  try {
    $new_product_id = $model->create($type,$product_attribute_set_id,$sku,$data);
  } catch (Exception $e) { // sku already used
    userErrorHandler(E_USER_WARNING, $e->getMessage(), $e->getFile(), $e->getLine(), "");
    continue;
  }

【问题讨论】:

    标签: image magento import product magmi


    【解决方案1】:

    查看 Magmi wiki "Project origins" 条目,您就会明白为什么需要这么多时间。

    Magmi Datapump API 非常适合调整您的脚本,几乎不需要修改

    【讨论】:

    • 谢谢,我也尝试将 Magmi 用于新产品,但我总是在 Magmi/Martinez 失败的情况下(阅读论坛)保留我的程序(甚至很慢)。如果一切正常,我会告诉你(非常好奇)。
    • 我从我的客户那里听说,在 admin 中正常的产品导入需要相同的时间(所以与我对我的程序比较满意,只运行第一次慢,但接下来的晚上只有一些新产品)。但是我去试试 Magmi,希望它也能很好地处理图像(在管理员中正常导入也是一个问题)。
    • 亲爱的 Dweeves,您是一位出色的程序员。一切都适用于 Magmi、图像和额外图像(媒体库插件)。但是我遇到了“根”目录的问题,因为我读过很多用户都有这个问题。我的程序(cron)在 root + 子目录中运行,Magmi 将其作为新的“root”,所以我不得不更改 ImageAttributeItemProcessor 中的字段 magdir。此外,我必须更改 Magmi_ProductImport_DataPump 中的函数摄取以返回 $res,以确定是否真的添加了产品以在之后采取自己/额外的操作。必要时,我会保留自己的程序,以应对在 Magmi 中可能无法实现的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    相关资源
    最近更新 更多