门店商品库存主数据 — GetGoodsInventoryList
模块:TenantGoods · ODS 表:store_goods_master · 维度表(快照)
一、接口概述
查询门店级商品库存主数据,包括商品基础信息、分类、库存数量、价格/成本、状态开关、销售表现等。每条记录对应一个门店维度的商品,是商品维度的核心维表。与租户商品档案(tenant_goods_master)通过 tenant_goods_id 关联,与库存/销售事实表通过 id(即 site_goods_id)关联。
| 属性 |
值 |
| 完整路径 |
POST /TenantGoods/GetGoodsInventoryList |
| Base URL |
https://pc.ficoo.vip/apiprod/admin/v1/ |
| 鉴权 |
Authorization: Bearer <token> |
| 分页 |
page + limit(最大 100) |
| 时间范围 |
不需要(全量快照) |
二、请求
请求体(JSON)
⚠️ 注意:siteId 参数必须为数组格式 [sid],而非单个整数值。这是本接口的特殊要求。
参数说明
| 参数 |
类型 |
必填 |
说明 |
goodsSecondCategoryId |
array |
是 |
二级分类 ID 列表,空数组 [] = 全部 |
goodsState |
int |
是 |
商品状态筛选。0 = 全部,1 = 正常,2 = 特殊状态 |
enableStatus |
int |
是 |
启用状态筛选。0 = 全部,1 = 启用 |
siteId |
array |
是 |
门店 ID 数组(如 [2790685415443269])。必须为数组格式 |
existsGoodsStock |
int |
是 |
是否有库存筛选。0 = 全部 |
page |
int |
是 |
页码,从 1 开始 |
limit |
int |
是 |
每页条数,最大 100 |
三、响应结构
data.list 中每个对象即为一条门店商品记录,共 45 个字段,按逻辑分组说明如下。
四、响应字段详解(45 个字段)
4.1 门店与租户维度
| 字段 |
类型 |
示例 |
说明 |
tenant_id |
int |
2790683160709957 |
租户/品牌 ID,所有记录相同 |
site_id |
int |
2790685415443269 |
门店 ID,与其他业务表一致 |
siteName |
string |
"朗朗桌球" |
门店名称,冗余展示字段 |
4.2 商品标识与分类
| 字段 |
类型 |
示例 |
说明 |
id |
int |
2793025851560005 |
门店商品 ID(主键)。在其他表中以 site_goods_id / siteGoodsId 出现,用于关联库存、销售记录 |
tenant_goods_id |
int |
2792178593255301 |
租户级商品 ID(全局商品 ID),对应 tenant_goods_master.id。一个全局商品可在多个门店生成多条门店商品 |
goods_name |
string |
"合味道泡面" |
商品名称,业务展示字段 |
goods_category_id |
int |
2791941988405125 |
一级分类 ID,对应分类树主键,与 oneCategoryName 搭配 |
goods_second_category_id |
int |
2793236829620037 |
二级分类 ID,对应分类树子节点,与 twoCategoryName 搭配 |
oneCategoryName |
string |
"零食" |
一级分类名称,与 goods_category_id 一一对应 |
twoCategoryName |
string |
"面" |
二级分类名称,与 goods_second_category_id 对应 |
unit |
string |
"桶" |
计量单位。常见值:包、瓶、个、份、根、盒、杯、桶、盘、支等 |
goods_cover |
string |
"https://oss.ficoo.vip/..." |
商品图片 URL(OSS 存储) |
pinyin_initial |
string |
"HWDPM,GWDPM" |
拼音首字母/助记码,多别名逗号分隔,用于前台拼音检索 |
goods_bar_code |
string |
"" |
商品条形码(EAN 等),当前门店未配置,全部为空 |
4.3 库存与数量
| 字段 |
类型 |
示例 |
说明 |
stock |
int |
18 |
当前可用库存数量(以 unit 为单位)。可为 0(售罄)或很大(虚拟库存) |
stock_A |
int |
0 |
副单位库存数量(双单位场景如箱/瓶)。当前门店未启用,全部为 0 |
batch_stock_quantity |
int |
43 |
当前批次库存数量(主单位)。有成本价时 batch_stock_quantity × cost_price ≈ provisional_total_cost |
sale_num |
int |
104 |
当前统计口径下的销售数量(总销量),与 total_sales 一致 |
total_sales |
int |
104 |
累计销售数量。当前与 sale_num 相同,字段保留了区间销量 vs 历史总销量的扩展空间 |
safe_stock |
int |
0 |
安全库存量(阈值),低于此值可提示补货。当前未设置,全部为 0 |
4.4 价格、成本与金额
| 字段 |
类型 |
示例 |
说明 |
sale_price |
float |
12.0 |
标准销售价(挂牌价),单位:元(人民币)。实际结算可能打折 |
cost_price |
float |
0.0 |
成本价(单件成本),单位:元。部分为 0(未录入),部分有值如 1.788 |
cost_price_type |
int |
1 |
成本价类型:1 = 固定成本价(手工维护),2 = 动态成本价(按采购单平均价结转) |
provisional_total_cost |
float |
0.0 |
暂估总成本,单位:元。有成本价时 ≈ batch_stock_quantity × cost_price |
total_purchase_cost |
float |
0.0 |
总采购成本,单位:元。当前与 provisional_total_cost 相等,字段为后续结算/重算成本保留空间 |
min_discount_price |
float |
7.0 |
最低允许成交价(限价),单位:元。0 表示不设置限价。收银改价时系统校验不低于此值 |
able_discount |
int |
1 |
是否允许参与折扣:1 = 允许。当前全部为 1 |
4.5 时间与销售表现
| 字段 |
类型 |
示例 |
说明 |
create_time |
string |
"2025-07-16 11:52:51" |
门店商品档案创建时间 |
update_time |
string |
"2025-11-09 07:23:47" |
最后修改时间(价格调整、状态变更等) |
days_available |
int |
13 |
商品在架天数/可售天数。0 表示刚建档/刚启用 |
average_monthly_sales |
float |
1.32 |
平均月销量(件/月),辅助补货/品类管理的历史行为指标 |
4.6 状态与开关
| 字段 |
类型 |
示例 |
说明 |
goods_state |
int |
1 |
商品基本状态:1 = 正常,2 = 特殊状态(新建/停售/未完整启用,通常 stock=0、days_available=0) |
audit_status |
int |
2 |
审核状态:2 = 审核通过。其他可能值:0 = 待提交,1 = 待审核,3 = 不通过 |
enable_status |
int |
1 |
启用状态:1 = 启用,2 = 停用(未出现) |
send_state |
int |
1 |
上架/可售状态:1 = 可销售/可下单 |
sale_channel |
int |
1 |
销售渠道:1 = 门店线下渠道 |
is_warehousing |
int |
1 |
是否纳入库存管理:1 = 参与库存管理 |
is_delete |
int |
0 |
逻辑删除标志:0 = 未删除,1 = 已删除 |
freeze |
int |
0 |
冻结状态:0 = 未冻结。非 0 可能表示"锁库存""禁止出库" |
forbid_sell_status |
int |
1 |
禁止销售状态:1 = 未禁止(允许销售),2 = 被禁止 |
able_site_transfer |
int |
2 |
是否允许跨门店调拨:2 = 不允许(绝大多数),0 = 未配置 |
custom_label_type |
int |
2 |
自定义标签类型:2 = 使用自定义标签/分类 |
option_required |
int |
1 |
是否需要选择规格/选项:1 = 不要求(单规格商品) |
4.7 其他辅助
| 字段 |
类型 |
示例 |
说明 |
remark |
string |
"" |
商品备注(口味说明、供应商等),当前未使用 |
sort |
int |
100 |
排序权重,用于前端商品列表展示排序 |
五、响应样例(单条记录)
{
"siteName": "朗朗桌球",
"oneCategoryName": "零食",
"twoCategoryName": "面",
"id": 2793025851560005,
"tenant_goods_id": 2792178593255301,
"site_id": 2790685415443269,
"tenant_id": 2790683160709957,
"goods_name": "合味道泡面",
"goods_cover": "https://oss.ficoo.vip/admin/8M1WM7_1753204221337.jpg",
"goods_state": 1,
"goods_category_id": 2791941988405125,
"unit": "桶",
"sale_num": 104,
"cost_price": 0.0,
"provisional_total_cost": 0.0,
"total_purchase_cost": 0.0,
"batch_stock_quantity": 43,
"sale_price": 12.0,
"stock_A": 0,
"stock": 18,
"create_time": "2025-07-16 11:52:51",
"is_delete": 0,
"custom_label_type": 2,
"goods_second_category_id": 2793236829620037,
"total_sales": 104,
"remark": "",
"audit_status": 2,
"update_time": "2025-11-09 07:23:47",
"pinyin_initial": "HWDPM,GWDPM",
"goods_bar_code": "",
"able_discount": 1,
"min_discount_price": 7.0,
"sort": 100,
"freeze": 0,
"days_available": 13,
"average_monthly_sales": 1.32,
"safe_stock": 0,
"send_state": 1,
"enable_status": 1,
"sale_channel": 1,
"able_site_transfer": 2,
"cost_price_type": 1,
"forbid_sell_status": 1,
"is_warehousing": 1,
"option_required": 1
}
六、跨表关联
与租户商品档案(tenant_goods_master)
| 本表字段 |
关联表字段 |
说明 |
tenant_goods_id |
id |
门店商品 → 品牌级商品。一个全局商品可在多个门店生成多条门店商品 |
goods_category_id |
goods_category_id |
一级分类 ID 一致 |
goods_second_category_id |
goods_second_category_id |
二级分类 ID 一致 |
与门店销售记录(store_goods_sales_records)
| 本表字段 |
关联表字段 |
说明 |
id |
site_goods_id |
门店商品主键 → 销售明细中的商品 ID |
tenant_goods_id |
tenant_goods_id |
全局商品 ID 一致 |
本表是维表,销售记录是事实表。
与库存汇总(goods_stock_summary)
| 本表字段 |
关联表字段 |
说明 |
id |
siteGoodsId |
门店商品 ID |
goods_category_id |
goodsCategoryId |
一级分类 ID |
goods_second_category_id |
goodsCategorySecondId |
二级分类 ID |
unit |
goodsUnit |
计量单位 |
与库存变动(goods_stock_movements)
| 本表字段 |
关联表字段 |
说明 |
id |
siteGoodsId |
门店商品 ID |
goods_category_id |
goodsCategoryId |
一级分类 ID |
与商品分类树(stock_goods_category_tree)
| 本表字段 |
关联表字段 |
说明 |
goods_category_id |
id(一级节点) |
一级分类主键 |
goods_second_category_id |
id(二级节点) |
二级分类主键 |
本表提供 stock、batch_stock_quantity、成本等某一时刻的快照,库存变动表是全量出入库记录,两者互相补充。