Magento是1M产品的正确平台吗?


31

我需要看看Magento将如何处理100万个SKU。但我一直在努力寻找大量要下载的示例数据的数据集-或找到一种生成要导入的供稿(以及导入过程本身)的可行方法。

  1. 有人知道我可以在哪里下载大型虚拟数据集以进行导入(或通过合理的方式生成和导入)吗?
  2. 对于目录大小超过1M的产品,您会遇到什么问题?
  3. 有没有办法与多个独立商店(不同公司)共享单个产品数据库?

Answers:


36

tl;dr ->Magento可以处理1M产品吗 ”,答案是肯定的,但要考虑一些因素。在这样的规模下,您会假设您有足够的能力来支持对基础架构和人员的大量投资,以销售此比例的目录。

第一:

如您所见,Magento CE样本数据只有少数几种不同类别的产品。EE样本数据有更多,并按商店类型将其分开。

您可以在此处下载CE示例数据。如果您拥有EE,则必须从您的MagentoCommerce.com帐户中下载EE示例数据。

但是,您会发现这不是数百种甚至数千种产品。我建议您将产品导入数据库中 -这是一个很好的练习,可以帮助您了解此过程的工作方式。这可以通过Magento的Dataflow或API导入来完成-有关如何大规模执行此操作的信息可从Internet上轻松获得。

请注意-众所周知,数据流速度很慢,因此导入所需大小的目录可能要花费大量时间。据我所知,目前没有一个样本目录,其中包含成千上万种产品。


编辑1/7/14:

Twitter上的@ryaan_anthony发布了MySQL存储过程,该过程将生成数十万种产品https://gist.github.com/ryaan-anthony/6290973


关于Magento API和数据流的一些阅读:

http://www.magentocommerce.com/knowledge-base/entry/introduction-to-magento-dataflow

http://www.magentocommerce.com/api/soap/catalog/catalog.html

第二:

当运行此大小的目录时,产品,URL重写和库存索引是主要问题。目录搜索也可能相当慢,但是如果使用Apache Solr(EE本身提供的集成),则可以缓解目录搜索。Solr有CE插件-Sonassi有一个,而其他的则可以通过Google找到。

我已经管理了700k范围内的目录,但仍然不到1M,而且建立索引可能要花几个小时。在Enterprise 1.13中已解决问题。我强烈建议您仔细了解这种规模的企业版。CE有可能吗?绝对; 但是EE 1.13中的索引改进专门针对这种情况而设计。

第三:

多店是 Magento的本地商店;您可以设置不同的顶级类别和网站。他们不必全部共享同一目录-您可以选择要在站点之间共享的产品,也可以决定将目录分开。更多信息在这里:

http://www.magentocommerce.com/knowledge-base/entry/overview-how-multiple-websites-stores-work

您在Magento中拥有的商店,商店视图越多,索引条目就越多,您的统一目录可能会膨胀得更多,以至于统一目录实际上可能会浪费性能。同样,Sonassi在Magento.SE 及其站点上拥有大量有关此的信息。当您进入产品管理领域时,您将需要在Magento.SE上搜索Sonassi的一些答案以处理/扩展Magento。

每个人的安装都不相同-您需要不断测试,优化,实施调整,以找到适合您情况的最适合您的目录的设置。


你好!非常感谢您提供所有这些信息。
加布里埃莱

数据库是由连接到许多编辑器的系统自动构建的,编辑器会定期更新我们的数据库。我们为书店提供了最终的数据库和更新,现在我们想为我们的客户提供完整的电子商务解决方案。我通过Magmi导入了所有数据。对我们来说,这是梦幻般的完美。至于索引,我将寻求Solr解决方案。我无法使用MultiStores,因为我需要为客户提供完全的管理员访问权限。再次感谢你!
加布里埃莱

有趣的是,您没有提到托管,数据库优化,数据流的替代方案或增强功能的考虑因素,对大型数据处理使用克隆代替工厂实例化,高速缓存和性能优化以及针对此目录优化magento的其他性能选项尺寸。等待几个小时进行索引听起来很痛苦...为什么不运行集群,或使用mysql代理处理索引并在完成后让数据库表同步呢?只是一些基本思想...还有更多高级方法可用。
mprototype

@mprototype可以随意添加自己的答案。
philwinkle

7

使用ApiImport导入如此大量的产品。它基于ImportExport,而且速度非常快...我已经在虚拟机上每小时管理多达50万个(索引)简单产品。

只需运行tests / benchmark_import_api.php。编辑该文件以删除不需要的实体类型(和子类型)。您可能还希望将USE_API设置为false以获得更快的结果。



4

使一百万种产品进入magento。编写简单的PHP脚本,以生成具有多种产品类型的magmi支持的产品导入csv文件。然后使用magmi导入它们

http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Magmi_Wiki


Magmi是csv进口商,对吗?所以我必须给Magm提供包含目录的csv文件,对吗?
加布里埃莱

1
是的,在Wiki中有说明文件,如何格式化要导入产品的csv,然后使用网络界面制作配置文件并使用cli命令将其导入来做/ usr / bin / php magmi.cli.php -profile = custom_options -mode = create -CSV:filename =“ $ {x}”; 完成
Sutha Kathir 2013年

CSV是Magmi可以使用的数据源之一。请记住,Magmi有一个datapump界面,您可以将数据插入CSV文件中。
Axel

3

似乎其他人已经回答了您的大多数问题,但还不是一个完整的答案,仅需补充以下几点:

1)我有这个周围铺设: 近百万随机Magento的产品十的CSV 您还可以给http://beta.generatedata.com/一试。

2)正如Philwinkle早已提到的:建立索引,数据流和搜索是使用如此大的数据集要克服的最大障碍。EE1.13在处理如此大的数据(MySQL触发器,考虑到所有产品/类别状态等)方面做得更好,但是请记住,此时它仍是初始版本(x.0.0),我倾向于等待一些发布,以使其他人可以在针对生产环境考虑之前承担发现错误的负担。基础架构和优化是关键。将来的升级也是要考虑的另一件事,因为ALTER TABLE升级期间不会合并,并且可能需要数小时/天才能在数据库上执行升级:

关于大型数据库的索引编制主题的一些进一步的阅读:

3)在两个Magento商店之间共享数据的最简单方法是通过向其他公司Magento API的REST / SOAP请求。另一种方法是简单地从一家公司转储目录,然后让另一家公司提取并解析该目录,这可能比通过带有一百万种产品的API快得多。


1
1)我来看看。2)是的,我去了CE的Magmi。我们将看到它的性能。3)是的,我认为转储数据并在新商店中导入将是我们的选择,除非我们找到在所有电子商店之间共享通用产品数据库的方法。谢谢很多B00mer!
加布里埃莱

3

我们刚刚使用magento 1.7.x进行了一个具有1.2m(无属性,尤其是只有一个商店视图)产品的项目,这是我们的一些经验:

  1. 实际进口产品还不错,我认为我们最初的进口时间约为1.5小时

  2. 当执行重新索引操作时,磁盘io会遭受极大的折磨,解决方案是获得大量的ram(32gb ram amazon ssd实例)。优化innodb设置,使innodb池的内存分配稍微超出数据库的大小,尤其是将临时表缓冲区从默认的16mb更改为128mb,这确实节省了我们的重新索引过程。

  3. 缓存,仅将APC缓存用于快速缓存,将文件用于慢速缓存,关闭不必要的日志记录和模块以及平面表以及其他一些优化措施,使得服务器可以在200毫秒内交付产品页面html(而不是整个页面)。在我们的待办事项清单上是清漆缓存。

  4. 根据论坛的说法,我们在解决和解决许多僵局问题(仍然存在一些管理员问题)的地方,可能是较新版本的Magento不会解决这些问题。

我会说120万种产品确实存在问题,如果没有足够的团队和资源,我不建议您这样做,但是如果您有时间,可以使它起作用。

我不知道还有什么其他平台能做得更好。


2

Magento CE&EE总是可以做到这一点,是的,Magento CE&EE可以(根据经验,而不是理论上使用提供的数据集),尽管显然EE对于索引编制更好。Magmi很好,但是当您为初始负载重新索引时,将会遇到严重的问题。最重要的是,您需要进行维护,如果3%的产品每天更换,则需要使用自动索引更新30,000个产品,您将无法执行每日重新索引。这归结为两件事,即集群托管和启用增量访问的供应商入职,这是企业公司的领域。

人们似乎认为工作是在加载产品时结束的,但是那是艰苦的工作开始的时候。如果您有太多的商店,定价层,那么您的托管服务需要增加一倍,因此,出于所有意图和目的,有95%的人没有机会实施它,有99%的人没有机会对其进行维护。数百万种产品等于中型到大型企业-如果您的顾问没有这种经验,则期望基础架构在中长期内崩溃。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.