销售单确认后,Odoo 是怎样一路生成发货与补货动作的
从 sale.order._action_confirm 到 sale.order.line._action_launch_stock_rule,再到 stock.rule.run、_run_pull、_run_buy,讲清楚销售如何触发库存、采购与补货链。
TOPIC PICKS
从 sale.order._action_confirm 到 sale.order.line._action_launch_stock_rule,再到 stock.rule.run、_run_pull、_run_buy,讲清楚销售如何触发库存、采购与补货链。
可以顺着继续读的相邻方向
sale_purchase_stock_inter_company_rules 真正补齐的是跨公司库存语义:收货仓从哪来、直送何时改走 transit、另一家公司收货 move_line 又怎样镜像 lot 与已拣数量。
sale_subscription_external_tax 处理的是 recurring invoice 的真实税务边界:订阅订单还没到可开票期的行不能提前送税,客户从 portal 看订阅时也要先重算外部税。
sale_subscription_stock 把订阅实物履约按“账期”切开:哪些 move 算本期开票、何时重置 qty_to_deliver、为什么 invoice 后还会重新 launch stock rule。
sale_commission_subscription 把订阅提成做成一套独立报表链:achievement 类型新增 mrr、可选 recurring plan、再从 sale_order_log 里按事件日期筛出有效记录。
很多人以为订阅单挂上项目后,无非就是项目里能看到一条销售记录。但从企业版 project_sale_subscription 源码看,订阅会同时改写任务生成、递归结束方式、upsell/renew 的项目承接,以及项目 Profitability 里收入归集的口径。真正难点不是“有没有关联项目”,而是“项目协作链”和“经营收入链”要不要跟订阅生命周期一起走。
很多团队希望 Odoo 在销售里自动完成“低毛利拦截、折扣审批、团队协作分单”。但官方源码给出的其实是三块不同能力:毛利可见性、折扣能力开关、销售团队归属与统计。本文讲清标准能力做到哪里,审批为什么常常需要额外设计。