我们在使用多门店 库存模块 时,从「库存明细」进入某一 SKU 的出入库明细(请求会带该 SKU 的 unique)。当一张 入库单或出库单内包含多个不同 SKU 时,出现 列表数量显示错误 和 导出混入其它 SKU。
一、业务路径
总后台:库存 → 库存明细 → 某规格 → 出入库明细。门店/供应商端同类 SKU 流水页行为一致。
二、复现步骤
- 新建一张入库单(或出库单),同一单内至少 2 个不同 SKU。
- 例如:第 1 行 SKU-A 数量 3,第 2 行 SKU-B 数量 4;保存并审核生效。
- 打开 SKU-B 的「出入库明细」(接口带
unique = B)。 - 看该单在列表中的良品/残次品数量,并 导出 Excel。
三、实际现象
- 列表常显示 3(同单 第一行 SKU-A),而不是 B 的 4。
- 导出含 该单全部 SKU,而非仅当前 B。
eb_store_product_stock_detail按order_id + unique落库数量正常;问题在 列表组装 与 导出查询,非改账导致。
四、期望
列表与导出只反映 当前 unique 在该单上的数量,与库表该 order_id + unique 一致。
五、代码定位(vanilla 多店包)
StoreProductStockOrderServices::getStockOrderList:有unique时预载detail未where('unique', …),却用$item['detail'][0]填stock/defective_stock。ExportServices::productStockDetail按order_id查整单明细,未按unique过滤;各端ExportExcel::productStockDetail也未传unique。
六、建议修复
预载 detail 时按当前 unique 过滤并汇总;导出增加 unique 过滤。
七、影响
主要影响 按 SKU 查流水 的展示与导出;入/出库 单管理主列表(不按 unique)一般不受影响。
【产品名称】:Pro 会员电商系统 / 多门店系统 (PHP)
【产品版本】:v4.0.0(包 CRMEB_MULTI_v4.0.0(20260425));v4.2.0 BETA(20260922)未改相关代码前同样复现
【部署方式】:Linux + 宝塔面板(Nginx + PHP-FPM / 或 Swoole)
【部署环境】:线上生产 + 本地测试(均为官方多店包)
【php版本】:8.0+(composer 要求 ≥8.0,生产以面板为准,如 8.1)
【Mysql版本】:5.7 或 8.0(以服务器为准)
【使用终端】:后台(总后台「库存 → 库存明细 → SKU 出入库明细」;门店/供应商后台同类 SKU 流水与导出)

