Saleor Core 是一份从 Saleor 核心源代码推导出的后端行为参考,用于补充公共 API 参考文档中未完整说明的内部机制。其内容围绕折扣、库存两类关键主题展开,并按规则文件组织。
用途 该技能面向需要理解 Saleor 后端实际计算与判定逻辑的开发者,帮助在构建或调试 Dashboard 折扣/促销界面、排查优惠券或促销未生效、理解订单级与行级折扣优先级、处理 OrderDiscount / OrderLineDiscount 对象、调试 OrderLine 上的 unit_discount_value、判断折扣是叠加还是相互抑制、为已确认订单构建价格解释(瀑布式)工具、还原订单级折扣如何分摊到各行,以及处理 isGift = true 的赠品行时获得依据。
主要能力 资料列出三大规则类别。第一类为折扣(标记为 CRITICAL,前缀 discount-):discount-precedence 覆盖完整优先级层级、叠加规则、手动折扣与优惠券与促销之间的交互、反规范化字段语义及已知的 Dashboard 缺陷;order-discount-allocation 描述订单级折扣的两遍计算——Pass A 将记录合并为单一 subtotal_discount,Pass B 按比例分摊到各行并由最后一行吸收舍入误差,同时说明 API 暴露什么(每行合计、订单级每记录金额)与不暴露什么(每记录每行的拆解),并提示赠品行在 OrderLine.discounts[] 中呈现 ORDER_PROMOTION 的结构陷阱,以及面向使用方的还原指引。第二类为库存(同为 CRITICAL,前缀 stock-):stock-availability-modes 覆盖 3.23+ 的 Shop.useLegacyShippingZoneStockAvailability、可购买性与可配送性的区分、服务端查询集分发、随模式变化的 webhook、Dashboard UI/文案/严重级别规则、迁移陷阱和测试夹具。
使用方式 按规则文件逐个阅读详细说明与源码级证据:rules/discount-precedence.md、rules/order-discount-allocation.md、rules/stock-availability-modes.md。每个规则文件包含优先级层级或计算规则、来自 saleor/ 的函数名与文件路径引用、反模式与已知缺陷。资料未提供安装命令或调用示例。
适用场景 适合在 Saleor 电商后端开发与调试中使用,尤其是折扣与促销逻辑排查、订单价格构成还原、赠品行处理,以及库存可用性、配送区域、仓库和 PRODUCT_VARIANT_*_IN_CHANNEL webhook 未触发等问题的诊断,也可用于构建解释可用性问题的诊断工具,或审计 Dashboard 中“available / in stock / purchasable”等措辞。
限制 资料仅说明上述规则类别与文件结构,未提供具体函数实现细节、完整优先级层级内容、安装方式、运行环境要求、收费信息或效果数据;这些内容需要查阅对应规则文件与源码。