本地配送与自提:Local delivery、Local pickup 与门店取货
本地配送(Local delivery)让商家不经承运商,把订单直接送到一定范围内的顾客地址;门店取货(Pickup in store,本文也称 Local pickup)让顾客在商家的某个地点自取订单。二者都是 Shopify 里与承运商运费并列的配送方式:官方 Delivery methods 总览把它们列为标准配送之外的方式,并写明本地配送适用于“不用承运商就能履约附近顾客”的情形。本文说明它们各自要配什么、结账与主题怎样呈现、订单怎样履约。它不负责计算承运商运费,也不替代配送信息的文案规则。
本库哪些内容依赖它
- 库存状态与到货通知:“不可取货”状态与取货地点的判据;
- 店面能力模块:把 Local Pickup 归为地点、库存与配送状态模块;
- Dawn 购买区与可售状态、Horizon 吸底加购与可售状态:两个主题的取货可用性实现;
- 配送信息:配送范围与时效的文案规则;
- 库存与地点、履约与配送:地点与订单履约的检查方法。
本文是该平台机制的权威来源,其他文章只写各自页面语境下的用法。
核心对象与概念
| 对象 | 含义 | 备注 |
|---|---|---|
| 地点(location) | 存货、履约或取货发生的位置 | 两种方式都按地点开通,见库存与地点 |
| 配送区域(delivery zone) | 本地配送的适用范围,用邮编或配送半径定义 | 每个地点可建多个区域 |
| Minimum order price | 区域内订单享受本地配送的最低金额 | 可选 |
| Delivery price | 该区域的配送价格 | 填 0 即免费 |
| Delivery information | 随订单确认邮件展示给顾客的配送说明 | 见下文 |
| 预计取货时间 | 取货订单“预计可取”的时间说明 | 已启用门店调拨时,官方写明会计入调拨所需时间 |
| Ready for pickup 通知 | 订单标记为可取货时发给顾客的邮件 | 可写地点专属取货说明 |
| 门店调拨(store transfer) | 取货地点缺货时,从其他地点调货到取货地点 | 需要多个地点 |
| Pickup points | 把订单寄到第三方自提点(如邮局、快递柜) | 官方写明仅在法国、意大利、西班牙、英国可用,与本文的两种方式不同,本文不展开 |
在哪里配置
本地配送:Settings > Shipping and delivery > Local delivery,选择地点,开启 “Deliver orders to customers directly from this location”,在 Delivery zones 区点 Add zone。区域字段为 Zone name、邮编(Postal codes)或配送半径(Delivery radius up to)、Minimum order price、Delivery price、Delivery information,以及价格条件规则。编辑区域走同一路径下地点的菜单 > Edit。
门店取货:Settings > Shipping and delivery > Pickup in store,按地点分别开启 “Let customers pick up orders directly at this location”;需要为每个可取货的地点单独设置。取货说明写在该地点的 Ready for pickup notification 区。门店调拨在同一页设置,并可在 Transfer exclusions 中排除商品集合(官方写明按集合排除,不能逐件排除)。
与主题、Liquid 和 API 的连接
取货可用性的主题接口以 shopify.dev 的 Pickup availability 主题指南为准(核验于 2026-09-29):
- 用到
variant、store_availability、location三个 Liquid 对象; store_availability.available表示该变体在该地点的可取状态,pick_up_enabled标出开通取货的地点,pick_up_time是预计取货时间;指南写明available与pick_up_time都已计入门店调拨,所以变体可能因调拨而“可取”,即使本地没有库存;- 主题通过 Section Rendering API 取回取货区,端点形如
/variants/[variant-id]/?section_id=pickup-availability,即必须带变体前缀; - 只在当前变体至少有一个开通取货的地点时才显示取货内容;取货区内不能直接访问 Liquid 的
product对象;变体切换后必须重新取回可用性。
哪些主题自带该展示:取货页写明“目前在 Dawn、Horizon 系列和 Theme Store 的多个付费主题中可用”,具体付费主题名单未核验。两个官方主题的实现细节见上面列出的 Dawn 与 Horizon 两篇,本文不重复。本地配送在已读页面中没有面向主题的 Liquid 或 API 入口,未核验。
与运费、市场和履约的关系
- 与运费费率:本地配送在配送区域上设置自己的价格;官方页写明顾客符合多个区域时按最低适用价格收费。它与 Shipping profiles 或按市场的运费选项之间的优先级、叠加关系,官方本地配送页没有写,未核验;请按市场与配送配置的方法固定买家地址后逐项测试。结账里本地配送的名称固定为 “Local delivery”,不能自定义。
- 与市场:官方写明配送半径不会跨越国境,即使开启了邻近地区设置;取货页写明顾客只能看到自己所在国家的取货地点。二者与 Markets 设置的关系未核验。
- 与订单履约:订单进入履约后按方式分流,见下节;行项目、部分履约和物流记录的通用检查方法见履约与配送。
- 与配送信息内容:配送信息要求页面上的范围、运费、时效与结账一致;本地配送的区域、最低金额与价格、取货的预计时间,必须来自上面的配置,不另写一套。
订单履约与通知
本地配送(官方 Fulfilling local delivery orders 页):在 Orders 打开订单,点 Prepare delivery,拣货打包后点 Mark as ready for delivery;送达后点 Mark as delivered。状态从 Unfulfilled 到 Ready for delivery,再到 Delivered(订单变为 Fulfilled)。标记送达时,顾客自动收到送达确认邮件;不标记则不会有自动送达通知。官方写明 “Out for delivery” 与 “Delivered” 这两类基于承运商追踪的通知不适用于本地配送,因为本地配送订单在 Shopify 中不产生承运商追踪事件。订单下单后不能更改本地配送的履约地点。订单页可看到顾客在结账时填写的 Delivery instructions,并可用 “Local delivery” 标签页筛选。
门店取货:在订单页点 Mark as ready for pickup,顾客收到 Ready for pickup 邮件;顾客取走后点 Mark as picked up,可勾选 Send notification to customer 发送 Picked up by customer 确认邮件。地点专属的取货说明会覆盖通用通知模板,官方还写明它会替换 email_body 变量里的自定义内容。
在 POS 里处理:POS 处理线上取货订单与本地配送订单,官方页都写明仅限已订阅 Shopify POS Pro 的地点,且员工需要 “Fulfill shipping and pickup orders” 权限(取货页)。POS 的定位见 POS 与线下销售。
限制、数值与易错点
核验于 2026-09-29,逐条标来源;摘要级读取的条目以官方页为准。
| 项目 | 官方所写 | 来源 |
|---|---|---|
| 配送区域数量 | 每个地点最多 10 个区域 | Local delivery 页 |
| 邮编输入 | 以逗号加空格分隔,支持通配符(如 M5V*),最多 3,000 个字符 | Local delivery 页 |
| 配送半径 | 最大 160 公里或 100 英里 | Local delivery 页 |
| 价格条件规则 | 每个区域最多 3 条额外的按订单金额规则 | Local delivery 页 |
| 结账条件 | 商品都从同一地点发出且有库存、地址经 Google 验证、地址落在配送范围内,且不使用加速结账(Shop Pay 除外) | Local delivery 页 |
| 混合订单 | 顾客不能在同一订单里一部分寄送、一部分本地配送 | Local delivery 页 |
| 不兼容项 | B2B 结账不支持本地配送(草稿订单除外);页面写明与 Apple Pay、Google Pay、Amazon Pay、PayPal 不兼容;可能与第三方运费应用冲突 | Local delivery 页 |
| 取货默认要求 | 默认只有整张订单在取货地点都有库存才可取货 | Pickup in store 页;与库存状态与到货通知一致 |
| 门店调拨 | 有多个地点时可设调拨;无单一地点能调齐时会创建多笔调拨;调拨订单可设不同处理时间 | Pickup in store 页 |
| 取货与寄送混合 | 页面写明顾客可在同一订单里一部分寄送、一部分自取;页面另有一句把 “ship and pickup in one order” 写为仅 Plus 与 Enterprise 的 feature test drive 前提(需至少一个地点开通取货)。两句的适用范围未协调,并列不选边 | Pickup in store 页 |
| 套餐 | 自定义取货应用替换默认取货仅限 Shopify Plus;门店调拨的套餐条件在两次摘要中说法不一,未核验 | Pickup in store 页 |
| 线上可售数量 | 不履约线上订单的地点(如仅零售的门店)库存计入总库存,但不计入线上数量;线上数量决定顾客看到的可售状态 | Multi-managed inventory 页 |
易错点:
- 官方本地配送页没有写“配送时间窗口”或“预计送达时间”的设置。 本文不假设存在这类功能;需要向顾客承诺时段时,必须另行确认目标店铺的实际设置或方案,并在配送信息中区分预估与承诺。
- “有货”不等于“可取”:取货要看该变体在该地点的
available,且整单其他商品也要满足;不要用各地点库存数字相加代替。 - 本地配送订单的“Out for delivery”通知不会自动发出,靠手动标记;不要向顾客承诺会收到承运商式的追踪通知。
- 邮编填写:分隔符与通配符写法出错会让整个区域失效,改动后应用真实邮编测试。
验证一次
- 固定测试店铺、一个变体与买家地址;先只开一个地点的本地配送,建一个邮编区域,设 Minimum order price,结账分别输入区域内、区域外、金额不足的地址,记录能否看到 “Local delivery” 与价格。
- 建两个重叠区域,确认收费为较低价格;再加入价格条件规则,检查金额边界。
- 用 Apple Pay 或 PayPal 等加速结账入口重复一次,核对官方所写的不兼容。
- 开启取货:把变体在取货地点设为有货、无货,检查商品页取货摘要与结账 Pick up 选项;再构造“整单部分商品缺货”的购物车,检查是否仍可取货;开启门店调拨后再测一次,并确认预计取货时间是否变化。
- 履约:分别走一遍本地配送的 Prepare delivery、Mark as ready for delivery、Mark as delivered,与取货的 Ready for pickup、Picked up,记录每一步顾客收到的邮件;确认本地配送在送达前没有任何自动送达通知。
- 记录时间、地点、设置与看到的结果,避免不同时间的截图互相比对。
待继续完善
- 本地配送的套餐、国家与地区限制,以及与 Markets、Shipping profiles 的叠加关系未核验;
- 取货预计时间的下拉档位值、门店调拨的套餐条件、混合订单的适用范围需在真实店铺核对;
- 付费主题里取货可用性的具体表现未核验;
- 本地配送是否有时间窗口类功能,需要在目标店铺后台与官方后续文档中确认;
- 未在真实店铺配置或下单,全部结论限于官方页面所写。