Answers:
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。
每个人的安装都不相同-您需要不断测试,优化,实施调整,以找到适合您情况的最适合您的目录的设置。
使用ApiImport导入如此大量的产品。它基于ImportExport,而且速度非常快...我已经在虚拟机上每小时管理多达50万个(索引)简单产品。
只需运行tests / benchmark_import_api.php。编辑该文件以删除不需要的实体类型(和子类型)。您可能还希望将USE_API设置为false以获得更快的结果。
过去,我们曾使用http://www.icecat.biz/en/提取产品供稿以加载到样本数据中。Magento扩展也有一些,但是它们从来没有为我们工作过,因此我们着手编写大多数导入脚本。
使一百万种产品进入magento。编写简单的PHP脚本,以生成具有多种产品类型的magmi支持的产品导入csv文件。然后使用magmi导入它们
http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Magmi_Wiki
似乎其他人已经回答了您的大多数问题,但还不是一个完整的答案,仅需补充以下几点:
1)我有这个周围铺设: 近百万随机Magento的产品十的CSV 您还可以给http://beta.generatedata.com/一试。
2)正如Philwinkle早已提到的:建立索引,数据流和搜索是使用如此大的数据集要克服的最大障碍。EE1.13在处理如此大的数据(MySQL触发器,考虑到所有产品/类别状态等)方面做得更好,但是请记住,此时它仍是初始版本(x.0.0),我倾向于等待一些发布,以使其他人可以在针对生产环境考虑之前承担发现错误的负担。基础架构和优化是关键。将来的升级也是要考虑的另一件事,因为ALTER TABLE
升级期间不会合并,并且可能需要数小时/天才能在数据库上执行升级:
关于大型数据库的索引编制主题的一些进一步的阅读:
3)在两个Magento商店之间共享数据的最简单方法是通过向其他公司Magento API的REST / SOAP请求。另一种方法是简单地从一家公司转储目录,然后让另一家公司提取并解析该目录,这可能比通过带有一百万种产品的API快得多。
我们刚刚使用magento 1.7.x进行了一个具有1.2m(无属性,尤其是只有一个商店视图)产品的项目,这是我们的一些经验:
实际进口产品还不错,我认为我们最初的进口时间约为1.5小时
当执行重新索引操作时,磁盘io会遭受极大的折磨,解决方案是获得大量的ram(32gb ram amazon ssd实例)。优化innodb设置,使innodb池的内存分配稍微超出数据库的大小,尤其是将临时表缓冲区从默认的16mb更改为128mb,这确实节省了我们的重新索引过程。
缓存,仅将APC缓存用于快速缓存,将文件用于慢速缓存,关闭不必要的日志记录和模块以及平面表以及其他一些优化措施,使得服务器可以在200毫秒内交付产品页面html(而不是整个页面)。在我们的待办事项清单上是清漆缓存。
根据论坛的说法,我们在解决和解决许多僵局问题(仍然存在一些管理员问题)的地方,可能是较新版本的Magento不会解决这些问题。
我会说120万种产品确实存在问题,如果没有足够的团队和资源,我不建议您这样做,但是如果您有时间,可以使它起作用。
我不知道还有什么其他平台能做得更好。
Magento CE&EE总是可以做到这一点,是的,Magento CE&EE可以(根据经验,而不是理论上使用提供的数据集),尽管显然EE对于索引编制更好。Magmi很好,但是当您为初始负载重新索引时,将会遇到严重的问题。最重要的是,您需要进行维护,如果3%的产品每天更换,则需要使用自动索引更新30,000个产品,您将无法执行每日重新索引。这归结为两件事,即集群托管和启用增量访问的供应商入职,这是企业公司的领域。
人们似乎认为工作是在加载产品时结束的,但是那是艰苦的工作开始的时候。如果您有太多的商店,定价层,那么您的托管服务需要增加一倍,因此,出于所有意图和目的,有95%的人没有机会实施它,有99%的人没有机会对其进行维护。数百万种产品等于中型到大型企业-如果您的顾问没有这种经验,则期望基础架构在中长期内崩溃。
Magmi也非常适合进口大量产品。 http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Magmi_Wiki
目前,我们正在为客户开发,这些客户最初使用Magmi导入了220万个SKU。