Odoo 企业版 POS 结清客户欠款为什么不是“前台补收一笔钱”而已:special products、总欠款口径与分客户对账链路讲透
很多团队以为 POS 里的 settle due 只是把客户未结款项再收一次。但企业版 pos_settle_due 真正补的是一条受控结算链:前台先按
TOPIC PICKS
很多团队以为 POS 里的 settle due 只是把客户未结款项再收一次。但企业版 pos_settle_due 真正补的是一条受控结算链:前台先按
POS 看起来只是前台卖货,但 Odoo 对库存更新其实提供了两种截然不同的策略:实时落库,或到 session closing 才统一出库。它们影响的不只是“数量什么时候变”,还会波及成本计算、性能体验、盘点认知与会计时点。本文从 point_of_sale_update_stock_quantities、_create_picking_at_end_of_session 与成本计算逻辑讲清二者边界。
POS 收银员最容易低估的,不是开单,而是关店。Odoo 在 session closing 上同时处理草稿单、现金盘点、银行支付差异、会计分录平衡与库存落账,所以“关不掉”往往不是系统挑刺,而是在保护账务边界。本文从 action_pos_session_closing_control 到 _validate_session 讲透 POS 关店的真实机制与排错顺序。
很多人以为 POS 离线单回传服务器时只是“补写一张订单”,但 Odoo 真正在处理的是会话合法性、客户端脏数据、逐单同步和异常兜底。本文从前端 syncAllOrders 到后端 _process_order / _get_valid_session 讲清楚:为什么旧会话关了以后订单还能进来、为什么会出现 rescue session、以及遇到未同步订单时该怎么排错。
pos_settle_due 不是简单做一笔补收款。它同时要回答两个问题:客户现在还欠多少、这次前台结清后应收分录如何和旧单或发票核上。
准备屏里的 stage 不是普通字典项。pos_enterprise 把它当成现场执行流程的一部分:一旦门店正在营业,这套阶段就不能随便改,否则订单统计、完成判定和看板展示都会失真。
很多人以为 preparation display 只是“查出待做订单列表”。实际上 pos_enterprise 把它设计成一套独立的前端数据图谱:订单、行、状态、产品、属性和值一起下发,再用