592 lines
15 KiB
Markdown
592 lines
15 KiB
Markdown
# 租户商品主数据(QueryTenantGoods)
|
||
|
||
> 自动生成于 2026-02-13 | 数据来源:本地 JSON 样本
|
||
|
||
## 基本信息
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 接口路径 | `TenantGoods/QueryTenantGoods` |
|
||
| 完整 URL | `https://pc.ficoo.vip/apiprod/admin/v1/TenantGoods/QueryTenantGoods` |
|
||
| 请求方法 | `POST` |
|
||
| Content-Type | `application/json` |
|
||
| 鉴权方式 | Bearer Token(`Authorization` 头) |
|
||
| ODS 对应表 | `tenant_goods_master` |
|
||
| 分页方式 | `page` + `limit`(最大 100) |
|
||
| 时间范围 | 不需要 |
|
||
|
||
## 请求参数
|
||
|
||
| 参数名 | 类型 | 示例值 | 说明 |
|
||
|--------|------|--------|------|
|
||
| `costPriceType` | int | `0` | 成本价类型(0=全部) |
|
||
| `ableDiscount` | int | `-1` | 是否可折扣(-1=全部) |
|
||
| `tenantGoodsStatus` | int | `0` | 商品状态(0=全部) |
|
||
| `page` | int | `1` | 页码(从 1 开始) |
|
||
| `limit` | int | `100` | 每页条数(最大 100) |
|
||
|
||
## 响应字段(共 31 个)
|
||
|
||
| # | 字段名 | 类型 | 示例值 |
|
||
|---|--------|------|--------|
|
||
| 1 | `categoryName` | string | '饮料' |
|
||
| 2 | `isInSite` | bool | False |
|
||
| 3 | `commodityCode` | array | ['10000028'] |
|
||
| 4 | `id` | int | 2791925230096261 |
|
||
| 5 | `tenant_id` | int | 2790683160709957 |
|
||
| 6 | `goods_name` | string | '东方树叶' |
|
||
| 7 | `goods_cover` | string | 'https://oss.ficoo.vip/admin/ZwS8fj_1753175129443.jpg' |
|
||
| 8 | `goods_state` | int | 1 |
|
||
| 9 | `goods_category_id` | int | 2790683528350539 |
|
||
| 10 | `unit` | string | '瓶' |
|
||
| 11 | `supplier_id` | int | 0 |
|
||
| 12 | `create_time` | string | '2025-07-15 17:13:15' |
|
||
| 13 | `is_delete` | int | 0 |
|
||
| 14 | `goods_second_category_id` | int | 2790683528350540 |
|
||
| 15 | `cost_price` | float | 0.0 |
|
||
| 16 | `market_price` | float | 8.0 |
|
||
| 17 | `pinyin_initial` | string | 'DFSY,DFSX' |
|
||
| 18 | `goods_bar_code` | string | '' |
|
||
| 19 | `able_discount` | int | 1 |
|
||
| 20 | `min_discount_price` | float | 0.0 |
|
||
| 21 | `commodity_code` | string | '10000028' |
|
||
| 22 | `goods_number` | string | '1' |
|
||
| 23 | `update_time` | string | '2025-10-29 23:51:38' |
|
||
| 24 | `cost_price_type` | int | 1 |
|
||
| 25 | `remark_name` | string | '' |
|
||
| 26 | `sale_channel` | int | 1 |
|
||
| 27 | `able_site_transfer` | int | 2 |
|
||
| 28 | `common_sale_royalty` | int | 0 |
|
||
| 29 | `point_sale_royalty` | int | 0 |
|
||
| 30 | `is_warehousing` | int | 1 |
|
||
| 31 | `out_goods_id` | int | 0 |
|
||
|
||
## 新增字段(相对本地 JSON 样本)
|
||
|
||
以下字段在最新 API 响应中出现,但本地 JSON 样本中不存在:
|
||
|
||
| 字段名 | 类型 |
|
||
|--------|------|
|
||
| `not_sale` | int |
|
||
|
||
## 详细字段分析
|
||
|
||
> 以下内容迁移自旧版 `tenant_goods_master-Analysis.md`,包含字段的业务含义、枚举值、跨表关联等详细说明。
|
||
|
||
二、单条商品档案记录字段说明(31 个字段)
|
||
|
||
为便于理解,按逻辑分组说明。
|
||
|
||
1. 主键与租户维度字段
|
||
|
||
id
|
||
|
||
类型:int
|
||
|
||
含义:商品档案主键 ID,唯一标识一条商品。
|
||
|
||
作用:作为其他业务表(销售明细、库存流水、门店商品表等)的外键,通常以 tenant_goods_id 或类似字段出现。
|
||
|
||
tenant_id
|
||
|
||
类型:int
|
||
|
||
当前值:全表 156 条记录均为同一个值。
|
||
|
||
含义:租户/品牌 ID。
|
||
|
||
作用:和其它 JSON 中的 tenant_id / tenantId 一致,用于区分不同商户(本次数据只包含同一租户)。
|
||
|
||
2. 分类维度字段
|
||
|
||
categoryName
|
||
|
||
类型:string
|
||
|
||
含义:商品一级分类名称(业务可读)。
|
||
|
||
取值情况:
|
||
|
||
共 14 种分类名称,出现频次较高的包括:
|
||
|
||
零食(43 条)
|
||
|
||
饮料(34 条)
|
||
|
||
香烟(16 条)
|
||
|
||
其他2(16 条)
|
||
|
||
雪糕(13 条)
|
||
|
||
酒水、球杆、小吃、面、槟榔 等。
|
||
|
||
说明:纯展示用名称,真实关联通过下面的 goods_category_id / goods_second_category_id 完成。
|
||
|
||
goods_category_id
|
||
|
||
类型:int
|
||
|
||
含义:商品一级分类 ID。
|
||
|
||
取值情况:
|
||
|
||
共 9 个不同 ID,例如:
|
||
|
||
一个 ID 对应 46 条、一个对应 45 条、其他若干个对应 10 条以内。
|
||
|
||
特征:
|
||
|
||
明显是“分类维度”的主键,和某个“分类表”关联(本次导出中未单独给出分类表)。
|
||
|
||
各 ID 与 categoryName 一一对应(同一 ID 对应的名称相同)。
|
||
|
||
goods_second_category_id
|
||
|
||
类型:int
|
||
|
||
含义:商品二级分类 ID。
|
||
|
||
取值情况:
|
||
|
||
共 14 个不同 ID,与一级分类进一步细分。
|
||
|
||
分布上,一般跟 categoryName 的细分类对应,如“饮料”下的不同子类。
|
||
|
||
使用场景:
|
||
|
||
在销售明细/统计报表中,用于按二级分类汇总。
|
||
|
||
小结:
|
||
|
||
categoryName 是分类名称展示字段;
|
||
|
||
goods_category_id / goods_second_category_id 是分类 ID,用于与“商品分类维表”关联;
|
||
|
||
其它业务 JSON(例如商品销售明细)中也出现这两个字段,用来做分类维度联表。
|
||
|
||
3. 商品基础信息字段
|
||
|
||
goods_name
|
||
|
||
类型:string
|
||
|
||
含义:商品名称(前台展示名称)。
|
||
|
||
特征:
|
||
|
||
156 条记录全唯一,例如“东方树叶”“红烧牛肉面”“百威235毫升”“雪碧”“双中支中华”等。
|
||
|
||
用途:
|
||
|
||
POS 前台展示、票据打印等。
|
||
|
||
remark_name
|
||
|
||
类型:string
|
||
|
||
当前值:全部为 ""(空字符串)。
|
||
|
||
含义(从命名推断):商品备注名/别名,通常用来配置简写或特殊显示名称。
|
||
|
||
当前门店尚未使用该字段,字段设计为将来扩展预留。
|
||
|
||
goods_number
|
||
|
||
类型:string
|
||
|
||
含义:商品内部编码(自定义货号/系统货号)。
|
||
|
||
特征:
|
||
|
||
所有 156 条记录均不重复,例如 "1", "2", "3", "4", ...,还有 "10", "11" 等。
|
||
|
||
使用场景:
|
||
|
||
作为内部手工输入编码、或导入导出时的匹配字段。
|
||
|
||
pinyin_initial
|
||
|
||
类型:string
|
||
|
||
含义:拼音首字母/助记码。
|
||
|
||
特征:
|
||
|
||
156 条记录全不同,如 'DFSY,DFSX', 'HSNRM,GSNRM', 'SRC', 'BW235HS', 'SP' 等;
|
||
|
||
格式有的是拼音首字母组合,有的是字母+数字混合,说明可能用于多关键字检索。
|
||
|
||
用途:
|
||
|
||
前台“拼音码搜索”用的检索字段。
|
||
|
||
unit
|
||
|
||
类型:string
|
||
|
||
含义:计量单位。
|
||
|
||
取值(共 12 种左右):
|
||
|
||
常见:包、瓶、个、份、根、盒、杯、桶、盘、支 等。
|
||
|
||
用途:
|
||
|
||
决定库存单位、销售单位(例如“按瓶卖”还是“按包卖”)。
|
||
|
||
goods_cover
|
||
|
||
类型:string
|
||
|
||
含义:商品封面图片 URL 地址。
|
||
|
||
特征:
|
||
|
||
共 123 个不同 URL,其中部分同一商品系列共享一张图片(例如某个 URL 出现 34 次)。
|
||
|
||
用途:
|
||
|
||
用于前端展示商品图片。
|
||
|
||
goods_bar_code
|
||
|
||
类型:string
|
||
|
||
当前值:全部为 ""(空)。
|
||
|
||
含义:商品条码(EAN 等),目前未维护。
|
||
|
||
说明:
|
||
|
||
字段设计上是用来对接扫码枪的,但当前门店商品条码没有录入。
|
||
|
||
out_goods_id
|
||
|
||
类型:int
|
||
|
||
当前值:全部为 0。
|
||
|
||
含义(推测):外部系统商品 ID(对接第三方平台使用,如外卖、线上商城等)。
|
||
|
||
当前未启用外部对接,因此全部为 0。
|
||
|
||
commodity_code
|
||
|
||
类型:string
|
||
|
||
含义:商品编码(通常为对外商品编码或条码)。
|
||
|
||
特征:
|
||
|
||
共 35 种取值,其中:
|
||
|
||
"10000" 出现 85 条;
|
||
|
||
"100000" 出现 35 条;
|
||
|
||
还有 "100017", "100026", "0000000", "10000028", "10000002" 等。
|
||
|
||
说明:
|
||
|
||
多条不同 id 的商品可以共用同一个 commodity_code,说明它是某种“系列编码”或“外部编码”而非商品主键。
|
||
|
||
commodityCode
|
||
|
||
类型:list(列表内只有一个字符串元素)
|
||
|
||
示例:['10000'],['100000'] 等。
|
||
|
||
含义:
|
||
|
||
与 commodity_code 是同一信息的数组形式(冗余存储),便于支持一个商品对应多个编码的场景。
|
||
|
||
当前实际使用中,一条记录只有一个编码,因此列表长度均为 1。
|
||
|
||
4. 价格与折扣相关字段
|
||
|
||
market_price
|
||
|
||
类型:float
|
||
|
||
含义:商品标价 / 售价(标准销售单价)。
|
||
|
||
特征:
|
||
|
||
共 45 个不同价格,常见价格如 2、5、6、8、10、12、15、18、20、28 等。
|
||
|
||
用途:
|
||
|
||
POS 系统默认销售价格,结算时的基础价格。
|
||
|
||
min_discount_price
|
||
|
||
类型:float
|
||
|
||
含义:该商品允许售卖的最低价格(底价)。
|
||
|
||
特征:
|
||
|
||
共 41 个不同价格,分布包括 0.0(32 条)、6、4、15、7、8、5、10、3、28 等。
|
||
|
||
说明:
|
||
|
||
0.0 可能表示“未设置底价”或“按系统默认规则”。
|
||
|
||
cost_price
|
||
|
||
类型:float
|
||
|
||
含义:成本价格。
|
||
|
||
特征:
|
||
|
||
大部分为 0.0(152 条),少数为 2.0, 2.5, 3.0 等。
|
||
|
||
说明:
|
||
|
||
当前门店对绝大多数商品未录入成本,仅为少数商品录入了成本价。
|
||
|
||
该字段用于库存核算、成本统计等场景(本次不做金额分析,仅说明结构)。
|
||
|
||
cost_price_type
|
||
|
||
类型:int(枚举)
|
||
|
||
取值:
|
||
|
||
1:149 条
|
||
|
||
2:7 条
|
||
|
||
含义(推测):
|
||
|
||
不同的成本价格来源或计算方式,如:
|
||
|
||
1:手工录入成本;
|
||
|
||
2:按最近进货价/加权平均价等自动计算。
|
||
|
||
具体含义需参考系统字典,但可以确定是“成本类型枚举”。
|
||
|
||
able_discount
|
||
|
||
类型:int(枚举)
|
||
|
||
当前值:全部为 1
|
||
|
||
含义(推测):是否允许参与折扣/打折。
|
||
|
||
1:允许折扣;
|
||
|
||
其它值(当前未出现)可能代表“禁止打折”。
|
||
|
||
当前所有商品均标记为可打折。
|
||
|
||
sale_channel
|
||
|
||
类型:int(枚举)
|
||
|
||
当前值:全部为 1
|
||
|
||
含义(推测):销售渠道类型,如“门店堂食/线下零售/线上小程序”等的一种编码。
|
||
|
||
现有数据只有一个值,说明本门店目前仅通过一种渠道销售这些商品。
|
||
|
||
5. 库存 / 仓储与门店相关字段
|
||
|
||
is_warehousing
|
||
|
||
类型:int(枚举)
|
||
|
||
当前值:全部为 1
|
||
|
||
含义(推测):是否启用库存管理。
|
||
|
||
1:该商品纳入库存管理;
|
||
|
||
0:不纳入库存管理(例如纯虚拟商品)。
|
||
|
||
当前所有商品都处于“有库存管理”的状态。
|
||
|
||
isInSite
|
||
|
||
类型:bool
|
||
|
||
当前值:全部为 False
|
||
|
||
含义(从命名推测):是否在当前门店启用/上架。
|
||
|
||
现象:
|
||
|
||
虽然导出指定了某个门店,但这里全部为 False,说明这个文件更偏向“租户级商品库视角”,而不是“门店已上架商品视角”;
|
||
|
||
具体含义可能是“是否已同步到某个特定门店”,当前视图可能没启用这个标志。
|
||
|
||
able_site_transfer
|
||
|
||
类型:int(枚举)
|
||
|
||
取值:
|
||
|
||
2:155 条
|
||
|
||
0:1 条
|
||
|
||
含义(推测):
|
||
|
||
字面意思是“是否允许门店间调拨/门店级操作”:
|
||
|
||
2:允许(或默认可调拨);
|
||
|
||
0:不允许。
|
||
|
||
值使用 2 而非 1,说明内部枚举可能是多态(例如 1=未配置、2=允许、0=禁止),具体需结合系统配置才可精准解释。
|
||
|
||
当前有一条商品配置为 0,与其他商品行为可能存在差异。
|
||
|
||
goods_state
|
||
|
||
类型:int(枚举)
|
||
|
||
当前值:全部为 1
|
||
|
||
含义(推测):商品状态(上架/下架等)。
|
||
|
||
1:正常/上架;
|
||
|
||
其他值(本数据未出现)可能表示下架、停用等状态。
|
||
|
||
6. 佣金 / 提成 / 积分相关字段
|
||
|
||
common_sale_royalty
|
||
|
||
类型:int
|
||
|
||
当前值:全部为 0
|
||
|
||
含义(推测):普通销售提成比例或提成金额的配置字段。
|
||
|
||
当前门店未在商品档案上配置员工提成规则,全部为 0。
|
||
|
||
point_sale_royalty
|
||
|
||
类型:int
|
||
|
||
当前值:全部为 0
|
||
|
||
含义(推测):积分销售提成/积分赠送规则相关配置。
|
||
|
||
当前同样未启用。
|
||
|
||
说明:
|
||
这两个字段与促销、积分、提成等高级功能相关,当前仅作为预留字段存在,未实际配置。
|
||
|
||
7. 供应商相关字段
|
||
|
||
supplier_id
|
||
|
||
类型:int
|
||
|
||
当前值:全部为 0
|
||
|
||
含义:供应商 ID,用于关联到供应商档案。
|
||
|
||
当前所有商品都未挂接具体供应商(或门店未使用供应链管理模块)。
|
||
|
||
8. 时间与删除状态字段
|
||
|
||
create_time
|
||
|
||
类型:string(时间)
|
||
|
||
格式:YYYY-MM-DD HH:MM:SS
|
||
|
||
含义:商品档案创建时间。
|
||
|
||
特征:
|
||
|
||
156 条记录全部有值,全部唯一。
|
||
|
||
update_time
|
||
|
||
类型:string 或 null
|
||
|
||
含义:商品档案最近一次修改时间。
|
||
|
||
分布:
|
||
|
||
null(或 None):28 条,表示自创建以来未被修改;
|
||
|
||
其余为不同时刻的更新时间。
|
||
|
||
用途:
|
||
|
||
用于增量同步、数据对账等(只需要处理 update_time 大于某个时间点的记录)。
|
||
|
||
is_delete
|
||
|
||
类型:int(枚举)
|
||
|
||
当前值:全部为 0
|
||
|
||
含义:逻辑删除标志。
|
||
|
||
0:未删除(有效商品);
|
||
|
||
1:已删除(逻辑删除,保留档案但前台不再展示)。
|
||
|
||
当前所有商品均处于“未删除”状态。
|
||
|
||
三、结构关系与设计线索(从字段/结构角度,不做金额或经营分析)
|
||
|
||
从 商品档案.json 的字段设计,可以看出以下几点与系统整体结构密切相关的线索:
|
||
|
||
“租户级商品库”与“门店级商品视图”的区分
|
||
|
||
tenant_id 存在,但没有 site_id 字段,且 isInSite 全为 False,is_warehousing 全为 1。
|
||
|
||
说明这一份是 租户维度的商品主档(Brand/集团统一商品列表),而不是某个门店独立维护的商品清单。
|
||
|
||
门店层的启用/下架、门店特有售价等,很可能在另一张“门店商品表”(比如带 siteId 的 orderGoods 或 siteGoods 表)中维护,这份只是底层档案。
|
||
|
||
与“商品销售明细/门店销售记录”的关联点
|
||
|
||
在另一个 JSON 中(门店商品销售明细),出现了 oneCategoryName, twoCategoryName, goods_category_id, goods_second_category_id 等字段。
|
||
|
||
可以推断:
|
||
|
||
销售明细中用 tenant_goods_id 或类似字段引用本表的 id;
|
||
|
||
用 goods_category_id / goods_second_category_id 建立分类维度统计;
|
||
|
||
goods_name、commodity_code、unit 等在销售明细中会“快照冗余”,方便查询和展示。
|
||
|
||
与“库存/仓储模块”的接口设计
|
||
|
||
is_warehousing 全为 1,说明所有商品都被纳入库存管理范围;
|
||
|
||
cost_price、cost_price_type、supplier_id 等字段,是典型的库存/进销存用途字段;
|
||
|
||
这意味着:另有库存流水 JSON(如入库单、出库单、盘点记录等),会通过商品 id(或 out_goods_id)与本表关联。
|
||
|
||
对接外部系统和扫码收银的预留
|
||
|
||
goods_bar_code 虽然目前为空,但字段设计表明系统支持条码扫描销售;
|
||
|
||
out_goods_id 预留了外部商品 ID,对接第三方平台(外卖、统一商品库等)时会使用;
|
||
|
||
commodity_code/commodityCode 强调了一个商品可以有多种编码的可能(当前只有单元素列表)。
|
||
|
||
可扩展的促销与提成机制
|
||
|
||
虽然 common_sale_royalty、point_sale_royalty 当前都为 0,但和“助教流水”“销售记录”中的推广/提成字段组合起来,可以构成统一的提成规则体系;
|
||
|
||
able_discount、min_discount_price、sale_channel 这几个字段一起,构成了商品在不同渠道、不同活动下允许打折的边界控制。
|
||
|
||
分类维度的稳定主数据角色
|
||
|
||
categoryName + goods_category_id + goods_second_category_id 说明分类层级已经固化:至少支持“两级分类”;
|
||
|
||
这些分类 ID 在多张表中反复出现(销售明细、可能的库存统计视图等),构成统一的“商品分类维度表”。
|