第10章 仓库场景
仓库是库存物理流转的地方:货进来(入库)、货出去(出库)、货移动(移库/移货架)、货盘点、货销毁。本章覆盖所有仓库操作。
入口:左侧菜单 仓库(功能总览 / 仓库预警 / 仓库查看 / 库存销毁 / 仓库管理 / 入库与出库 / 退货 / 移库 / 上架管理 / 仓库盘点 / 移货架 / 库存变动记录)。 功能总览:仓库首页卡片,展示各仓在库总量、今日入/出库数、库存预警数,点卡片可跳到对应列表。
下图是仓库作业的全景:所有入库增加库存、出库/销毁减少库存,移库/移货架只调整分布。
st=>start: 库存(五维:SKU×仓库×过期日×订单×货位)
p=>parallel: 三类库存动作
in=>inputoutput: 增加:采购入库(0) / 退货入库(1) / 移库入库(2)
out=>inputoutput: 减少:销售出库(3·释放占用) / 移库出库(4) / 库存销毁(5)
mv=>subroutine: 分布调整:跨仓移库 / 仓内移货架(总量不变)
e=>end: 库存变动记录(全程可追溯)
st->p
p(path1, bottom)->in->e
p(path2, right)->out->e
p(path3, left)->mv->e
10.1 维护仓库档案与仓储费用参数
- 仓库 → 仓库管理 → 新建仓库:填仓库名称、仓库编号(warehouse_code)、所属地区/地址、备注;保存即建一个库存五维里的「仓库」维度。
- 仓库 → 仓库管理 → 编辑已有仓库:改名称、编号、地址,或启用/停用。
- 仓储费用参数:按仓维护计费规则(如按体积/按天数计费的标准),用于后续费用核算。
仓库是库存五维之一(见 2.5),建 SKU 之前应先有仓库。系统当前已有多仓,新增前先确认是否真的需要新仓,避免维度膨胀。 停用仓库:若该仓还有在库库存,系统会阻止停用,需先移库清空。
10.2 采购入库
- 仓库 → 入库与出库 → 采购入库。
- 在订单选择弹窗里按供应商/订单号筛选出待入的供应链订单;点选后系统带出待入商品行。
- 列表页逐行录数量、货架位(shelf position)、过期日(expiry);支持扫码自动带出 SKU、减少手输(见 10.11)。
- 可分批入库:同一订单多次提交,每次只入部分数量;全部入完才推进订单到「已入库(8)」。
- 确认无误点提交 → 生成供应链入库记录(类型 0)。
- 提交后可打印入库单(含商品、批次、货架位)留底。
过期日决定临期/过期预警(见 10.10);货架位决定后续出库从哪里拿。 分批改数量时不要超过待入数量,超出会被拦截。
待入量按整个订单的完整入库记录汇总,同一 SKU 跨仓库计算。两行分别订购 0.50 箱和 1.00 箱,已经到货 1.00 箱时,还可入库 0.50 箱;已到货量只扣减一次。超过 100 条的历史也会全部纳入,历史不完整或读取失败时不能继续提交。保留小数箱数;保存的计划行草稿数量按快照恢复,调整行顺序不会填入另一行。
已连接的 Agent 可先读取来源订单和完整入库记录,再提出下一步操作。通过 MCP 发现出入库列表操作,传入 return_all_matching: true、正数 order_id 和 type: 0。读取范围由账户权限决定。迁入旧订单和期初库存前,先按 Agent 迁移指南做只读预检。

10.3 销售出库
- 仓库 → 入库与出库 → 销售出库。
- 选 销售订单(已审批、已冻结占用),系统带出待出商品行。
- 从指定批次 / 货架位出货,逐行录数量;支持扫码核销。
- 点提交 → 生成销售出库记录(WarehouseIO 类型 1);部分出库继续保持待出库,全部完成后订单推进到「已出库(4)」;占用释放、实物减少。
- 可打印出库单。
销售待出量同样使用整个订单跨仓库的完整历史。Agent 读取时传入 return_all_matching: true、销售 order_id 和 type: 1。
出库受可用库存约束;出货后实物减少、占用释放。若某 SKU 可用不足,系统提示,需先补货或调整。
10.4 销售退库
- 仓库 → 退货 → 销售退库(退货入库)。
- 选 退货中的退货单,系统带出待退商品行;有关联销售时,在收货前选择实际出库来源。
- 指定退回的仓库、货架位,录数量;关联销售的总退货量不得超过实际出库减去此前已退数量。提交生成退货库存流水(类型 1);全部商品入库后,退货单到「已入库(1)」,部分收货仍为退货中。已收货商品和来源保持原记录,重复确认收货不会增加库存。
- 退库后可打印退库单。
退库后进入销售侧确认退价、财务打款(见 8.6)。
10.5 上架管理
在 上架管理 中,将已收货批次落位,或在同仓内移动其中一部分:
- 选择供应链订单、销售退货单或可用区入口,查看来源库存行。供应链入口核对来源采购单;退货入口仅展示该退货单实际收货记录关联的批次,空退货单不会列出其他库存。可用区入口只展示可用区货架,不包含不可用区。
- 每行分别显示实存、销售预留、锁定和可上架数量。可上架 = 实存 − 预留 − 锁定,最低为零。
- 逐行填写目标货架位、数量和保质期;扫码可辅助选商品和填写货架。数量不得超过来源当时的可移动库存;销售预留和锁定数量留在来源行。
- 核对来源批次与目标货架,确认上架。提交期间拦截重复点击并锁定入口切换;货架或保质期至少变更一项。
上架不改变仓库总实存,部分拆分货架采用相同的可移动数量规则。目标批次已存在时,单位商品成本与单位货运成本分别按实物数量加权,保留六位小数;缺失成本保持未知,明确的零成本保留为零。API 省略保质期会保留来源效期,明确传 null 表示清空;页面会提交确认时看到的保质期,包括清空值。
来源的待销毁、人工过期及预库存标记会保留。目标已有库存且标记不同时,上架、拆分和整行移货架都会拒绝合并,请选择其他货架;不要为移动而随意清除标记。空目标行会采用来源标记。
上架成功后页面显示操作记录编号。点行内「上架记录」或成功提示中的「查看记录」,可查看该商品在此仓库最近 20 条记录,包含操作人、时间、来源/目标批次、货架和移动前后实存。即使来源没有采购单,也会留记录。请求结果不明确时,先核对这些记录与库存,再决定后续操作。历史动作不能补造为新的收货记录;移到别的批次后,可通过盘点或适用的库存入口继续操作。
整行移货架属于另一个盘点动作,可随批次移动占用关联;上架和拆分只移动未预留、未锁定的部分。可在库存指南操作示例。
10.6 移库(跨仓)与移货架(仓内)
- 移库(跨仓):仓库 → 移库 → 选源仓 SKU/批次 → 录目标仓、数量 → 创建待出库单(状态 0,此时不改库存)。源仓完成出库后生成类型 4 流水,单据转为待入库(状态 1);目标仓完成入库后生成类型 2 流水,单据转为已完成(状态 2)。
- 移货架(仓内):仓库 → 移货架 → 选同仓内某批次 → 改目标货架位 → 提交。只改货架位维度,不改变仓库与总量。
移库出库与入库分别记录。出库后、入库前,货物尚未计入目标仓在库数量;完成后才完成跨仓转移。创建前核对目标仓与数量。
移库详情的来源货架有三种依据:待出库时显示当前来源货架;已出库或已完成时显示出库时记录的货架,后续移货架不会改写它;缺失或冲突的历史依据显示未知,不能用今天的库存位置补齐。详情中的 SKU 名称、编码、单位优先使用单据快照。
移库出库会记录该批货物当时的单位采购成本、单位货运成本、保质期与供应链订单。入库沿用这份出库快照;来源仓剩余库存后来修改成本、保质期或合并到另一货架,不会改写在途货物的依据。单位成本按 SKU 单位记录,支持六位小数;明确的零成本保留为零,历史没有记录的成本保持未知,不用当前库存补算。
移库入库合并到已有批次或仓内移货架合并批次时,当前库存的单位采购成本、单位货运成本按实物数量加权,保留六位小数;实际出入库快照仍保存本次货物的原成本。例如 0.75 箱 × 20 加上 0.50 箱 × 12.34,1.25 箱的合并单位成本为 16.936。参与合并的非零数量缺失成本时,合并成本保持未知;零库存不参与加权,不把缺失成本当免费货物。
入库前系统核对出库记录、商品、数量及来源批次。依据缺失或不一致时停止入库,需先核对原始单据,不会生成目标库存。仓内合并只让尚未出库的移库计划跟随新库存批次;已经出库或完成的计划保留原来源关联。移库成本快照的读取沿用库存成本权限,普通仓库成员仍能读取数量与货架。
出库同时冻结预库存和库存标记(正常、待销毁、人工标记过期)。入库保留出库时的标记,来源剩余批次后来改标记不影响在途货物。目标已有实存或锁定量且标记不同时,拒绝合并,应选择其他接收货架;空且未锁定的目标采用来货标记。历史出库没有记录标记时,须先核对再收货。移库详情分别显示待出库时的当前来源标记、出库时记录的标记或历史未知状态。
历史移库已出库待入库、但缺少标记时,有移库权限的成员可在移库详情对应行选择核对历史标记。查阅原始出库单据后明确选择出库时的上架状态与库存标记,并填写核对依据;已记录的有效字段不能改写。确认后留下核对人、依据和前后值的操作记录,不改动数量、成本或出入库事实。所有实际出库行的标记完整后才能收货;出库关联缺失或冲突时,须先核对原始记录。
收货入口为仓库 → 出入库 → 入库,选择已出库的移库单。实际出库的数量和有效期固定展示,每行可填写收货货位;留空表示不指定货位。计划货位发生冲突时,可改选空货位后确认入库。原计划和原出库记录保留,完成后的移库详情分别展示计划货位与实际收货货位。普通入库、出库权限才可执行调拨收货,仅有退库权限不能操作。
请求超时后,页面只查询最新调拨状态,不自动重复收货;再次操作前应核对出入库记录。图片上传失败不会撤销货物入库,请通过入库记录核对附件。
可体验移库快照示例:出库 0.50 箱,修改剩余来源标记,再比较收进已有货架或空货架的结果。
10.7 仓库盘点(实时核对)
系统是实时盘点,不产生独立的「盘点单」,也不直接改动仓库总库存。盘点时你在库存上做三类操作:
st=>start: 仓库盘点 → 载入库存
a=>parallel: 三类盘点操作
b=>operation: 改货架(A→B 货位调整)
c=>operation: 拆分(一批拆两份)
d=>operation: 标记销毁(后续正式出账)
e=>end: 实时落库到库存变动记录
st->a
a(path1, right)->b->e
a(path2, bottom)->c->e
a(path3, left)->d->e
盘点只调整货位/拆分/标记,不改总库存数量。账实不符(盘盈/盘亏)要用正规单据修正。
| 操作 | 说明 | 操作入口 |
|---|---|---|
| 改货架 | 把某批库存从 A 货架位改到 B 货架位(仓内货位调整) | 盘点列表行内「改货架」 |
| 拆分 | 把一个库存批次按数量拆成两份(便于分货架/分批) | 行内「拆分」,填拆分数量 |
| 标记销毁 / 取消标记 | 标记某批为待销毁(之后走正式的库存销毁出账) | 行内「标记销毁」/「取消标记」 |
- 仓库 → 仓库盘点 → 载入盘点(可按仓库/SKU/货架筛选当前库存)。
- 逐行执行上述操作,每次操作实时落库到库存变动记录。
- 标记销毁的批次,后续到「库存销毁」正式出账。
重要:盘点只调整货位/拆分/标记,不改总库存数量。实地清点若发现账实不符(盘盈/盘亏),要用正规单据修正总量:盘盈走采购入库(无单入库),盘亏走销售出库或库存销毁。别指望盘点直接把数字改平。
10.8 库存销毁
- 仓库 → 库存销毁 → 载入待销毁批次(含盘点标记的批次)。
- 勾选要销毁的行,可全选;录销毁数量、原因(过期/损坏/不可售)。
- 点提交 → 生成库存销毁记录(类型 5),库存相应减少。
销毁是不可逆的库存减少,需谨慎;原因建议必填,便于溯源。
10.9 仓库查看与库存变动记录
- 仓库查看:按 SKU / 仓库 / 货架 / 过期日查看库存分布(五维:SKU×仓库×过期日×供应链订单×货架位),看实物/占用/可用,支持筛选。采购与销售订单的 Excel 汇总导出在各自订单列表中。
- 库存变动记录:每一笔库存增减的流水,记录变动前/变动后库存、类型、数量、关联单据与时间。支持按 SKU、仓库、库存批次、来源、类型、单据与业务日期范围筛选;每页显示该页的匹配记录与服务端完整筛选总数。点击退货、移库来源单号,打开该单据详情,不受列表当前日期、页码影响;仍受账户权限限制。详情加载失败提供重试,不显示空单据或允许保存、打印。数量使用 SKU 单位,支持半箱等小数;这里记录实物变动,销售预留另行记录。
只读 API Key 与已接入 Agent 可以调用 POST /product/product-stock-records/list,使用 page 与 page_size(1–100)翻页。记录按时间、ID 同时倒序;仅日期的范围使用多伦多业务日期,结束日期包含整天,带时区的时间会转换到多伦多。来源取值为 supplier_inbound、sale_outbound、sale_return、transfer,无效筛选会被拒绝。这是普通分页,不是冻结快照;多页读取期间若有新库存变动,需重新查询核对,不能直接视为完整盘点依据。
近期补货筛选取最近 30 天到当前业务时间内,某个库存批次从零变正数的 SKU,排除隐藏 SKU 与未来日期记录;不代表该 SKU 所有仓库或总库存原先均为零。选购页面加载全部分页;查询失败或结果不一致时提供重试,不展示不完整或假空的商品列表。

10.10 仓库预警
- 仓库 → 仓库预警。
- 系统监控三类异常(阈值可在预警设置里配置):
- 临期:快到过期日的库存(按天数阈值)。
- 缺货:可用库存低于阈值的 SKU。
- 积压:长期未动、占用资金的库存(按天数阈值)。
- 针对预警做处理:临期考虑促销/销毁,缺货安排采购,积压清理或调拨。
阈值建议在上线初期就设好,避免漏看。
10.11 条码扫码作业
SKU 可维护条码(upc / barcodes)。出入库、上架时支持扫码快速识别 SKU,减少手输错误:
- 商品明细里维护条码(见 6.3);扫码枪/相机识别后自动带出 SKU。
- 入库/出库/上架列表行内点「扫码」调起扫码,识别后自动填 SKU / 货架位。
- 扫货架位条码可直接绑定落位。
条码在商品明细维护(见 6.3);扫码枪/相机识别后自动带出 SKU。
本章小结
- 入库三类:供应链入库(0) / 退货入库(1) / 移库入库(2);出库两类:销售出库(3) / 移库出库(4);另有销毁(5)。
- 采购入库选供应链订单、可分批、支持扫码与打印;销售出库选销售订单、从指定批次/货架出货。
- 上架管理完成到货落位;移库跨仓、移货架仓内;盘点实时校准账实(改货架/拆分/标记销毁);销毁处理不可用库存(支持全选)。
- 库存变动记录含变动前后库存,是溯源唯一入口;预警覆盖临期/缺货/积压(阈值可配);支持条码扫码。
下一章讲 财务场景。