本文概述
- Magento是领先的电子商务平台, 大约有30%的市场。
- 缓存可能是Magento的问题。
- 替代方法是WordPress WooCommerce。
- 哪种解决方案适合你?这取决于。
- 不要害怕Magento。
但是, 你知道自己正在从事什么吗?
Magento是一个功能强大的程序。我读过的一个博主将其与Leatherman进行了比较, 因为它具有适用于所有用途的工具。我更喜欢把它想象成人们用来购买的大型通用遥控器之一, 它似乎有一百个可编程按钮, 可以控制家里的每个媒体设备。
【如果你对电子商务很认真,请使用Magento】当且仅当你愿意花费时间和金钱来实现它时, 它几乎可以做任何事情。 Magento很棒, 的确如此, 但也很复杂。你是否愿意花费时间来教育你的客户(或者他们足够聪明地自学)如何使用Magento强大的管理面板?如果没有, 你可能要看另一种解决方案。
Magento是一个专家系统。与各种Adobe产品(例如Photoshop和Illustrator)非常相似, 它奖励专业知识, 但要付出陡峭的学习曲线。最初可能很烦人, 但只需少量工作, 它便成为有效的工具。
对于你的企业而言, 这意味着更昂贵的托管(每月在AWS托管上花费300美元会吓到你吗?), 更高的开发成本和更多的前期时间来理解管理功能, 但是一旦克服了这些障碍, 你便拥有了一个平台可以无限扩展和扩展。
由于Magento的灵活性和扩展能力, 你的业务不会很快增长, 如果这样做, 你将做很多业务, 你将足够成功, 可以应对电子商务发展的下一阶段。
Magento是领先的电子商务平台, 大约有30%的市场。 当你执行以下操作时, Magento会出色(实际上, 除了定制的Web应用程序之外, 它基本上是唯一的选择):
- 拥有大量复杂的库存。
- 需要对复杂的产品类型进行建模。
- 具有相对静态的内容。
- 想要从单个CMS后端运行多个商店。
- 需要一个功能强大且可扩展的管理面板。
- Magento庞大的用户基础和商业支持意味着它正在积极开发和保护。安全更新会定期发布并及时发布。
- Magento还支持各种各样的支付网关。
- Magento扩展已经开发了从拍卖到数据导入和导出的所有内容。
- Magento是SEO友好的。
文章图片
Magento是开源的, 专门为电子商务而设计。这是一个宽松的基于Zend框架的PHP框架, 并使用MySQL数据库进行存储。其模块模板系统具有分层的文件夹结构, 使Magento开发人员和设计人员可以覆盖核心文件和主题文件, 而无需对其进行编辑, 也不必中断后续更新。
它的开源历史既是福也是祸。
没有它, Magento生态系统可能不会存在, 但它也导致了一个庞大而复杂的代码库, 这些代码库有时记录不清, 并且常常具有令人困惑的函数名称。有时, 感觉到Magento中的所有内容都是规则的例外, 并且通常必须对许多不同的文件进行修改才能实现单个功能更改。
这部分是电子商务网站开发服务昂贵的原因。专家投入了时间, 参加了课堂, 逐步通过了代码, 获得了证书-难以理解和掌握复杂的野兽, 真是该死的努力-因此, 他们应该并且应该为他们的时间和专业知识得到公平的补偿。
缓存可能是Magento的问题。 Magento在专业的托管解决方案上进行了正确配置, 可高度扩展, 并且运行速度极快。即使在最简单的页面上, 在功能不足的托管服务提供商上配置不佳也需要花费一些时间。缓存就是答案:PHP操作码缓存, 数据库后端缓存和全页缓存。
现在, 操作码缓存已成为PHP的标准配置, 但你可能需要更新php.ini文件进行配置。 Redis后端缓存也是必须的。如果要获得绝对最佳的性能, 则强烈建议使用全页缓存(例如Varnish)。
这些要求意味着你需要一个支持这些功能的托管解决方案, 并且需要一个知道如何正确配置它们的Magento开发团队。 Magento不能在Bluehost和GoDaddy等折扣托管服务提供商上运行良好。
你需要准备使用Amazon EC2或Digital Ocean实例(或来自已经配置了这些功能的Magento特定托管托管提供商之一的实例)。
所有这些缓存是什么?
一般而言, 缓存是一种短期存储缓冲区, 用于存储从磁盘中获取或计算出的数据。
这是计算机的一种说法:我遇到了获取或生成数据的所有麻烦, 我最好把它保留一会儿, 以防其他人需要它。
由于高速缓存通常位于易失性内存中, 因此从高速缓存中检索数据比重新计算或从磁盘读取数据快几个数量级。
上面提到的不同缓存在框架中的不同抽象级别上工作。
操作码缓存在PHP代码编译级别工作, 并保存已编译的PHP代码块以供以后执行。 Magento的后端缓存是对文件缓存系统的改进。要显示页面, Magento必须仔细检查数百个PHP和XML文件。太慢了
通常, 页面内容在两次请求之间不会改变。因此, Magento呈现页面时, 会将结果保存在文件系统缓存中。
这比重新呈现页面更快。但是磁盘读取仍然相对较慢, 因此使用Redis作为内存中缓存来存储这些呈现的块和页面要快得多(它也可以用于存储会话数据)。
我提到的第三个缓存Varnish是全页缓存。
它与Magento完全分开工作(通常安装在单独的服务器上)。这是一个缓存的HTTP反向代理:它位于你的网站与世界之间, 可保存整个页面并将其与请求URL关联。
缓存听起来不错, 对吗?确实如此, 但同时也增加了相当大的复杂性。
考虑一下。现在, 你已将Redis数据库添加到服务器;你已更新并维护了配置文件;并且你可能已经添加了另一台服务器来托管你的Varnish全页缓存。
此外, 页面更改内容时会发生什么?缓存如何知道不发送缓存结果?哦哦
显然有解决方案, 称为缓存失效, 但确实增加了另一层思想, 复杂性和潜在问题。
最重要的是, 如果你的开发团队是真正的专业人士, 除了生产环境以及GitHub上的Git存储库以进行源代码控制之外, 他们还将坚持使用测试环境(顺便说一句, 不使用源代码管理, 请寻找其他开发人员!
替代方法是WordPress WooCommerce。 将Magento与它的主要替代方案之一进行比较会很有帮助:安装了WooCommerce插件的WordPress。
我最近在丹佛的一家公司工作, 该公司拥有出色的Magento网站和托管解决方案。他们有一个用于生产服务器的Amazon EC2实例, 以及一个用于测试环境的实例。我被引入来改善性能并帮助他们实施网站的全面重新设计。
我使用Redis后端缓存对其进行设置, 该缓存几乎使页面立即加载, 并与设计师合作将其Photoshop样机转变为实时网站。
经过几周的工作, 该网站看起来很棒。但是, 当我继续与他们合作时, 我开始意识到托管成本和开发成本与他们所能承受的不符。
随着品牌发展, 他们希望对网站进行更多更改, 并集成许多自定义模块。他们付了我数千美元来帮助设计和重新设计网站。此外, 当时, 他们只有大约六种产品。最重要的是, 他们问我有关创建动态内容和在网站上建立博客的问题。
考虑到他们的需求, 公司所处的阶段以及他们为托管和开发支付的费用, 我们认为Magento不适合他们。
经过大量研究, 他们选择了一个新的WordPress / WooCommerce网站。
我基本上是自找工作, 但我的首要任务是最适合客户。事实是, 如果客户不知道使用Magento有什么用, 真正不需要它的功能, 也没有支持它的预算, 那么对于任何参与其中的人来说都不会很有趣。
如果你的企业只有很少的产品适合标准商业产品模型, 那么WordPress / WooCommerce可能是一个不错的选择。
WordPress开发人员(通常)比Magento开发人员便宜。 WordPress社区正在蓬勃发展, 并且该平台文档完善, 具有完善的代码库。该解决方案体积小, 速度快, 几乎可以在任何托管服务提供商(包括所有各种折扣提供商)上运行。
如果这种组合对你有效, 则将为你节省开发和托管成本。如果你想自己做自己的网站, 而无需支付外部开发人员的费用, 则应该避免使用Magento, 并且可能要考虑使用WordPress / WooCommerce。
你可能要研究WordPress / WooCommerce的另一个原因是, 如果你想利用WordPress的博客功能。 Magento可以让客户创建和更新动态内容, 但是它远没有WordPress那样精致和容易。
就是说, WordPress / WooCommerce几乎没有Magento能够配置产品和折扣并管理大量库存(不是它不能做到这一点-它具有强大的功能并且不断增长-但这正是Magento擅长的领域)。
当你销售的产品数量超过几百种时, 或者当你开始希望创建具有自定义附加属性的复杂的分组产品时, WordPress / WooCommerce将开始变得笨拙。或者, 当你只想对某些客户群安排折扣和回扣时, 并且你想交叉销售和追加销售并有礼品选择时;等等
哪种解决方案适合你?这取决于。 正如所有技术一样, Magento具有许多明显的优点, 但也有其缺点。
Magento的主要优势包括:
- 开源的
- 专为电子商务而设计
- 优惠制度
- 支付网关集成非常简单
- 灵活且可定制
- 非常强大的管理面板
- 高度可扩展
- 一旦优化(消失, 数据库优化, redis缓存, 操作码缓存), Magento就会非常快
- 多租户支持
- SEO友好
- 庞大的用户群, 积极发展, 安全
- 开源的历史使它拥有了一个庞大的, 泛滥的代码库, 它可以执行所有操作, 并为定制提供了一切机会
- 不如其他平台那样有据可查
- 开发是昂贵的。一方面是因为它很困难, 另一方面是因为它是一种流行的系统
- 重要功能通常仅在质量不同的商业模块中可用, 甚至可能需要第三方集成支持
- 昂贵的服务器要求
不要害怕Magento。 我吓到你了吗?我希望不是。
以下听起来像你吗?
你拥有一个拥有2, 000种产品的繁荣商店, 并且需要能够创建具有十二种选择的复杂的可配置产品并将这些产品与其他产品捆绑在一起的能力。
你还希望能够轻松地安排销售和促销活动, 并向客户发放折扣代码。你有预算和动力去投资真正的专业解决方案, 该解决方案是开源的, 对SEO友好的, 高度可扩展的, 并且经过优化和适当地托管后相当快。
如果是这样, 请看一下Magento。如果你愿意花费时间和金钱, 那么这将是一生真正的专业电子商务解决方案。
推荐阅读
- 使用普通的旧Ruby对象构建流畅的Rails组件
- HTTP请求测试(开发人员的生存工具)
- 使用Redux在JavaScript中保持不变
- 建立自助管理区的艺术
- 关于DateTime操作的权威指南
- 开始使用Angular 2(从1.5升级)
- npm指南(Node.js程序包管理器)
- Android Facebook Graph API
- 在未找到android studio照片中将图像上传到网站