One self-hosted console to run your entire business — commerce, ERP, HRM, CRM & manufacturing

不再混乱的全渠道:线上商店、门店 POS 与快递配送共用一套库存

超卖、隐藏库存和对不上的货到付款,都源于同一个设计错误。了解如何让所有销售渠道共用一本库存台账,并把从结账到资金入账的配送闭环自动化。

Author

Anichur Rahaman

2 个月前8 min read2 views
不再混乱的全渠道:线上商店、门店 POS 与快递配送共用一套库存

多渠道销售已经不是可选项。今天一家典型的成长型零售商,会在网站、一家或多家门店的柜台、电话、聊天应用和社交媒体上接单,有时还有移动应用。顾客希望线上下单门店自提、在门店退掉线上买的商品,并且在任何地方都能看到准确的库存。

柜台背后的现实往往截然不同。每个渠道都是带着自己的工具加进来的,每个工具都维护着自己的库存数字。网站卖出了一件门店一小时前就卖掉的夹克;包裹已经在快递手里,系统却仍显示"处理中";货到付款回来时是一份结算文件,要花一整个下午才能对完。

本文讲解如何让所有渠道运行在同一套库存上:背后的架构、弥合资金缺口的配送闭环、一份上线清单,以及判断它是否奏效的指标。

多渠道为什么会变成一团乱麻

根本原因几乎总是同一个:库存按工具存储,而不是按库位存储。当网站、POS 和仓库表格各自拥有一个数字时,它们只能靠同步和导出来达成一致。同步做得好是几分钟一次,做得差就是悄无声息地失败,而且永远处理不好特殊情况:退货、调拨、部分签收。

症状大家都很熟悉:

  • 超卖:高峰期卖超,然后道歉取消订单。
  • 隐藏库存:门店有货,线上却显示售罄。
  • 快递手工操作:把地址复制到快递平台,再把运单号复制回来。
  • 未对账的货到付款:快递代收的货款没人与订单逐一核对。
  • 退货回不到可售库存,或者回到了错误的库位。

架构:一本台账,多个入口

解决办法是把大多数工具混为一谈的两个概念分开:渠道(你在哪里卖)和库位(货实际在哪里)。渠道不拥有库存,它们从库位上卖货。每个库位的库存都记在同一本台账里。

一本库存台账由销售渠道(网店、POS、电话、聊天、API)与库位(仓库、门店、调拨、快递、供应商)共享
渠道从库位卖货。库存数字只存在于台账之中。

记录流水,而不是计数器

可靠的库存不会存一个"数量 = 48"然后不断覆盖它,而是把每一次库存变动记为一行:入库、预留、销售、调出、调入、退货、调整、报损。当前数量就是这些记录的总和。这样做有三大好处:

  • 数字可以自我解释。任何数字都能追溯到产生它的变动记录。
  • 能处理并发。两个渠道同一时刻卖出最后一件,由数据库裁决,而不是靠运气。
  • 为财务供数。每次变动都带有成本,因此销售成本和库存估值都来自同一份数据。

在库、预留、可售

每个库位上每个 SKU 的三个数字承担了大部分工作:

数字含义谁来改变它
在库实际存放在该库位的数量。入库、销售、调拨、退货、盘点
预留已承诺给尚未发货订单的数量。结账、取消、发货
可售在库减去预留,任何渠道都只能卖这个数。系统计算,绝不手工录入

网站和 POS 读取的都是可售数量。线上下单时,在负责发货的库位预留数量,柜台就不能再卖。包裹发出后,预留转为销售;订单取消,预留随即释放。

按 SKU 设置低库存提醒

整个店铺统一一个阈值("低于 5 件提醒我")并不适合有的商品一天卖 50 件、有的一个月卖 2 件的商品目录。在需要的地方为单个 SKU 设置阈值,其余沿用店铺默认值,并确保每一次减少库存的变动——线上订单、POS 销售、库存调整——都会触发提醒,而不只是某一个渠道。

实际效果

这段简短的演示展示了同一套库存中的仓库、门店、库存变动和低库存提醒。

库存演示(0:54):仓库、门店、库存变动与提醒,录制于在线演示系统。

POS 柜台:同一份库存,同一位顾客

与网店运行在同一平台上的 POS,会以细小却关键的方式改变日常运营:

  • 每台收银机归属一家门店,每笔柜台销售都会立即扣减该门店的库存。
  • 顾客是共享的。同时在线上和门店消费的顾客只有一份历史、一个积分余额和一套优惠券。
  • 价格与税费来自同一个引擎。促销只需配置一次,线上和柜台同时生效。
  • 交班时清点现金。应有现金、实点现金和差额都会过账到总账。
  • 部分商品可以只在柜台销售。零配件或散装商品可以在门店存放和销售,而不出现在线上目录中。

配送闭环:从"已下单"到"钱已入账"

对许多零售商来说,尤其是在货到付款普遍的市场,最大的漏洞不是库存,而是从包裹发出到资金到账之间的空档。闭合这个环节,就意味着把每一步都自动化。

配送闭环:结账与报价、预留库存、拣货打包、预约快递、状态回调、货到付款对账;以及签收、部分签收和退回三种结果
六个步骤、三种可能的结果,每一种结果最后都会生成一笔会计分录。
  1. 结账时报价。运费由规则计算:区域、重量、配送方式以及任何包邮促销。高风险买家(例如历史退货很多)可以在发货前被标记出来。
  2. 在负责发货的库位预留库存。
  3. 确认并打包。确认订单即自动创建配送记录,无需额外步骤。
  4. 通过 API 预约快递。在快递公司创建包裹,运单号保存到订单,并打印面单。
  5. 跟踪状态回调。快递报告运输中、已签收、部分签收或已退回时,订单随之更新,无需有人登录平台查看。
  6. 货到付款对账。快递代收的货款与每笔订单匹配并过账:借记银行,贷记应收快递款。

妥善处理三种结果

  • 已签收:确认收入,发放积分,并安排评价邀请。
  • 部分签收:包裹知道自己装了哪些商品行,只有送达的部分计入销售,其余回到库存或重新发货。
  • 已退回:库存回到原库位,积分与收入自动冲回。

下方的配送演示展示了快递公司、配送区域、司机以及每个包裹的实时状态。

配送演示(0:54):快递公司、区域、司机与每个包裹的实时状态。

上线清单:八步实现一套库存

  1. 列出所有库位——仓库、门店、一个虚拟的"在途"库位——并确定哪些库位负责线上订单发货。
  2. 清理 SKU。每个可售规格对应一个 SKU 和条码,各渠道之间不重复。
  3. 在同一天为每个库位盘点并录入带成本的期初库存。
  4. 让每个渠道连接同一套商品目录:网站、POS 收银机、手工与电话订单,以及供移动应用使用的 API。
  5. 设置阈值:合理的店铺默认值,再为畅销商品设置单个 SKU 的阈值。
  6. 配置配送:区域、方式、运费规则和快递 API 凭证。每家快递先测试一个包裹。
  7. 启用调拨,包含发出与接收两个步骤,确保车上的货不会被重复计算。
  8. 约定每日例行事项:每天早上检查低库存提醒、未对账的货到付款和退回的包裹。

判断是否奏效的指标

指标计算方式健康目标
库存准确率盘点一致的 SKU ÷ 盘点的 SKU98% 或更高
超卖率因缺货取消的订单 ÷ 全部订单低于 0.5%
配送成功率已签收 ÷ 已发货按快递公司与区域跟踪
退回率退回包裹 ÷ 已发货逐月下降
货到付款回款天数从签收到收到现金的平均天数少于 7 天
售罄率售出件数 ÷ 入库件数(按周期)按库位比较

目标值因品类和市场而异,可以把它们当作起点。关键是每一项都能直接从同一本台账算出,不需要电子表格。

需要避免的常见错误

  • 用同步代替共享。两个同步库存的系统迟早会不一致,而一本台账不会和自己矛盾。
  • 允许员工直接修改数量。每次变更都应是带原因的特定类型变动——调整、损坏、盘盈。
  • 忽视在途库存。没有在途环节,调拨会短暂地同时存在于两个地方,或者哪里都不在。
  • 把退货当作事后才考虑的事。提前决定退回的库存去哪里、如何检验。
  • 用快递公司的承诺来衡量配送。要用你自己的签收与退回数据,按区域来衡量。

StoreConsole 的做法

在 StoreConsole 中,店面、POS、手工订单和无头 API 都从同一个库存模块销售。该模块为每个库位维护受保护的台账,支持调拨、预留和按 SKU 提醒。配送模块用运费引擎为包裹定价,通过 API 预约快递,跟踪状态回调,记录部分签收,并把货到付款对账进财务。你可以在在线演示中体验,或阅读库存、POS 与配送模块页面。

要点回顾

  • 渠道从库位卖货;库存属于库位,记在同一本台账中。
  • 记录变动而不是数量。可售 = 在库 − 预留。
  • 把配送闭环自动化:报价、预留、下单、跟踪、对账。
  • 把签收、部分签收和退回都当作一等结果来处理。
  • 库存准确率、超卖率、配送成功率、退回率和回款天数,都从同一份数据中衡量。

Anichur Rahaman 是一名软件架构师,也是 StoreConsole 的创建者。他为成长型企业设计电商与 ERP 系统,专注于事件驱动架构、数据完整性和自托管运维。

About the Author

Anichur Rahaman

Continue Reading