Files
ZQYY.FQ-ETL/docs/api-reference/endpoints/tenant_goods_master.md

15 KiB
Raw Permalink Blame History

租户商品主数据QueryTenantGoods

自动生成于 2026-02-13 | 数据来源:本地 JSON 样本

基本信息

属性
接口路径 TenantGoods/QueryTenantGoods
完整 URL https://pc.ficoo.vip/apiprod/admin/v1/TenantGoods/QueryTenantGoods
请求方法 POST
Content-Type application/json
鉴权方式 Bearer TokenAuthorization 头)
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 一致,用于区分不同商户(本次数据只包含同一租户)。

  1. 分类维度字段

categoryName

类型string

含义:商品一级分类名称(业务可读)。

取值情况:

共 14 种分类名称,出现频次较高的包括:

零食43 条)

饮料34 条)

香烟16 条)

其他216 条)

雪糕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例如商品销售明细中也出现这两个字段用来做分类维度联表。

  1. 商品基础信息字段

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。

  1. 价格与折扣相关字段

market_price

类型float

含义:商品标价 / 售价(标准销售单价)。

特征:

共 45 个不同价格,常见价格如 2、5、6、8、10、12、15、18、20、28 等。

用途:

POS 系统默认销售价格,结算时的基础价格。

min_discount_price

类型float

含义:该商品允许售卖的最低价格(底价)。

特征:

共 41 个不同价格,分布包括 0.032 条、6、4、15、7、8、5、10、3、28 等。

说明:

0.0 可能表示“未设置底价”或“按系统默认规则”。

cost_price

类型float

含义:成本价格。

特征:

大部分为 0.0152 条),少数为 2.0, 2.5, 3.0 等。

说明:

当前门店对绝大多数商品未录入成本,仅为少数商品录入了成本价。

该字段用于库存核算、成本统计等场景(本次不做金额分析,仅说明结构)。

cost_price_type

类型int枚举

取值:

1149 条

27 条

含义(推测):

不同的成本价格来源或计算方式,如:

1手工录入成本

2按最近进货价/加权平均价等自动计算。

具体含义需参考系统字典,但可以确定是“成本类型枚举”。

able_discount

类型int枚举

当前值:全部为 1

含义(推测):是否允许参与折扣/打折。

1允许折扣

其它值(当前未出现)可能代表“禁止打折”。

当前所有商品均标记为可打折。

sale_channel

类型int枚举

当前值:全部为 1

含义(推测):销售渠道类型,如“门店堂食/线下零售/线上小程序”等的一种编码。

现有数据只有一个值,说明本门店目前仅通过一种渠道销售这些商品。

  1. 库存 / 仓储与门店相关字段

is_warehousing

类型int枚举

当前值:全部为 1

含义(推测):是否启用库存管理。

1该商品纳入库存管理

0不纳入库存管理例如纯虚拟商品

当前所有商品都处于“有库存管理”的状态。

isInSite

类型bool

当前值:全部为 False

含义(从命名推测):是否在当前门店启用/上架。

现象:

虽然导出指定了某个门店,但这里全部为 False说明这个文件更偏向“租户级商品库视角”而不是“门店已上架商品视角”

具体含义可能是“是否已同步到某个特定门店”,当前视图可能没启用这个标志。

able_site_transfer

类型int枚举

取值:

2155 条

01 条

含义(推测):

字面意思是“是否允许门店间调拨/门店级操作”:

2允许或默认可调拨

0不允许。

值使用 2 而非 1说明内部枚举可能是多态例如 1=未配置、2=允许、0=禁止),具体需结合系统配置才可精准解释。

当前有一条商品配置为 0与其他商品行为可能存在差异。

goods_state

类型int枚举

当前值:全部为 1

含义(推测):商品状态(上架/下架等)。

1正常/上架;

其他值(本数据未出现)可能表示下架、停用等状态。

  1. 佣金 / 提成 / 积分相关字段

common_sale_royalty

类型int

当前值:全部为 0

含义(推测):普通销售提成比例或提成金额的配置字段。

当前门店未在商品档案上配置员工提成规则,全部为 0。

point_sale_royalty

类型int

当前值:全部为 0

含义(推测):积分销售提成/积分赠送规则相关配置。

当前同样未启用。

说明: 这两个字段与促销、积分、提成等高级功能相关,当前仅作为预留字段存在,未实际配置。

  1. 供应商相关字段

supplier_id

类型int

当前值:全部为 0

含义:供应商 ID用于关联到供应商档案。

当前所有商品都未挂接具体供应商(或门店未使用供应链管理模块)。

  1. 时间与删除状态字段

create_time

类型string时间

格式YYYY-MM-DD HH:MM:SS

含义:商品档案创建时间。

特征:

156 条记录全部有值,全部唯一。

update_time

类型string 或 null

含义:商品档案最近一次修改时间。

分布:

null或 None28 条,表示自创建以来未被修改;

其余为不同时刻的更新时间。

用途:

用于增量同步、数据对账等(只需要处理 update_time 大于某个时间点的记录)。

is_delete

类型int枚举

当前值:全部为 0

含义:逻辑删除标志。

0未删除有效商品

1已删除逻辑删除保留档案但前台不再展示

当前所有商品均处于“未删除”状态。

三、结构关系与设计线索(从字段/结构角度,不做金额或经营分析)

从 商品档案.json 的字段设计,可以看出以下几点与系统整体结构密切相关的线索:

“租户级商品库”与“门店级商品视图”的区分

tenant_id 存在,但没有 site_id 字段,且 isInSite 全为 Falseis_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 在多张表中反复出现(销售明细、可能的库存统计视图等),构成统一的“商品分类维度表”。