feat(edit): 编辑上报细节优化

This commit is contained in:
2026-10-06 18:30:05 +08:00
parent e20cd7547f
commit 79b310efe7
92 changed files with 2764 additions and 368 deletions
+6 -2
View File
@@ -45,7 +45,7 @@
}
```
- 独立试算 `binding=null`;SKU 必须提供 profile,已有 variant_id 与新建 client_key 二选一。验证资源归属,已上架 SKU 不接受新报价。
- 独立试算 `binding=null`;SKU 必须提供 profile,已有 variant_id 与新建 client_key 二选一。验证资源归属;已上架 SKU 允许试算和确认新的本地报价记录(2026-10-05 修订),不更新 Ozon 线上价格或重复导入。
- 包装输入是编辑草稿合并后的有效 g/mm 值,必须已确认;接口为兼容历史值允许最多三位小数,重量至少 1 g,当前编辑页与试算界面只接受正整数。保存时从实际持久化草稿重新合并并核对,不能仅信任客户端摘要。
- `mode=target_markup`:目标利润=采购成本×加价率;求解销售价。`fixed_sale`:selling_price 必填,按该售价核算利润。
- 百分比费用以销售额为基数;除加价率外每项小于 1、最多六位小数。引擎拒绝总扣费率≥1。划线价=销售价÷(1−折扣率)。
@@ -83,6 +83,8 @@ context 保存规则版本、实际汇率与来源,以及系统汇率记录 ID
- 发布校验要求 pricing_valid=true,无有效报价返回 `PRICING_REQUIRED`;已导入 SKU 沿用既有不可再次首次上架边界。
- 数据库复合外键保证 quote/profile/product/variant/store/platform 归属,RLS 隔离租户。确认快照拒绝 UPDATE;成本、包装、类目、店铺或币种变化触发失效。
2026-10-05 维护者要求:已导入 SKU 展示「重新试算」「试算详情」。点击重新试算、详情「应用到 SKU」前确认:「该 SKU 已上架。本次价格调整仅保存为本地记录,不会同步至 Ozon;如需修改线上价格,请前往 Ozon 后台。」确认后回填草稿,仍须保存商品才持久化新报价。沿用已有预览绑定、有效期、规则、币种、输入一致性和幂等校验,新建不可变报价并更新本地 listing 价格,不修改 listing 的 imported 状态、首次导入店铺、货号或平台商品身份,不创建发布任务或价格同步任务。未携带新 `pricing_selection` 的已导入 SKU 保持既有报价记录。批量「按方案计算全部」和自动试算继续跳过已导入 SKU,避免批量隐式调整其记录。
## 4. 门店方案
| 方法 | 路径 | 约束 |
@@ -96,7 +98,9 @@ context 保存规则版本、实际汇率与来源,以及系统汇率记录 ID
写入 `{name,note,parameters,allow_commission_override}`。只保存费用、加价、折扣、固定/系统汇率与运输偏好;采购价、包装、手动售价及临时佣金不属于方案持久字段。
方案的默认和比较运输必须属于同一可用费率卡;正式环境默认允许有效草稿卡;可通过 `PRICING_ALLOW_DRAFT_RATES=false` 仅使用已审核卡。历史快照不会被方案修改;尚未确认的预览因方案版本改变要求重算。
2026-10-04 维护者确认:SKU「重新试算」与「按方案计算全部」主动重读目标店铺 `/pricing/catalog`,使用最新 `is_default=true` 方案的完整参数(包含加价、折扣、费用、运输与汇率偏好),替换 SKU 的旧定价参数再生成预览;沿用当前采购成本和有效包装,不自动保存商品。无默认方案或其费率卡不可用时给出明确提示,不静默使用折扣率为 0 的临时参数。已导入 SKU 不重算。自动试算、手工实际售价调整和试算详情内的重新计算继续使用当前 SKU/详情参数。默认方案折扣率为 50% 时,划线价=实际售价÷(1−50%)=实际售价×2。
2026-10-04 维护者确认:SKU「重新试算」与「按方案计算全部」主动重读目标店铺 `/pricing/catalog`,使用最新 `is_default=true` 方案的完整参数(包含加价、折扣、费用、运输与汇率偏好),替换 SKU 的旧定价参数再生成预览;沿用当前采购成本和有效包装,不自动保存商品。无默认方案或其费率卡不可用时给出明确提示,不静默使用折扣率为 0 的临时参数。批量计算跳过已导入 SKU;2026-10-05 开放已导入 SKU 单项主动试算,仅更新本地记录。自动试算、手工实际售价调整和试算详情内的重新计算继续使用当前 SKU/详情参数。默认方案折扣率为 50% 时,划线价=实际售价÷(1−50%)=实际售价×2。
编辑快照的 `variants[].listing.store_id` 返回当前 listing 的实际归属店铺。已导入 SKU 试算固定使用其首次导入店铺(包括目录方案与币种),即使商品的目标店铺已改为其他店铺也不改写导入归属;预览使用其他店铺时返回 `422 PRICING_VARIANT_STORE_MISMATCH`。
## 5. 数据启用与错误