首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento导入产品API调用模型: product_api:创建产品1需要40秒

Magento导入产品API调用模型: product_api:创建产品1需要40秒
EN

Stack Overflow用户
提问于 2013-03-04 02:50:37
回答 1查看 1.9K关注 0票数 2

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

对于一个客户来说,每件产品需要1-3秒,而另一位客户的代码是在30秒到1分之间。

我是从Alan 脚本的文章“为Magento的肥皂洗涤泡沫”中得到的。

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

更新(1):我看到索引是很久以前构建的(几个星期),在它运行得更快之后。但不要太快。每件产品6秒,再重复3秒,只为产品的创建。在其他3秒钟内,更新股票api并添加媒体api。

更新(2):索引被重建(在程序中太自动),但是今天每个产品需要40秒(怎么可能,webshop不慢)

更新(3):这是一个缓存问题,每次缓存(存储缓存)被清除,再次3-6秒(第一次没有问题,大部分产品,每晚晚些时候这将是几个新产品)。

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

更新(5):Magento (创建产品)和Magmi有什么区别?Magmi直接在数据库中创建记录,但是如果扩展做额外的事情--核心扩展--可能包含在Magento API (create product)中,我认为这类事情你必须自己做,因此我觉得Magento API (create product)也更安全吗?(第一次慢速,在正常之后,但在任何版本中都是安全的)

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

答:是的,现在看来,用Magmi来创造产品是很容易的。我还不知道我错过什么因为其他的扩展..。

代码:

代码语言:javascript
复制
  $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;
  }
EN

回答 1

Stack Overflow用户

发布于 2013-03-04 11:17:11

看看Magmi的"项目起源“条目,你就会明白为什么要花那么多时间。

Magmi Datapump API非常适合于简单地修改脚本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15193839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档