Ir al contenido

Odoo 采购收货:从采购订单到入库的最佳实践

详解 Odoo 中处理工厂来货的标准流程与“潜规则”
6 de noviembre de 2025 por
Odoo 采购收货:从采购订单到入库的最佳实践
上海懒慧科技有限公司, Chaofeng Wang


核心答案:在 "库存" (Inventory) 应用中处理


你问的“来货单”,在 Odoo 中被称为 "收货单" (Receipt),它本质上是一个 "库存调拨" (Stock Picking)

关键点在于:你几乎永远不需要“创建”这个来货单。

作为最佳实践,当你在 "采购" (Purchase) 应用中 "确认" (Confirm) 一个采购订单 (Purchase Order, PO) 时,Odoo 会自动"库存" (Inventory) 应用中为你生成一个(或多个)等待处理的 "收货单" (Receipt / Picking)。

你的工作不是“创建”它,而是去“找到”并“验证” (Validate) 它。


两种标准的 "收货" (Receipt) 路径


当工厂的货送到时,你有两种标准路径来处理这个自动生成的“收货单”。这两种路径最终指向的是同一个单据(stock.picking 对象)。


路径一:从 "库存" 应用出发 (仓库管理员的视角)


这是最“合规”的路径,特别适用于仓库团队和采购团队分离的公司。

  1. 进入 "库存" (Inventory) 应用。

  2. 在主看板 (Dashboard) 上,你会看到 "收货" (Receipts) 卡片。点击 "待处理" (To Process)。

  3. 在列表中找到与你的采购订单 (PO) 相关的收货单。它的“源单据” (Source Document) 字段会显示你的 PO 编号(例如 P00001)。

  4. 打开这个收货单。

  5. 核对“需求” (Demand) 数量和“实收” (Done) 数量。如果收到的货品数量与订单一致,Odoo 通常会自动填充“实收”数量。

  6. 点击 "验证" (Validate)

  7. 库存此时才真正入库。


路径二:从 "采购" 应用出发 (采购员的“快捷方式”)


这是更快的路径,尤其适合小团队或采购员自己也负责收货确认的情况。

  1. 进入 "采购" (Purchase) 应用。

  2. 打开你之前创建并确认的那个采购订单 (PO)。

  3. 在订单的右上角,你会看到一个“智能按钮” (Smart Button),显示 "收货" (Receipt)

  4. 点击这个按钮。

  5. 系统会直接跳转到“库存”应用中对应的那个“收货单”(即路径一中的同一个单据)。

  6. 核对数量,点击 "验证" (Validate)


忠告:开发者和合作伙伴必须避开的“坑”


作为 Odoo 专家,我必须警告你(特别是作为开发者)一个新手最常犯的、破坏性极大的错误。

千万不要在“库存”应用中,通过点击“创建”来手动新建一个“收货单” (Receipt),然后试图用它来接收 PO 的货物。

为什么这是灾难性的?

  1. 切断追溯链 (Traceability): Odoo 的核心价值在于单据的链接。你手动创建的收货单没有链接到原始的采购订单 (PO)。

  2. PO 状态错误: 原始 PO 将永远停留在“等待收货” (Waiting for Goods) 状态,因为它不知道你手动创建了另一个单据来收货。

  3. 财务混乱: 如果你使用了自动化库存计价 (Automated Inventory Valuation),这笔手动入库的成本可能无法正确归集到采购成本上,导致财务数据和库存估值(Landed Costs 等)完全错乱。

  4. 数据冗余: 你最终会在系统中有两个“意图”:一个是 PO 生成的“待收货”记录,另一个是你手动创建的“已收货”记录。

永远记住 Odoo 的黄金法则: 采购订单 (PO) 生成 收货单 (Receipt)。你只需要去处理那个自动生成的单据。


参考资料 (References)


为了让你能深入研究这个机制,以下是相关的 Odoo 官方文档和 GitHub 源码位置。

  1. Odoo S.A. "Receive products from your suppliers." Odoo Documentation. Accessed November 6, 2025. https://www.odoo.com/documentation/user/17.0/inventory_and_mrp/inventory/managing_inventory/receipts_delivery_orders.html.

  2. Odoo S.A. "Purchase (purchase) module." GitHub Repository (Odoo 17.0 Branch). Accessed November 6, 2025. https://github.com/odoo/odoo/tree/17.0/addons/purchase.

    • 专家提示: 关注 purchase/models/purchase.py 文件中的 _create_picking 方法。这就是 PO 被确认 (Confirm) 时触发创建 stock.picking (收货单) 的地方。

  3. Odoo S.A. "Inventory (stock) module." GitHub Repository (Odoo 17.0 Branch). Accessed November 6, 2025. https://github.com/odoo/odoo/tree/17.0/addons/stock.

    • 专家提示: stock/models/stock_picking.py 是 Odoo 中所有库存移动的核心模型。

en Odoo
Compartir esta publicación
Etiquetas
Archivar
Odoo 供应商下单
为何必须在“采购” (Purchase) 而非“制造” (Manufacturing)?