Shopify 知识库 · 概念
B2B:公司、目录与数量规则
说明 Shopify B2B 的对象(公司、公司位置、目录与价格、付款条款)、数量规则与阶梯价、结账与草稿订单在 B2B 中的角色、与新版客户账户的关系、B2B 登录后店面的价格与目录展示,并逐项标出依赖套餐的能力与官方页面之间的表述差异。
Shopify B2B 是一组原生功能:把企业买家建成“公司”,为其配置目录、价格、付款条款与结账设置,并通过客户账户登录后看到对应的商品与价格。它解决的是“同一家店向企业客户按不同价格、数量和账期销售”;它不是独立的批发系统,不覆盖合同管理、审批流水线或 ERP 对接,也不改变哪些买家能买哪些东西以外的库存逻辑。官方页写明 Shopify B2B 适用于所有套餐,但部分能力限 Advanced 或 Plus(核验于 2026-09-29)。
本库哪些内容依赖它
- MOQ:最小起订量的口径与 Shopify 数量规则:销售方向的最小、最大、增量规则;
- 购买区模块与购物车摘要模块:变体级数量规则的读取与错误提示;
- 客户账户与后台身份的边界:账户模式的判断,B2B 要求的新版账户见下文;
- 支付与结账:加速结账等能力与 B2B 的互斥;
- 折扣、客户分群:折扣资格与
companies分群过滤器。
本文是该平台机制的权威来源,其他文章只写各自页面语境下的用法。
核心对象与概念
| 对象 | 含义 | 备注 |
|---|---|---|
| Company(公司) | “The parent organization for one or more company locations” | 数量不限;一个公司最多 10,000 个位置、10,000 位客户(创建公司页) |
| Company location(公司位置) | 交易中被销售的那个业务主体 | 可各自配置税号、免税、收货与账单地址、目录、付款条款、结账设置;创建公司时自动生成一个位置;一个位置最多 50 位客户 |
| B2B 客户(联系人) | 代表企业下单的个人 | 只能属于一个公司,但可属于同一公司的多个位置;权限二选一:Ordering only(下单、看自己的订单)与 Location admin(另可看该位置全部订单并改地址) |
| Catalog(目录) | 决定 B2B 客户可买哪些商品和价格 | 可含全部商品或指定商品与变体,可按整体涨跌价或固定价调整 |
| Price list / 阶梯价 | 目录内的价格设定 | 每个商品最多 10 个价格阶梯;设置阶梯价后价格变为固定价,目录的整体调整不再适用 |
| Quantity rules | 每变体的最小、最大、增量 | 见下文 |
| Payment terms | 公司要在多久内付款 | 支持 Net 7、15、30、45、60、90 天或 “due on fulfillment”(功能总览页) |
| Order submission | 订单以正式订单还是草稿提交 | 按公司位置设置 |
| Blended / Dedicated store | 混合店(B2B 与 D2C 同店)与专属店(仅 B2B、独立库存与后台) | 官方页对两者适用场景有说明 |
在哪里配置
- 公司与位置:Customers > Companies;必填公司名、Company ID(可填外部系统 ID)、主要联系人(须是有邮箱的客户资料)与地址;公司资料页还提到可存 metafield,通用机制见自定义数据。公司位置的目录最多 25 个。
- 目录:Markets > Catalogs(B2B 市场与普通市场的关系另见市场与配送;目录内的商品与变体结构见商品与变体);基础、Grow、Advanced 套餐通过 B2B 市场分配目录(Markets > Catalogs 里在市场的 Catalogs 设置处添加),Plus 还可直接分配给公司位置。
- 数量规则:Markets > Catalogs > 选目录 > Manage > Manage products and pricing;也可用 CSV 导入。
- 结账设置:进入公司位置,在 Checkout 区设置 “Submit all orders as drafts for review”、是否允许一次性收货地址等。
- 草稿订单:Orders > Drafts > Create order,选 B2B 客户与公司位置。
- B2B 登录入口:Settings > Customer accounts 可复制客户账户 URL,用于菜单或直接分享;可选发送 B2B 访问邮件邀请客户下单。
与主题、Liquid 和 API 的连接
- 判断与上下文:Liquid 的
customer.b2b?判断是否 B2B 买家,另有customer.current_company、customer.current_location、customer.company_available_locations与company、company_location对象;customer全局对象仅登录后存在。 - 位置选择器:开发文档建议用
customer.b2b?判断,在company_available_locations.size > 1时列出位置,链接用location.url_to_set_as_current。买家属于多个位置时,需先选位置再加购,价格随位置的目录而变。 - 对非 B2B 隐藏内容:官方建议可用
{%- if customer.b2b? -%}隐藏价格、购物车图标、加购按钮等;为不影响主题商店资格与自动升级,建议复制价格区块内容到 Custom Liquid 块里再加条件,而不是直接改主题代码。 - 数量规则:
variant.quantity_rule含min(默认 1)、max(无上限为nil)、increment(默认 1)。店面展示:官方页称免费 Shopify 主题 8.0.0 及以上支持展示数量规则,11.0.0 及以上支持阶梯价;也可手动加代码,涉及main-product.liquid、theme.js等文件。 - 按客户类型定制主题:需要基于 JSON 模板的兼容主题,在主题编辑器里用 sections、blocks 与 app embeds 做覆盖;套餐限制见下文,官方页之间有差异。
限制、数值与易错点
核验于 2026-09-29,逐条标来源;多页矛盾时并列。
- 目录与套餐(套餐功能对比页、目录页):Basic、Grow、Advanced 通过 B2B 市场最多分配 3 个活跃目录(跨全部 B2B 市场);Plus 目录数量不限并可直接分配到公司与位置。创建目录页另写单店最多 10,000 个目录(摘要级读取)。
- 多个目录同时命中:同一位置有多个目录时,店面显示该商品的最低价(不含数量规则),数量规则取自该变体价格最低的目录;目录同时分配给位置和匹配的 B2B 市场时,显示最具体的价格(创建目录页)。
- 数量规则(数量规则与阶梯价页):增量须为不小于 1 的整数;按变体生效,不能用 5 件灰色加 5 件蓝色凑增量 10;阶梯价的数量须大于最小订购量且是增量的倍数。该页未写多个目录下规则如何叠加、是否作用于非 B2B 客户;与起订量的关系也见该词条。
- 付款相关套餐(套餐功能对比页):Net terms、付款提醒、ACH(仅美国)、保存的信用卡在所有套餐;定金、部分付款、按履约请求付款仅 Plus;草稿订单定金按订单小计的比例计算,不含税费与运费(草稿订单页)。
- 客户类型主题定制的套餐,三页并列:按公司类型(B2B 与 D2C)做主题编辑器定制,主题定制页写仅 Shopify Plus,按市场的定制为 Advanced 及以上;套餐功能对比页把 “Contextual storefront” 与 “Contextual checkout” 列为 Advanced 与 Plus;店铺类型页写 Advanced 及以上可用 11.0+ 免费主题为不同客户类型定制内容。三处口径不一致,本文不选边,以后台实际可用性为准。
- 不兼容项(使用要求页):加速结账(含 Shop Pay、Apple Pay、Google Pay、Amazon Pay)、小费选项、订阅、对
checkout.liquid的结账定制、Local delivery、自提点与 agentic storefronts;订单与草稿订单最多 500 个行项目;某些第三方应用不兼容。订阅另见销售计划。使用 Markets 时页面写明须在 feature test drive 中启用 B2B(摘要级读取,含义未核验)。 - 结账地址(B2B 结账页与结账设置页):默认收货与账单地址按公司资料预填,结账中不可改,需要的话在账户页提前修改;启用一次性收货地址设置后可填不同地址。
- 草稿提交:设置 Submit all orders as drafts for review 后,该位置的客户在结账看到 Submit for approval,不在结账收款;草稿订单默认锁定价格,价格锁不支持商品组合(bundles);官方页另提到可用 Payment Customization Function 按订单金额等条件有条件地转草稿。
- 个人订单:术语表写明,邮箱关联到 B2B 公司账户的客户无法完成 D2C 个人订单结账。
- 折扣:使用要求页写明,需创建 B2B 市场并把市场加入折扣资格,才能把折扣限定给特定 B2B 客户;见折扣。
- 未读到:税号与免税的实际计税效果、UK/EU VAT 号的使用条件(仅读到 Shopify Tax 下可用)、发票与逾期流程、Flow 的 B2B 动作、Storefront API 与 Headless 用法。
与新版客户账户的关系
官方页写明 B2B 必须启用客户账户,且不能对 B2B 客户与订单使用旧版(legacy)客户账户;B2B 客户使用新版客户账户登录,输入与公司位置关联的邮箱并用邮件一次性 PIN,无需密码;登录后可查看订单历史、账户与位置信息、使用保存的付款方式付款、复制历史订单再下单。混合店从旧版切换到新版会同时影响 B2B 与 D2C 客户。混合店铺清单页另写可为全部客户启用账户,或保留旧版账户给 D2C 并另加 B2B 登录 URL;该说法与“不能对 B2B 使用旧版账户”如何共存,本次未读到解释,并列不下结论。账户模式的判断与旧主题账户模板的风险见客户账户;后台谁可管理公司与目录见权限。
结账与草稿订单的角色
- B2B 结账:登录客户在结账时自动带入公司信息;付款条款为账期时点 Submit,可填采购订单号;信用卡条款则即时付款。
- 草稿订单:客户通过电话或邮件下单,或需要审批的场景,用草稿订单承载;带 B2B 客户与公司位置的草稿,价格、付款条款与结账选项自动取该公司的设置。订单支付状态的判读见订单与支付状态。
- 店面差异:同一商品页,登录的 B2B 客户看到目录价与该位置的数量规则,未登录访客看到零售价或被主题隐藏的价格;后台可在公司位置点查看图标,以客户视角预览店面。
验证一次
- 建测试公司与两个位置,各绑定不同目录(同一变体不同固定价)与不同付款条款;
- 建一位 B2B 联系人,用 B2B 登录 URL 走一次性 PIN 登录,确认账户页显示公司与位置;
- 有多个位置时,检查是否必须先选位置才能加购,切换位置后商品页价格是否随目录变化;
- 给同一变体设置最小 6、增量 6,用 7 件加购、用两个变体各 3 件加购,记录购物车与结账的提示与结果;
- 走一次账期结账,核对地址预填且不可改、采购订单号字段、提交后订单的付款状态;再对一位置启用 Submit all orders as drafts for review,确认按钮变为 Submit for approval;
- 未登录与登录状态各看一次商品页,核对主题是否按
customer.b2b?隐藏或显示价格; - 记录:套餐、主题名与版本、账户模式、目录分配方式、每步的实际界面文本。
待继续完善
- 一次性 PIN 之外的登录选项、公司账户申请表单的配置;
- 税费、免税与发票逾期流程;
- 三页并列的套餐口径需在具体店铺核对;
- Storefront API、Headless 与 Flow 的 B2B 用法;
- 数量规则在多目录叠加、对非 B2B 客户的行为。