可组合商务不再是你在会议上听到的流行词汇。在2026年,它是任何年收入超过1000万美元的电商运营的主导架构模式。但"可组合"已经成为那些词汇之一,意思是任何向你销售东西的人想让它意味着什么。所以让我们打破这种情况,谈论构建这些东西时真正重要的是什么。

目录

2026年可组合商务架构:构建者指南

2026年可组合商务真正的含义

可组合商务是从独立的、最佳品种的服务中组合你的电商堆栈的做法,而不是依赖单一的庞大平台。每个服务拥有一个特定的业务能力——购物车管理、产品信息、订单管理、搜索、支付——并通过API与其他服务通信。

这个想法并不新鲜。面向服务的架构自2000年代初期就已存在。现在的不同之处在于生态系统已经成熟到足以让你实际上可以在不从头构建所有东西的情况下做到这一点。在2024年,可能有15-20%的企业电商是真正可组合的。到2026年初,Gartner估计这个数字已经超过35%,而且在加速。

但这里是我想让你理解的东西:可组合商务是一种架构模式,不是产品。没有单一的供应商给你一个可组合架构。你构建一个。供应商给你组件。

单体应用并未消亡

在我们继续之前,我需要说一些不受欢迎的事情:单体对很多企业来说是可以的。如果你用Shopify Plus商店做了200万美元/年的业务,你不需要可组合商务。你需要销售更多东西。可组合架构的复杂性税只有在以下情况下才能收回成本:

  • 你跨多个市场运营,有不同的监管要求
  • 你的业务逻辑有真正独特的需求,是平台无法满足的
  • 你需要独立地将更改部署到堆栈的不同部分
  • 你正在扩展到供应商锁定成为财务风险的程度

如果这些都不适用,关闭这篇文章,去优化你的转化漏斗。

MACH原则:仍然相关还是只是营销?

MACH代表微服务、API优先、云原生和无头。MACH联盟成立于2020年,一直在推动这些原则作为现代商务架构的基础。让我们在2026年诚实地评估每一个。

微服务:原则很合理——将你的系统分解为独立可部署的服务。但行业已经从2020-2022年"每个功能都是一个微服务"的疯狂中改正。实际上,大多数成功的可组合堆栈使用我称之为"适当大小的服务"。你的购物车服务不需要是十二个微服务。它需要是一个管理好的、做购物车事情的服务。

API优先:这个已经经历了时间考验。每个值得考虑的供应商都公开了完整的API。2026年的真正问题不是某些东西是否是API优先,而是API是否设计良好、版本一致,是否没有"实际上只是REST加额外步骤的graphQL端点"问题。

云原生:基本要求。我想不出任何一个不是云原生的认真商务供应商。这个原则不是区分因素,而是一个复选框。

无头:仍然绝对相关,也是直接影响你前端团队最多的原则。将表现层与商务引擎解耦是让你能够用Next.jsAstro或任何实际符合你性能需求的框架构建的原因。

MACH联盟本身已经发展。在2025年,他们引入了关于互操作性标准的治理,这是早就应该做的。认证仍然作为一个信号很重要,但我看过一些非MACH认证的工具在实践中比一些认证的工具更具可组合性。

供应商格局:谁擅长做什么

让我们谈论具体情况。这是主要玩家在2026年初的位置:

供应商 核心优势 定价模式 最适合 注意事项
commercetools 商务引擎(购物车、结账、产品目录) 基于使用量,增长层级起价约$30K/年 企业多市场 API表面的复杂性;你需要强大的开发人员
Fabric 模块化商务平台(OMS、PIM、商务) 基于模块,根据模块约$25K-$80K/年 中端市场到企业想要灵活性 较新的生态;比commercetools的集成少
Commerce Layer 多市场的API优先商务 基于使用量,增长层级起价约$1,200/月 国际商务、多品牌 较少自以为是=你需要做更多架构决策
Medusa 开源商务引擎 免费(自托管),2026年云定价待定 想要完全控制且有开发能力的团队 你拥有基础设施和扩展
Nacelle 商务数据编排/无头中间件 起价约$2,000/月 已在Shopify上想要无头前端的团队 它是现有后端之上的一个层,不是替代品
Elastic Path 企业商务引擎 自定义定价,通常$50K+/年 有复杂产品模型的大型企业 成本;这是高级层级定价

2026年的commercetools

commercetools仍然是大规模可组合实现的默认选择。他们的可组合商务产品已经成熟了许多。他们在2025年底推出的Foundry层级让中端市场公司更容易接受,定价从约$30K/年开始,而不是之前$100K+的企业层级。

我喜欢的是:他们的事件驱动架构与Subscriptions对于构建反应工作流非常好。API表面很大——可能太大了,老实说——但这意味着你很少遇到墙。

让我感到沮丧的是:学习曲线很陡。commercetools给你乐高砖块,不是预制模型。你需要经验丰富的开发人员,他们理解商务领域建模。预算比你的销售代表告诉你的实现时间多2-3倍。

Medusa:开源竞争者

Medusa已经变得真正有趣。他们的v2重写(现在稳定)移到了一个模块化架构,让你只使用你需要的部分。它是基于Node.js的,这意味着你的JavaScript团队实际上可以在上面工作,而不需要学习新语言。

对某些团队来说,经济学很引人注目:在配置良好的云设置上自托管Medusa的成本可以比相同交易量的commercetools实现低60-80%。权衡是明显的——你负责正常运行时间、扩展和安全补丁。

// Medusa v2模块模式 - 扩展产品模块
import { Module } from "@medusajs/framework/utils"
import CustomProductService from "./services/custom-product"

export default Module("customProduct", {
  service: CustomProductService,
})

Medusa的模块系统很干净,遵循如果你使用过NestJS或类似框架会感到熟悉的模式。

Nacelle:编排方案

Nacelle占据了一个有趣的利基。它不是商务引擎——它是一个数据编排层,位于你现有的商务后端(Shopify、BigCommerce等)和你的无头前端之间。它预先索引你的商务数据,并通过为前端消费优化的GraphQL API提供。

如果你是一个Shopify Plus商人想要一个无头前端而不需要撕掉你的整个后端,Nacelle很有意义。但要理解你购买的是什么:它是一个缓存和规范化层,不是你的商务逻辑的替代品。

2026年可组合商务架构:构建者指南 - 架构

编排层:最难但没人谈论的部分

这是大多数可组合商务项目出问题的地方。你已经选择了你的商务引擎、你的PIM、你的OMS、你的搜索提供商、你的CMS。现在你需要他们彼此交谈。这是编排层,这是你将做出的最单一的架构上显著的决策。

编排层负责:

  • 从多个服务聚合数据到你的前端需要的形状
  • 路由跨越多个服务的业务逻辑(例如,"当下达订单时,在OMS中递减库存并触发履行工作流")
  • 处理当一个服务关闭但其他服务没有时的故障场景
  • 管理服务边界之间的身份验证和授权

我见过有效的模式

前端后端(BFF):构建一个薄API层,位于你的前端和你的商务服务之间。这个BFF聚合调用、处理缓存,并为每个前端(网络、移动、POS)的特定需求塑造数据。我们通常用Node.js或Go构建这些,部署为无服务器函数或轻量级容器。

// BFF路由,从多个源聚合产品数据
export async function GET(request: Request) {
  const productId = getProductId(request)
  
  const [commerceProduct, pimEnrichment, inventory, reviews] = 
    await Promise.allSettled([
      commercetools.getProduct(productId),
      akeneo.getProductData(productId),
      oms.getInventoryLevels(productId),
      reviews.getProductReviews(productId),
    ])
  
  // 优雅降级:即使评论关闭,产品页面也能工作
  return Response.json({
    ...resolveSettled(commerceProduct),
    enrichment: resolveSettled(pimEnrichment, {}),
    inventory: resolveSettled(inventory, { available: true }),
    reviews: resolveSettled(reviews, []),
  })
}

注意Promise.allSettled模式。这很关键。在可组合架构中,你不能让一个服务的故障级联到整个页面。如果你的评论服务度过了糟糕的一天,产品页面仍然应该渲染。

事件驱动编排:对于异步工作流,使用事件总线(AWS EventBridge、Google Pub/Sub或自托管解决方案如Kafka)。当下达订单时,发布一个order.created事件。你的OMS、你的电子邮件服务、你的分析管道和你的库存系统都独立地订阅该事件。

什么不起作用:将所有编排逻辑放在你的前端中。我见过团队尝试让他们的Next.js应用在每个页面加载时调用六个不同的API。性能很糟糕,错误处理是一场噩梦,你最终会有业务逻辑分散在React组件中。别这样做。

我们在Social Animal定期为可组合商务堆栈构建编排层。如果你正在评估这种架构,我们应该谈话

关注点分离:PIM、OMS和商务核心

可组合商务中最大的架构决策之一是弄清楚哪个系统是哪个数据的"单一真相来源"。搞错这一点,你将花费数月调试数据同步问题。

产品信息管理(PIM)

你的PIM(Akeneo、Salsify、Pimcore或Fabric中的PIM模块)应该拥有:

  • 丰富的产品描述、营销文案
  • 产品分类法和分类
  • 数字资产(图像、视频、文档)
  • 产品关系(交叉销售、向上销售、捆绑)
  • 多市场的本地化内容

你的商务引擎应该拥有:

  • 定价和货币逻辑
  • 库存可用性
  • 购物车和结账行为
  • 影响定价的产品变体配置

我最常看到的错误:尝试让PIM拥有定价,或尝试让商务引擎拥有丰富的内容。这些系统针对不同的东西进行了优化。尊重这一点。

订单管理系统(OMS)

OMS问题变得更复杂。你是使用商务引擎的内置订单管理,还是引入一个专业的OMS,如Fluent Commerce、Manhattan Associates或Fabric OMS模块?

我的经验法则:如果你有超过两个履行地点,或者你需要复杂的订单路由逻辑(例如,分割发货、门店履行、直销),你需要一个专业的OMS。商务引擎(如commercetools或Shopify)内置的订单管理是为简单的履行流程设计的。

场景 建议
单一仓库,仅国内 使用商务引擎的内置OMS
2-5个履行地点 评估专业OMS;可能仍然使用内置
5个以上地点,混合履行(仓库+门店+直销) 几乎肯定需要专业OMS
多市场,不同地区有不同的履行合作伙伴 专业OMS,毫无疑问

CMS部分

你的无头CMS处理编辑内容、登录页面、促销横幅和内容驱动的商务体验。保持商务逻辑不在你的CMS中。保持编辑内容不在你的商务引擎中。CMS和商务引擎应该只共享一个产品标识符,让它们互相引用。

构建vs购买:做出真正决策的框架

每个可组合商务项目都涉及数十个构建与购买决策。这是我使用的框架:

购买当:

  • 能力是充分理解的和商品化的(支付、税收计算、电子邮件传递)
  • 涉及监管合规性(支付的PCI-DSS、税收司法规则)
  • 供应商的定价随你的收入线性扩展(你不为不使用的容量付费)
  • 上市时间比定制更重要

构建当:

  • 该能力是你业务的真正竞争优势
  • 没有供应商在不进行广泛解决方法的情况下处理你的特定业务逻辑
  • 供应商的长期成本超过构建和维护的成本
  • 你有工程人才来维护它(对这一个要诚实)

编排层:几乎总是构建。这是你的业务逻辑。从供应商购买编排层意味着你正在将你的核心业务流程耦合到他们的抽象。

搜索:购买。Algolia、Typesense或Elasticsearch-as-a-service。构建生产质量的搜索是一个多年的投资。Algolia的定价从2026年的电商层级每1,000个搜索请求约$1开始。

支付:购买,显然。Stripe、Adyen或类似产品。永远不要构建支付处理。

自定义定价逻辑:通常构建。如果你的定价涉及复杂的规则(合同定价、批量层级、具有监管约束的地理定价),你可能需要一个自定义定价服务,它位于你的前端和你的商务引擎之间。

可组合世界中的前端架构

前端是可组合商务要么兑现其承诺要么失败的地方。你的前端团队需要从多个API消费数据并呈现快速、可访问的页面。

Next.js在2026年仍然是可组合商务前端的主导框架。App Router与服务器组件和Next.js 15中的缓存原语相结合,很好地映射到可组合模式。你可以在服务器组件级别从你的BFF获取,在数据到达时流式传输,并保持客户端包很小。

我们还在内容密集型商务网站上使用Astro取得了很好的成果。Astro的岛屿架构让你将整个产品目录呈现为静态HTML,并仅为交互部分(添加到购物车按钮、动态定价)进行水合。对于一个拥有50,000+SKU的客户,与他们之前的Next.js实现相比,我们看到最大内容绘制的40%改进。

前端的关键架构模式:

// Next.js 15服务器组件从BFF获取
async function ProductPage({ params }: { params: { slug: string } }) {
  const product = await fetch(
    `${process.env.BFF_URL}/products/${params.slug}`,
    { next: { revalidate: 60 } } // ISR:每60秒重新验证一次
  ).then(r => r.json())

  return (
    <main>
      <ProductHero product={product} />
      <Suspense fallback={<ReviewsSkeleton />}>
        <ProductReviews productId={product.id} />
      </Suspense>
      <Suspense fallback={<RecommendationsSkeleton />}>
        <Recommendations productId={product.id} />
      </Suspense>
    </main>
  )
}

注意Suspense边界。每个部分可以独立加载。如果建议需要800毫秒来计算,页面的其余部分已经是交互式的。

如果你正在评估基于Next.js的可组合商务前端,实现细节非常重要。缓存失效策略、ISR时机和错误边界设计将决定你的网站是感觉快速还是令人沮丧。

性能、成本和可组合性的隐性税费

让我们谈论钱。可组合商务的构建成本比单体应用更高。任何告诉你否则的人都在向你销售东西。

以下是中端市场电商运营(年收入$20M-$50M)的粗略成本比较:

成本类别 单体应用(Shopify Plus) 可组合堆栈
平台许可证 $24K-$48K/年 $60K-$150K/年(所有服务之和)
实现 $100K-$300K $300K-$800K
年度维护(开发团队) 1-2名开发人员 3-5名开发人员
启动时间 3-6个月 6-14个月
基础设施 包含 $2K-$15K/月

这些数字是真实的。我看过发票。可组合堆栈的前期成本高2-3倍,需要更大的持续团队。

那么为什么要做呢?因为总拥有成本在扩展时翻转。当你做$100M+并在多个市场运营时,单体应用的限制开始花费你的收入损失和解决方法复杂性超过可组合堆栈维护的成本。交叉点对每个业务都不同,但通常在$30M-$80M收入范围内。

隐性成本

集成维护:API会改变。供应商弃用端点。每个集成都是一个破损的表面积。预算你的工程时间的15-20%用于集成维护。

供应商管理:你现在与5-10个供应商有关系,而不是一个。每个都有自己的支持流程、SLA和计费周期。你的团队需要有人拥有这个。

可观测性:当你的单体应用破裂时,你查看一个仪表板。当你的可组合堆栈破裂时,你需要跨多个服务的分布式追踪来弄清楚出了什么问题。从第一天开始投资于可观测性工具(Datadog、Grafana Cloud等)。

对于我们的可组合商务实现定价,我们构建了参与方式,从一开始就考虑这些隐性成本,而不是在六个月后让它们惊喜你。

常见问题

可组合商务和无头商务之间有什么区别? 无头商务是可组合商务的一个方面——它意味着将前端表现层与后端解耦。可组合商务更进一步:它意味着将整个后端分解为可以独立交换的独立服务(商务引擎、PIM、OMS、搜索、支付等)。你可以在不可组合的情况下无头,但你基本上不能在没有无头的情况下可组合。

commercetools对于中端市场企业是否值得成本? 这取决于你的复杂性。commercetools的增长层级从2026年的约$30K/年开始,对于中端市场是可以接受的。但实现成本是它变得昂贵的地方——你需要有经验的开发人员,他们理解他们的API模型。如果你的业务有多市场、多货币或复杂的产品建模需求,投资通常会得到回报。对于更简单的用例,Medusa或Commerce Layer可能以40%的成本给你80%的能力。

可组合商务实现通常需要多长时间? 对于完整的可组合堆栈(商务引擎+PIM+OMS+无头前端+编排层),假设4-6名开发人员的团队,预期初始启动需要8-14个月。你可以通过分阶段推出来显著缩短这一点——先启动商务引擎和前端,然后在后续阶段添加PIM和OMS集成。我们看过分阶段方法在4-6个月内获得初始启动。

我应该使用Medusa而不是commercetools来节省成本吗? 如果你有一个有能力的Node.js团队且可以舒适地管理你自己的基础设施,Medusa是一个强有力的选择。许可证成本差异是显著的(Medusa是免费/开源,与commercetools的$30K-$150K/年相比)。但要计算基础设施管理、安全补丁和扩展的成本。对于少于5名开发人员的团队,自托管的操作负担可能会抵消许可证节省。对于有DevOps能力的更大团队,Medusa的经济学非常令人信服。

什么是可组合商务中的编排层? 编排层是自定义中间件,协调你各种商务服务之间的通信。它处理数据聚合(将产品数据从你的PIM与来自你的商务引擎的定价结合起来)、业务工作流协调(在下达订单时触发履行)和故障管理(当一个服务不可用时优雅降级)。把它想象成你的服务管弦乐队的指挥。大多数团队实现这个作为后端前端(BFF)API层加上异步工作流的事件驱动系统。

我可以逐步从Shopify迁移到可组合架构吗? 绝对可以,这是我会推荐的方法。从无头开始——用Next.js或Astro构建一个新前端,与Shopify的Storefront API通信。然后逐步提取功能:将搜索移到Algolia,将产品内容移到PIM,最终用commercetools或Commerce Layer之类的东西替换Shopify的商务引擎。Nacelle可以在这个过程中提供有用的帮助,将Shopify的API规范化为更前端友好的格式。关键是永远不要做一个大爆炸迁移。

MACH联盟是什么,认证是否重要? MACH联盟是一个倡导微服务、API优先、云原生和无头架构原则的行业组织。成员供应商包括commercetools、Contentful、Algolia和截至2026年约100个其他。认证意味着供应商已被独立评估对照MACH原则。这是在评估供应商时的一个有用的过滤器,但不是唯一重要的东西。一些优秀的工具(如Medusa)没有MACH认证,因为它们是开源的,不参与联盟。使用认证作为许多信号中的一个。

我如何在可组合堆栈中处理多个服务间的数据一致性? 这是分布式系统中最难的问题之一。简短的答案:接受最终一致性。你的PIM更新不会立即反映在你的商务引擎中,对于大多数用例来说这是可以的。使用事件驱动架构异步传播更改。对于你需要强一致性的少数情况(在结账期间库存递减,例如),使用具有适当重试逻辑和幂等性键的同步API调用。实现一个分布式追踪系统,这样你可以追踪服务之间的数据流并调试一致性问题。