用途:这是基于 Saleor 核心源码整理的后端行为参考,用于解释公开 API 文档未完整说明的内部机制,主要面向在 Dashboard 构建或调试折扣/促销 UI、排查优惠券或促销未生效、理解订单级与行级折扣优先级、处理 OrderDiscount/OrderLineDiscount 对象、调试 OrderLine 的 unit_discount_value、判断折扣是否叠加或互相抑制、构建价格解释/瀑布流工具、还原订单级折扣如何分摊到各行,以及处理赠品行(OrderLine.isGift = true)的开发者;也覆盖库存可用性、配送区域、仓库与 Shop.useLegacyShippingZoneStockAvailability,排查 PRODUCT_VARIANT_*_IN_CHANNEL webhook 未触发,构建可用性诊断工具,审计 Dashboard 中 available / in stock / purchasable 等措辞。主要能力分为两类规则:一是折扣(CRITICAL,前缀 discount-),含 discount-precedence(完整优先级层级、叠加规则、手动/优惠券/促销交互、反规范化字段语义与已知 Dashboard bug)和 order-discount-allocation(订单级折扣两阶段计算:阶段 A 将记录折叠为单一 subtotal_discount,阶段 B 按比例分摊到各行并由最后一行吸收舍入误差;说明 API 暴露每行合计与订单级每条记录金额,但不提供每条记录到每行的分解,以及赠品行的 discounts[] 形状陷阱与重建建议)。二是库存(CRITICAL,前缀 stock-),含 stock-availability-modes(3.23+ 的 useLegacyShippingZoneStockAvailability、可购买性与可发货性、服务端 queryset 分发、按模式条件触发的 webhook、Dashboard UI/文案/严重级别规则、迁移陷阱与测试夹具)。使用方式:按需阅读各规则文件 rules/discount-precedence.md、rules/order-discount-allocation.md、rules/stock-availability-modes.md,每个文件包含优先级层级或计算规则、来源自 saleor/ 的函数名与文件路径引用、反模式与已知 bug。限制:资料未提供安装命令、价格或收费信息、具体支持平台等,暂未提供。
saleor-core
通用与其它
更新于 10-15 21:04