feat(public): 商品详情页展示厂商建议零售价(MSRP) #34

Merged
lixu merged 1 commits from devin/1782348138-public-msrp into main 2026-06-25 08:59:22 +08:00
Owner

背景

零售价(MSRP)数据后端已具备:DB 表 product_msrp、采集导入(import_bypos.go)已写入 sell_price、后台可管理。但公开前台商品详情页一直没有展示零售价——/api/v1/products/{id} 详情接口里也不含价格(价格仅在单独的 /products/{id}/msrp 接口)。

本 PR 按「方案B」把零售价内嵌进商品详情接口并在公开前台展示,并隐藏 0 元的无效价格。

改动

后端 (api)

  • store.Product 新增 msrp 字段;ProductByID / ProductByGTIN 现在内嵌 MSRP 列表(复用 ListMSRP,已随产品缓存)。
  • ListMSRP 增加 AND amount > 0 过滤,按 effective_date 倒序(最新在前)。这样详情接口和 /products/{id}/msrp 都不再返回 0 元噪声数据。
  • 更新 openapi.jsonProduct schema,补充 msrp 数组。

前端 (public-frontend)

  • Product 类型新增 msrp?: Msrp[]
  • 商品详情页(ProductView)新增「建议零售价」一行,显示最新一条(CNY 显示为 ¥xx.xx,并标注「厂商建议,仅供参考」);无有效价格时不显示。

说明

  • 导入侧无需改动(早已导入 sell_price)。
  • 之前库里约有不少 amount=0.00 的记录(源数据 sell_price 为 0),现已在查询层过滤,不会展示。

验证

  • gofmt -l 无输出、go vet ./...go build ./...go test ./... 全部通过。
  • 前台 npm run build(tsc + vite) 通过。
## 背景 零售价(MSRP)数据后端已具备:DB 表 `product_msrp`、采集导入(`import_bypos.go`)已写入 `sell_price`、后台可管理。但**公开前台商品详情页一直没有展示零售价**——`/api/v1/products/{id}` 详情接口里也不含价格(价格仅在单独的 `/products/{id}/msrp` 接口)。 本 PR 按「方案B」把零售价内嵌进商品详情接口并在公开前台展示,并隐藏 0 元的无效价格。 ## 改动 **后端 (api)** - `store.Product` 新增 `msrp` 字段;`ProductByID` / `ProductByGTIN` 现在内嵌 MSRP 列表(复用 `ListMSRP`,已随产品缓存)。 - `ListMSRP` 增加 `AND amount > 0` 过滤,按 `effective_date` 倒序(最新在前)。这样详情接口和 `/products/{id}/msrp` 都不再返回 0 元噪声数据。 - 更新 `openapi.json` 的 `Product` schema,补充 `msrp` 数组。 **前端 (public-frontend)** - `Product` 类型新增 `msrp?: Msrp[]`。 - 商品详情页(`ProductView`)新增「建议零售价」一行,显示最新一条(CNY 显示为 `¥xx.xx`,并标注「厂商建议,仅供参考」);无有效价格时不显示。 ## 说明 - 导入侧无需改动(早已导入 `sell_price`)。 - 之前库里约有不少 `amount=0.00` 的记录(源数据 sell_price 为 0),现已在查询层过滤,不会展示。 ## 验证 - `gofmt -l` 无输出、`go vet ./...`、`go build ./...`、`go test ./...` 全部通过。 - 前台 `npm run build`(tsc + vite) 通过。
lixu added 1 commit 2026-06-25 08:43:17 +08:00
feat(public): 商品详情页展示厂商建议零售价(MSRP)
CI / Go (api) (pull_request) Successful in 1m59s
CI / Python (ingestion) (pull_request) Successful in 1m13s
CI / Migrations (postgres) (pull_request) Successful in 27s
5fe5774251
后端 ProductByID/ProductByGTIN 在商品详情 JSON 中内嵌 msrp 字段(按 effective_date 倒序,过滤 amount=0 的无效快照);公开前台详情页新增「建议零售价」展示。

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
lixu merged commit 856b81125c into main 2026-06-25 08:59:22 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lixu/goods#34