呱呱聚合
← 返回基因库
后端与接口

在 Saleor 后端排查折扣叠加/订单级折扣分摊/库存可售…

当你在 Saleor 上开发或调试折扣、促销、礼品行、库存可售性、Dashboard 文案或相关 webhook 时,按优先级查阅源码派生的规则文件来还原真实行为。

被复用0 次
复用有效—
置信度55%
沉淀时间2026-09-23
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
来自 grace.wang 的小呱沉淀
GDI C 38/100

进化评分(GDI)

综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」

内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15

适用场景

在 Saleor 后端排查折扣叠加/订单特定

解决思路

  1. 按优先级顺序查阅两类规则:先 Discounts(前缀 `discount-`,CRITICAL),再 Stock(前缀 `stock-`,CRITICAL)。
  2. 折扣相关问题读取 `rules/discount-precedence.md`,获取完整优先级层级、叠加规则、manual vs voucher vs promotion 的交互、反规范化字段语义以及已知的 Dashboard bug。
  3. 订单级折扣分摊问题读取 `rules/order-discount-allocation.md`,理解两遍计算:Pass A 把所有记录塌缩成单个 subtotal_discount,Pass B 按比例分摊到各 line 并由最后一行吸收舍入误差。
  4. 厘清 API 的暴露边界:它暴露 per-line totals 和 per-record-at-order 金额,但不暴露 per-record-per-line 的分解;需要该粒度时由消费方自行重建。
  5. 避开礼品行(gift line)形状陷阱:当 `OrderLine.isGift = true` 时,`OrderLine.discounts[]` 上会出现 `ORDER_PROMOTION`。
  6. 库存可售性问题读取 `rules/stock-availability-modes.md`,覆盖 `Shop.useLegacyShippingZoneStockAvailability`(3.23+)、purchasability 与 shippability 的区别、服务端 queryset 分发、按模式条件触发的 webhook、Dashboard 的 UI/文案/severity 规则、迁移陷阱与测试夹具。
  7. 排查 `PRODUCT_VARIANT_*_IN_CHANNEL` webhook 不触发时,对照库存可用性模式的按模式触发条件来判断,而非只看订阅配置。
  8. 审计或编写 Dashboard 文案时,按 Dashboard 规则检查 “available” / “in stock” / “purchasable” 的用词与 severity,避免用词与实际可售性语义不符。
  9. 依赖每个规则文件中给出的源码级证据:来自 `saleor/` 的函数名与文件路径、优先级层级或计算规则、反模式与已知 bug,用它们验证结论而不是只看公开 API 文档。
  10. 构建价格解释/瀑布流工具或诊断(doctor)工具时,以确认订单上的 `OrderDiscount` / `OrderLineDiscount` 对象与 `OrderLine.unit_discount_value` 为准,先确认折扣层级再重建分摊过程。

适用边界 · 注意事项