feat: 重构顺运宝规格主链路 (#88)
This commit is contained in:
+16
-15
@@ -168,6 +168,7 @@ type ShopeeProduct struct {
|
||||
Title string
|
||||
ShopeeStatus string
|
||||
MainSKUCode string
|
||||
Source string // report=蝦皮报表完整行;syb=顺运宝同步补建的商品骨架
|
||||
PddGoodsURL string
|
||||
PddGoodsID string // 指向 PddProduct.GoodsID,为空表示还没填链接
|
||||
CreatedAt string
|
||||
@@ -201,17 +202,16 @@ type ShopeeSKU struct {
|
||||
// PriceTwdCent 是**台币分**,跟采购任务的人民币价格上限没有换算关系,
|
||||
// 不要互相赋值,见 docs/admin/01-requirements.md §7。
|
||||
//
|
||||
// `[必须]` ShopeeSKUID 是蝦皮规格识别结果(人工确认或自动识别产生),
|
||||
// 它不代表已经完成蝦皮 SKU 到 PDD SKU 的采购规格映射。
|
||||
// 顺运宝同步**绝不能覆盖它**——顺运宝根本没有这个值,见工单 #46、
|
||||
// docs/admin/08-顺运宝接口.md §6.2。
|
||||
// ShopeeSKUID 是 #88 之前的蝦皮规格识别结果。数据库列因只追加迁移保留,
|
||||
// 新同步和采购主链路均不再读写它。
|
||||
type SybOrder struct {
|
||||
SybID string
|
||||
OrderNo string
|
||||
Title string
|
||||
ProductSpec string // 规格原文,顺运宝 productSpec,原样保留,对应 shopee_skus.spec_raw
|
||||
SpecKey string // ProductSpec 的稳定身份键;空规格保持 SQL NULL,读出时为空字符串
|
||||
ShopeeGoodsID string
|
||||
ShopeeSKUID string // 蝦皮规格识别结果;顺运宝同步永远不覆盖这一列,见上面的注释
|
||||
ShopeeSKUID string // 历史兼容字段;新主链路不使用
|
||||
Quantity int
|
||||
PriceTwdCent int64
|
||||
ImageURL string
|
||||
@@ -250,14 +250,14 @@ type SybSyncRun struct {
|
||||
FinishedAt string
|
||||
}
|
||||
|
||||
// SKUMapping 是「蝦皮的这个规格 = 拼多多的那个规格」。
|
||||
// SpecMapping 是「这个蝦皮商品的顺运宝规格 = 拼多多的那个规格」。
|
||||
//
|
||||
// # 为什么主键要带上 PddGoodsID
|
||||
//
|
||||
// PDD 商品下架换代很频繁。假设蝦皮商品 X 原来对应 PDD 商品 A,
|
||||
// 操作员匹配好了"黑色/M → 黑色/M码";后来 A 下架,换成了 B。
|
||||
//
|
||||
// 如果映射只按 ShopeeSKUID 存,那条旧映射还在,但它描述的是 **A 的规格**:
|
||||
// 如果映射不带 PddGoodsID,那条旧映射还在,但它描述的是 **A 的规格**:
|
||||
//
|
||||
// - 运气好:B 没有"黑色/M码",建任务时找不到会报错,还算安全;
|
||||
// - 运气坏:B 恰好也有"黑色/M码",但完全是另一件衣服
|
||||
@@ -268,14 +268,15 @@ type SybSyncRun struct {
|
||||
// 不需要在换商品时记得去删旧数据——靠查询条件天然隔离,忘不了。
|
||||
//
|
||||
// 附带好处:A 的映射还留着。A 补货换回去时,之前的匹配成果直接复用。
|
||||
type SKUMapping struct {
|
||||
ShopeeSKUID string
|
||||
PddGoodsID string // 这条映射属于哪个 PDD 商品
|
||||
PddOptionKey string // 规范化后的组合键,见 service.OptionKey
|
||||
PddOptions string // 原始 options 对象 JSON,显示用
|
||||
GoodsID string // 蝦皮商品 ID,方便按商品批量查
|
||||
MappedAt string
|
||||
MappedBy string
|
||||
type SpecMapping struct {
|
||||
ShopeeGoodsID string
|
||||
SpecKey string // 由 spec.SpecKey 生成,存和查必须使用同一实现
|
||||
SpecRaw string // 保存当时的顺运宝原文,供人工核对
|
||||
PddGoodsID string // 这条映射属于哪个 PDD 商品
|
||||
PddOptionKey string // 规范化后的组合键,见 service.OptionKey
|
||||
PddOptions string // 原始 options 对象 JSON,显示用
|
||||
MappedAt string
|
||||
MappedBy string
|
||||
}
|
||||
|
||||
// ---------- 任务 ----------
|
||||
|
||||
Reference in New Issue
Block a user