作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
安德鲁·休斯的头像

安德鲁•休斯

Andrew在全栈、集成和移动开发方面有超过15年的经验. 他还写了一个定制的文字处理器,然后用它写了两部小说.

以前在

德克萨斯大学
分享

你可能听说过 线上购物 如果你认真对待你的业务,你使用的电子商务平台是——你认真对待你的业务——所以你决定使用线上购物.

但你知道你给自己带来了什么吗?

线上购物是一个非常强大的程序. 我读到的一位博主把它比作Leatherman,因为它有一个各种用途的工具. 我更喜欢把它想象成人们过去买的那种大型通用遥控器,它似乎有100个可编程按钮,可以控制家里的每一台媒体设备.

它几乎可以做任何事情,如果, 只有当, 你愿意投入时间和金钱来实现它. 线上购物很棒,真的很棒,但它也很复杂. 你愿意花时间来教育你的客户(或者他们足够聪明,可以自学)如何使用线上购物令人难以置信的强大管理面板吗? 如果没有,您可能需要考虑另一种解决方案.

线上购物是一个专家系统. 就像各种Adobe产品一样, 例如Photoshop和Illustrator, 它奖励专业知识, 但代价是一个陡峭的学习曲线. 它一开始可能会让人筋疲力尽,但稍加努力,它就会成为一种有力的工具.

为了你的生意, 这意味着更昂贵的托管(每月花费300美元在AWS托管上吓到你了吗??), 更高的开发成本, 以及更多的前期工作时间来理解管理功能, 但是一旦克服了这些障碍, 你有一个可以无限扩展和伸缩的平台.

因为线上购物的灵活性和扩展能力, 你的业务不会很快超过线上购物, 如果是这样的话, 你会做很多生意的, 你就能成功应对电子商务发展的下一个阶段.

线上购物是领先的电子商务平台,占有大约30%的市场份额.

线上购物擅长(和, 事实上, 可能是除了定制的web应用程序之外的唯一选择),当你:

  • 拥有庞大而复杂的库存.
  • 需要为复杂的产品类型建模.
  • 拥有相对静态的内容.
  • 希望从一个CMS后端运行多个商店.
  • 需要一个超级强大和可扩展的管理面板.

其他好处还包括:

  • 线上购物庞大的用户基础和商业支持意味着它是积极开发和安全的. 定期及时发布安全更新.
  • 线上购物还支持各种各样的支付网关.
  • 从拍卖到数据导入和导出,线上购物扩展已经被开发出来.
  • 线上购物是 搜索引擎优化的材料.

线上购物:专家电子商务

线上购物是开源的,是专门为电子商务而设计的. 它是一个PHP框架 Zend框架 并使用MySQL数据库进行存储. 它的模块模板系统具有分层文件夹结构,这允许 线上购物开发人员 设计人员可以覆盖核心和主题文件,而无需编辑它们,也不会不必要地破坏后续更新.

它的开源历史既是福也是祸.

如果没有它,线上购物生态系统可能就不会存在, 但它也导致了巨大的, 复杂的代码库,有时文档记录很差,而且函数的命名常常令人困惑. 有时感觉线上购物中的一切都是规则的例外, 而且,为了实现单个功能更改,通常必须在许多不同的文件中进行修改.

这就是电子商务网站开发服务昂贵的部分原因. 专家们已经投入了时间, 参加课程, 逐步完成代码, 获得了证书——非常努力地去理解和掌握这头复杂的野兽——就像这样, 他们的时间和专业知识理应得到公平的补偿.

缓存可能是线上购物的一个问题.

在专业的托管解决方案上正确配置, 线上购物是高度可扩展的,可以运行得非常快. 在功能不足的托管提供商上配置不当,即使是最简单的页面也需要很长时间才能加载. 缓存就是答案:PHP操作码缓存、数据库后端缓存和全页缓存.

操作码缓存现在几乎是PHP的标准,但您可能需要更新 php.ini 文件来配置它. Redis后端缓存也是必须的. 如果你想要绝对最好的表现, 全页缓存, 像清漆, 强烈推荐.

这些需求意味着您需要一个支持这些特性的托管解决方案, 你需要一个 线上购物的发展 知道如何正确配置它们的团队. 线上购物不能很好地运行在折扣主机提供商,如Bluehost和 GoDaddy.

您需要购买一个Amazon EC2或Digital Ocean实例(或者从一个已经配置了这些特性的特定于线上购物的托管托管提供商处购买一个实例)。.

还有这些藏物是怎么回事?

一般来说, 缓存是从磁盘获取或计算的数据的短期存储缓冲区.

这是计算机在说:我经历了获取或生成这些数据的所有麻烦, 我还是把它留一段时间吧,以防有人需要它.

因为缓存通常在易失性内存中, 从缓存中检索数据要比从磁盘中重新计算或读取数据快几个数量级.

上面提到的不同缓存在框架的不同抽象级别上工作.

操作码缓存在PHP代码编译级别工作,并保存已编译的PHP代码块以供以后执行. 线上购物的后端缓存是对文件缓存系统的改进. 要显示一个页面,线上购物必须仔细检查可能有数百个PHP和XML文件. 这是缓慢的.

通常页面内容在请求之间不会改变. 因此,当线上购物呈现页面时,它将结果保存在文件系统缓存中.

这比重新呈现页面要快. 但是磁盘读取仍然相对较慢, 所以使用Redis作为内存缓存来存储这些渲染块和页面要快得多(它也可以用来存储会话数据)。.

我提到的第三个缓存,Varnish,是一个全页缓存.

它完全独立于线上购物(通常安装在单独的服务器上)。. 它是一个缓存HTTP反向代理:它位于你的网站和世界之间, 保存整个页面并将它们与请求url相关联.

缓存听起来很棒,对吧? 是的,但它也增加了显著的复杂性.

考虑一下这个. 现在, you’ve added a Redis database to your server; you’ve updated and maintained your configuration files; and you’ve possibly added another server to host your Varnish full-page cache.

此外,当页面更改内容时会发生什么? 缓存如何知道不发送缓存结果? 哦哦.

显然有解决办法, 称为缓存失效, 但它确实增加了另一层思想, 复杂性和潜在问题.

最重要的是, 如果你的开发团队是真正专业的, 除了生产环境之外,他们还要坚持一个测试环境,以及在GitHub上的Git存储库,以进行源代码控制(顺便说一下), 如果他们没有使用源代码控制, 寻找其他开发者!).

另一种选择是WordPress WooCommerce.

将线上购物与其主要替代品之一进行比较是很有帮助的: WordPress 与WooCommerce插件安装.

我最近与丹佛的一家公司合作,他们有一个很棒的线上购物网站和托管解决方案. 他们有一个用于生产服务器的Amazon EC2实例,以及一个用于测试环境的实例. 我的任务是提高网站的性能,帮助他们对网站进行彻底的重新设计.

我用Redis后端缓存设置了它们, 这使得页面几乎是瞬间加载的, 并与设计师合作,将他的ps模型变成了一个实时网站.

经过几周的工作,网站看起来很棒. 然而, 我继续和他们一起工作, 我开始意识到托管成本和开发成本超出了他们的承受能力.

随着品牌的发展, 他们想对网站做更多的改动, 同时还集成了许多定制模块. 他们付给我几千美元,让我帮忙设计和重新设计网站. 此外,当时他们只有大约六种产品. 最重要的是,他们问我关于创建动态内容和在网站上建立博客的问题.

看看他们的需求, 公司所处的阶段, 以及他们为托管和开发支付了多少钱, 我们认为线上购物并不适合他们.

经过大量的研究,他们选择了一个新的WordPress/WooCommerce网站.

我基本上是说服自己放弃了一份工作, but my priority was what was best for my client; and the truth is, 如果客户不知道线上购物会给他们带来什么, 实际上并不需要它的特性, 而且没有足够的预算来支持它, 这对任何参与其中的人来说都不会很有趣.

如果你的企业中符合标准商业产品模型的产品相对较少, WordPress/WooCommerce可能是一个不错的选择.

WordPress开发人员(通常)比线上购物开发人员便宜. WordPress社区正在蓬勃发展, 而且这个平台有很好的文档和完善的代码库. 这个解决方案很小, 快, 可以运行在几乎所有的主机提供商上, 包括各种折扣供应商.

如果这种组合适合您,那么它将为您节省开发和托管成本. 如果你想自己做网站, 无需向外部开发者付费, 你应该避免使用线上购物,考虑使用WordPress/WooCommerce.

考虑WordPress/WooCommerce的另一个原因是,如果你想利用WordPress的博客功能. 线上购物允许客户端创建和更新动态内容, 但它远没有WordPress那么精致和简单.

也就是说, WordPress/WooCommerce在配置产品、折扣和管理大量库存方面远不及线上购物(并不是说它做不到——它有很棒的功能,而且在不断发展——但这正是线上购物擅长的地方)。.

当你销售的产品数量超过几百个时,WordPress/WooCommerce就会开始感到笨拙, 或者当你想要创造复合体的时候, grouped products with custom attached attributes; or when you want to schedule discounts and give out rebates, 但只针对特定的客户群体, and you want to cross-sell and up-sell and have a gift option; etc.

哪种解决方案适合您? 这取决于.

所有技术都是如此, 线上购物有许多明显的优势, 但它也有缺点.

线上购物的主要优点包括:

  • 开源
  • 专为电子商务设计
  • 强大的折扣系统
  • 支付网关集成很容易
  • 灵活和可定制
  • 非常强大的管理面板
  • 高度可伸缩
  • 一旦优化(消失,数据库优化,redis缓存,操作码缓存),线上购物可以相当快
  • 多租户支持
  • seo友好
  • 庞大的用户基础,积极开发,安全

已知问题包括:

  • 开源的历史给它留下了巨大的, 过度增长的代码库可以做任何事情, 让每一扇门都为定制敞开
  • 不像其他平台那样文档完备
  • 开发是昂贵的. 一方面是因为它很难,另一方面是因为它是一个受欢迎的系统
  • 重要的特性通常只在质量不一的商业模块中可用,甚至可能需要第三方集成支持
  • 昂贵的服务器需求

在决定线上购物是否适合您或您的客户的解决方案时,需要仔细权衡所有这些因素, 如果可能的话,在选择合作伙伴之前 电子商务网站开发服务.

不要害怕线上购物.

我把你吓走了吗? 我希望不是.

下面的情况听起来像你吗?

你有一家生意兴隆的商店,需要能够创建具有十几种选项的复杂可配置产品,并将这些产品与其他产品捆绑成组.

您还希望能够轻松安排销售和促销活动,并向客户分发折扣代码. 你有预算和动力去投资一个真正专业的开源解决方案, seo友好, 高度可伸缩, 并且非常快,一旦优化和适当托管.

如果是这样,请看看线上购物. 如果你愿意投入时间和金钱, 这是一个真正专业的电子商务解决方案,将持续一生.

聘请Toptal这方面的专家.
现在雇佣
安德鲁·休斯的头像
安德鲁•休斯

位于 安克雷奇,AK,美国

成员自 2015年4月6日

作者简介

Andrew在全栈、集成和移动开发方面有超过15年的经验. 他还写了一个定制的文字处理器,然后用它写了两部小说.

Toptal作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.

以前在

德克萨斯大学

世界级的文章,每周发一次.

订阅意味着同意我们的 隐私政策

世界级的文章,每周发一次.

订阅意味着同意我们的 隐私政策

Toptal开发者

加入总冠军® 社区.