现有的电子商务框架与可扩展性的自定义电子商务解决方案

时间:2015-01-29 12:07:42

标签: php woocommerce e-commerce prestashop scalability

我们计划启动一家电子商务初创公司,并正在评估可扩展性选项,以便在(PrestaShop / WooCommerce / OpenCart)或我们自己的自定义电子商务解决方案之间进行选择。

我们已经考虑了以下可扩展性优化技术:

1)静态资源的CDN。

2)一旦流量变高,负载平衡器就会进行水平缩放。

3)用于缓存数据库查询的MemCached或APCU缓存。

4)用于PHP ByteCode缓存的APC缓存。

5)确保所有图像无损压缩。

6)缩小主题的CSS和JS。

7)启用mod_deflate或mod_gzip进行压缩。

8)一旦DB开始成为瓶颈,主从复制。

9)确保禁用不必要的Apache模块。

10)确保禁用不必要的Prestashop模块。

你会推荐什么?定制电子商务解决方案或我们可以优化其中一个框架(PrestaShop,WooCommerce,OpenCart等)?

5 个答案:

答案 0 :(得分:4)

由于其他人对每个解决方案发表了意见,我会给你更全面的想法。

PrestaShop/WooCommerce/OpenCart - 据我所知,这些产品有点成熟。

优点

  • 最大限度地减少了网站建设过程所需的时间和精力。
  • 即插即用功能。
  • 定期更新错误修复程序和新功能。
  • 稳定且经过良好测试的代码。
  • 来自社区的帮助。

缺点

  • 投入时间学习。
  • 很多不必要的代码。
  • 您需要调整即用型框架以满足您的要求,这需要更多时间。
  • 您的网站将与其他网站一样。
  • 额外的第三方集成步骤(可能采用膨胀的jQuery插件或类似形式)。
  • 无法控制代码。
  • 由于您的架构众所周知,因此需要额外的安全保护。
  • 您认为无法编辑核心文件,因为它会在下次更新时使系统崩溃。

own custom e-commerce solution - 使用您自己的电子商务解决方案而不是现有产品有利有弊。

优点

  • 将来会为您节省时间和精力,因为它是根据您的长期需求而构建的。
  • 不需要学习如何使用或自定义它。
  • 经过优化,仅满足您的需求,而非每个人的需求。
  • 只根据您的需要以及您需要的方式。没有不必要的东西,没有臃肿的代码。
  • 完全控制代码及其设计实现。
  • 完全模块化。框架的灵活性仅取决于您。
  • 统一的代码库。您可以最大限度地减少对第三方组件的需求,这意味着减少混合匹配工作。
  • 您网站的独特性是100%保证。
  • 由于您的架构未知,因此没有安全性

缺点

  • 更多的时间和精力。
  • 您需要测试和维护代码。
  • 错误修复,更新和新功能由您构建。

要了解这是否也是一个正确的决定,您需要回答以下问题:

  • 我有能力创造吗?
  • 我有足够的空闲/额外时间吗?
  • 制作它是否合理?

    如果您打算使用PrestaShop / WooCommerce / OpenCart,我建议您查看Magento。希望这能回答你的问题。

另请注意,您考虑的可伸缩性方面的优化技术是 很好,但如果你愿意学习,还有很多事要考虑。我也可以帮助你。

答案 1 :(得分:1)

首先,它的框架不是它的cms。框架:laravel,交响乐等。

你可以用所有的cms完成所有事情。但在我看来最好 - prestashop。

2)很多方法可以优化您的服务器,您的cms,编写正确的模块。 3)在prestashop中你可以使用memcached 4)您可以在服务器上安装APC并在prestashop性能中启用它 5)您可以编辑压缩设置或编写/购买功能强大的模块以获得此类效果 6)在性能(设置)中缩小CSS / JS / HTML 7)服务器设置中的mod_gzip 8)禁用覆盖或非prestashop模块。进行性能分析以检查MS和坏模块。

答案 2 :(得分:1)

如果您正在寻找在任何现有开源购物车之上进行开发,请先仔细查看代码。快速浏览一下,我就可以发表这些评论:

WooCommerce - 如果你已经习惯了wordpress的代码风格,我猜不错,但它会阻止你使用特定的CMS作为你的开发框架。

PrestaShop - 编码标准有点过时(没有PSR兼容性),没有使用命名空间,代码有一些但不全面的API文档。

OpenCart - 代码几乎没有注释,没有使用命名空间,有限的PSR合规性,没有API文档。

您是否认为Magento 2.0处于测试阶段? Magento 1有没有命名空间的限制,因为它依赖于Zend Framework 1,它是命名空间之前的,但是Magento 2.0具有名称空间支持,同时不会将婴儿扔出洗澡水(Zend 1类已被保存并包装在命名空间类中)。 / p>

如果您正在寻找极端的灵活性和以自己的方式编写代码的能力,那么在现有的PHP框架(Laravel,Yii2等)之上开始,最好从头开始。在性能方面,您不太可能获得太多收益 - 您可能会像在其他人的代码中找到的那样,在构建自己的代码时犯下同样多的性能错误。不过这将是很多工作! eBay以1.8亿美元的价格收购了Magento,但这并不是因为它在一两个星期内遭到了几个人的打击 - 所有这些系统都有一些认真的编程工作。

答案 3 :(得分:1)

我的推荐是PrestaShop:

1)它有CDN支持

2)没有“特殊”支持(它支持主/从DB服务器)

3& 4)MemCached,APC&了XCache

5)默认情况下不支持,但有Smush.it付费模块

6)完全支持 - CCC即组合(所有.js在一个文件中等),压缩(缩小js,css,html& Cache - 缓存文件夹中的组合文件,基于时间戳的到期时间)

7)集成mod_deflate,你总是可以在.htaccess文件中启用mod_gzip

8)你可以配置master(这是默认的)&从属服务器,核心PrestaShop查询支持主/从(即一些查询传递给从属,他们已经指定了哪个)。大多数第三方模块都不使用该功能。

9& 10)这些是管理员/开发人员必须注意的事情。

自定义解决方案是最糟糕的情况,除非您有1年以上的资金投入。我不喜欢Magento& OpenCart这就是5年前我选择PrestaShop进行电子商务开发的原因。 Magento有不必要的复杂类树,当然开发人员通常会收取更多费用,因为他们有很多工作:),OpenCart是一种低于其他人的方式 - 在代码中没有一个注释只是不专业,数据库表上根本没有索引,它甚至不使用模板引擎。关于“WooCommerce” - 使用CMS系统进行电子商务并不严重。

我的建议是检查PrestaShop - 获取最新版本,测试它,在addons.prestashop.com(官方市场)查看您需要的模块。此外,还有一个新发布的“PrestaShop Cloud” - 您也可以查看它。

答案 4 :(得分:1)

从头开始构建自己的自定义电子商务解决方案对于初创公司来说可能是一场真正的噩梦,通常应该避免。

通常几个月后发生的事情是,创业公司最终必须维护代码,修复错误并在内部创建新功能。所有这些都会增加并耗费时间,可以更好地花在创业的其他更重要的方面。没有必要重新发明轮子了!

最终,初创公司决定咬掉子弹并废弃他们为了现成的解决方案而建造了几个月的东西。然后他们选择像Prestashop / WooCommerce / OpenCart等下载的平台,他们认为他们可以自定义。这需要时间来学习,实施和定制您的特定需求;带你离开其他更重要的活动。

如果您正在寻找一种轻量级且可扩展的解决方案,该解决方案集成快,维护成本低,没有臃肿的代码库,并且可以超级自定义,您可以查看更为现代的方法,如eCommerce APIs

这些服务通常已经过大幅优化,以提高性能。它们通常在多个地区全球可用,负载平衡,提供资产CDN,一些允许自定义数据结构等...

这种方法的优点在于您可以选择需要集成的组件,而无需禁用模块。您还可以决定将来需要更改或添加到前端技术堆栈,甚至选择不同的编程语言。

您甚至可以构建与这些API通信的静态站点,并在Amazon S3存储桶中托管构成您站点的一些文件,每月只需几美分!?