# store_goods_master 门店商品主表

> 生成时间：2026-02-14

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | ods |
| 表名 | store_goods_master |
| 主键 | id, content_hash |
| 数据来源 | export/test-json-doc/store_goods_master.json |
| 说明 | 门店商品主数据 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 说明 |
|------|--------|------|------|------|
| 1 | id | BIGINT | NO | 门店商品 ID，门店维度的商品主键 |
| 2 | tenant_id | BIGINT | YES | 租户/品牌 ID |
| 3 | site_id | BIGINT | YES | 门店 ID |
| 4 | sitename | TEXT | YES | （待补充） |
| 5 | tenant_goods_id | BIGINT | YES | 租户/品牌维度的商品 ID，相当于“全局商品 ID” |
| 6 | goods_name | TEXT | YES | 商品名称，例如“合味道泡面”“地道肠”“麻将房茶位费”等 |
| 7 | goods_bar_code | TEXT | YES | 商品条形码（如 EAN-13 编码），用于扫码销售 |
| 8 | goods_category_id | BIGINT | YES | 商品一级分类 ID |
| 9 | goods_second_category_id | BIGINT | YES | 商品二级分类 ID |
| 10 | onecategoryname | TEXT | YES | （待补充） |
| 11 | twocategoryname | TEXT | YES | （待补充） |
| 12 | unit | TEXT | YES | 商品计量单位（销售单位） |
| 13 | sale_price | NUMERIC(18,4) | YES | 商品标准销售价（挂牌价），单位为元 |
| 14 | cost_price | NUMERIC(18,4) | YES | 商品成本价（单件成本） |
| 15 | cost_price_type | INTEGER | YES | 1 代表使用“固定成本价”（手工维护的 cost_price），provisional_total_cost 按“数量 × cost_price”算 |
| 16 | min_discount_price | NUMERIC(18,4) | YES | 最低允许成交价（限价） |
| 17 | safe_stock | NUMERIC(18,4) | YES | 安全库存量（阈值），低于该值时系统可以提示补货 |
| 18 | stock | NUMERIC(18,4) | YES | 当前可用库存数量（以 unit 为单位） |
| 19 | stock_a | NUMERIC(18,4) | YES | （待补充） |
| 20 | sale_num | NUMERIC(18,4) | YES | 在当前统计口径下的销售数量（总销量，单位同 unit） |
| 21 | total_purchase_cost | NUMERIC(18,4) | YES | 总采购成本，单位为元 |
| 22 | total_sales | NUMERIC(18,4) | YES | 累计销售数量 |
| 23 | average_monthly_sales | NUMERIC(18,4) | YES | 平均月销量（件/月），根据某个统计周期内的销售数据折算而来 |
| 24 | batch_stock_quantity | NUMERIC(18,2) | YES | 当前“批次”的库存数量（主单位） |
| 25 | days_available | INTEGER | YES | 商品“在架天数”或“可售天数”，大致等于当前时间减去首次上架时间 |
| 26 | provisional_total_cost | NUMERIC(18,2) | YES | 暂估总成本，单位为元 |
| 27 | enable_status | INTEGER | YES | 控制商品档案是否参与任何业务（库存、销售等） |
| 28 | audit_status | INTEGER | YES | 观察值：全部为 2 |
| 29 | goods_state | INTEGER | YES | 来自 JSON 导出的原始字段，用于保留业务取值 |
| 30 | is_delete | INTEGER | YES | 逻辑删除标志 |
| 31 | is_warehousing | INTEGER | YES | 是否纳入库存管理 |
| 32 | able_discount | INTEGER | YES | 是否允许参与折扣 |
| 33 | able_site_transfer | INTEGER | YES | 表示是否允许跨门店调拨或跨站点共享库存 |
| 34 | forbid_sell_status | INTEGER | YES | 观察值：全部为 1 |
| 35 | freeze | INTEGER | YES | （待补充） |
| 36 | send_state | INTEGER | YES | 观察值：全部为 1 |
| 37 | custom_label_type | INTEGER | YES | 自定义标签类型 |
| 38 | option_required | INTEGER | YES | 是否需要在销售时选择规格/选项 |
| 39 | sale_channel | INTEGER | YES | 销售渠道类型 |
| 40 | sort | INTEGER | YES | 排序权重，用于前端商品列表展示时的排版顺序，数值越小/越大哪个优先，具体规则看系统设定（一般是数值越小排序越靠前） |
| 41 | remark | TEXT | YES | 商品备注（可以写口味说明、供应商、注意事项等） |
| 42 | pinyin_initial | TEXT | YES | 商品名称的拼音首字母缩写，有时多个别名用逗号分隔 |
| 43 | goods_cover | TEXT | YES | 商品图片 URL（如 OSS 对象存储地址），用于前端展示商品图片 |
| 44 | create_time | TIMESTAMP | YES | 门店商品档案创建时间（商品在门店建立档案的时间点） |
| 45 | update_time | TIMESTAMP | YES | 最后一次修改该商品档案的时间（包括价格调整、状态变更等） |
| 46 | payload | JSONB | NO | ETL 元数据：完整原始 JSON 记录快照，用于回溯与二次解析 |
| 47 | source_file | TEXT | YES | ETL 元数据：原始导出文件名，用于数据追溯 |
| 48 | source_endpoint | TEXT | YES | ETL 元数据：采集来源（接口/文件路径），用于数据追溯 |
| 49 | fetched_at | TIMESTAMPTZ | YES | ETL 元数据：采集/入库时间戳，用于口径对齐与增量处理 |
| 50 | content_hash | TEXT | NO | ETL 元数据：对业务字段计算 SHA256，用于变更检测与去重 |
| 51 | commodity_code | TEXT | YES | 商品编码 |
| 52 | not_sale | INTEGER | YES | （待补充） |

## 使用说明

```sql
-- 查询最新入库的记录
SELECT * FROM ods.store_goods_master
ORDER BY fetched_at DESC
LIMIT 10;
```

```sql
-- 按业务主键查询某条记录的所有版本
SELECT * FROM ods.store_goods_master
WHERE id = <value>
ORDER BY fetched_at DESC;
```

## ETL 元数据字段

| 字段名 | 类型 | 说明 |
|--------|------|------|
| content_hash | TEXT | 对业务字段计算 SHA256，用于变更检测与去重 |
| source_file | TEXT | 原始导出文件名，用于数据追溯 |
| source_endpoint | TEXT | 采集来源（接口/文件路径），用于数据追溯 |
| fetched_at | TIMESTAMPTZ | 采集/入库时间戳，用于口径对齐与增量处理 |
| payload | JSONB | 完整原始 JSON 记录快照，用于回溯与二次解析 |

## 可回溯性

| 项目 | 说明 |
|------|------|
| 可回溯 | ✅ 完全可回溯（保留 payload 原始 JSON） |
| 数据来源 | export/test-json-doc/store_goods_master.json |
