Odoo 多仓协同与虚拟仓库实战指南:实现跨仓发货与智能库存调度(基于 Odoo 19)

本篇文章全面解析 Odoo 19 中多仓协同与虚拟仓库的应用场景、配置步骤、完整业务流程与实施建议,帮助企业实现跨仓发货、统一销售发货视图与高效库存调度。文章覆盖从仓库结构设计、系统配置、测试方法到上线监控的完整实践指南,是企业进行多仓管理与 Odoo ERP 实施的重要参考。

引言

在现代供应链与仓库管理中,越来越多企业不仅拥有一个仓库,而是分布多个仓库、多个地点、甚至跨区域、多国运营。面对“一个销售订单可能同时从多个仓库取货”的现实需求,传统“一个仓库→一个发货”的逻辑显得不够灵活。针对这一需求,Odoo 19 的库存模块提供了“虚拟仓库/虚拟地点”(Virtual Locations / Virtual Warehouses)机制,用以将多个真实仓库整合起来,在销售、发货、库存取货环节中支持跨仓库调拨与统一发货视图。

本文将从业务背景、关键概念、系统设置、典型操作流程、注意事项及最佳实践等方面,逐步详解这一功能,帮助你在 Odoo 17/19 等版本中清晰理解并落地执行。

一、业务背景与为何使用虚拟仓库

1. 多仓库运营场景

假设一家企业拥有两个或多个仓库,比如「仓库A」在东京、「仓库B」在大阪,或者「仓库A」负责国内、「仓库B」负责海外。客户下单后,有可能某个产品在仓库A已无库存但在仓库B仍有,或者订单中不同产品分散在多个仓库。为了提升客户交付速度、降低缺货风险,企业希望:

  • 当一个仓库无货时自动从另一个仓库调货或直接发货;
  • 在销售下单环节,不必手动分拆订单、选仓库,而系统自动处理多个仓库库存;
  • 对销售人员与客户而言,仍然表现为“一个仓库/一个销售订单”即可处理,而背后支持多仓库协同。

2. 传统单仓库模式的局限

在只有一个仓库或者简单仓库结构的情况下,销售订单与发货流程通常为:销售 → 选定仓库 →发货。但当有多个仓库时:

  • 若客户选“仓库A”但无库存,则订单可能被卡住;
  • 若销售员必须手动判断仓库选择,会增加操作复杂度和人为失误;
  • 在 ERP 系统中,如果没有统一机制支持“跨仓库取货”,往往会拆单、手工调拨,效率低、易出错。

3. Odoo 的解决方案:虚拟仓库/虚拟地点

Odoo 19 提供“虚拟地点”(Location Type = View/Virtual)与“子仓库归属”机制,结合多步收发货(Multi-Step Routes)及“仓库作为地点层级”的配置,从而实现如下:

  • 创建一个“虚拟仓库”作为母级,用于将多个真实仓库整合起来。 (Odoo)
  • 将多个实际仓库设为该虚拟仓库的子位置。
  • 在销售订单中选定“虚拟仓库”作为发货仓库,则系统可从多个子仓库中取货,以满足订单需求。 (Odoo)
  • 对销售人员而言,依旧只在销售订单中选择一个“仓库”字段即可;但后台可跨仓库调度。

这样,既保留了多仓库运营的库存管理优势,又简化了销售与发货流程。

二、关键概念解析

在继续前进之前,我们先理清几个关键概念,以避免后续配置与操作中的混淆。

1. 仓库(Warehouse)

在 Odoo 中,“仓库”表示一个物理地点(或逻辑地点)用于存储产品,具有地址、库存、收发货流程等。 (Odoo)

每个仓库可配置入库/出库流程(1 步、2 步、3 步)及补货规则。

2. 地点(Location)

仓库下可细分为“地点”(Location),比如「货架A」、「冷库区」、「发货区」等。地点类型(Location Type)决定其属性:内部、供应商、客户、虚拟、在途等。 (Odoo)

  • Internal:内部存储,计入库存。
  • Virtual(或 View):仅用于组织结构,不真实存货。产品通常不能留存于此。 (Odoo)
  • Transit、Vendor、Customer 等,分别用于在途中、供应商所在地、客户所在地。

3. 虚拟仓库/虚拟地点(Virtual Warehouse / Virtual Location)

虚拟仓库其实就是一个“仓库”的抽象,用一个 “母级”仓库将多个“子仓库”作为其内部子位置,这个母级仓库所在的 Stock Location 被设定为 Location Type = View(即虚拟、不真实存货存放) 。 (Odoo)

它的功能如下:

  • 将多个子仓库的库存以统一视图聚合。
  • 在销售订单中作为仓库选择项,使系统从多个子仓库中取货。
  • 不用于直接存货,其 Stock 地点被设置为 View 类型。

4. 子仓库(Child Warehouse)

即实际操作中有存货的仓库。它们被配置为虚拟母仓库的子位置。这样,当销售选择母仓库时,系统能从其子仓库中抽货。 (Odoo)

5. “Warehouse”字段在销售订单中的意义

在销售订单(Sales Order)中有一个 “Warehouse” 字段,表示此订单应从哪个仓库发货。若选择的是虚拟仓库,则系统在调拨时会将源地点设为虚拟仓库 Stock 位置,从而触发对多个子仓库的取货。 (Odoo)

三、系统配置步骤(以 Odoo 19 为例)

下面逐步说明如何在 Odoo 19 中配置该功能。建议在测试环境中操作,确认无误后再至生产环境。

步骤 1:启用所需功能

在 Inventory(库存)应用 → Configuration(配置) → Settings(设置)中,需要启用以下两个选项:

  • Storage Locations(存储地点)
  • Multi-Step Routes(多步路线)
    只有启用这两个功能,才能进行地点、仓库层级、子仓库配置。 (Odoo)

保存设置,系统可能提示更新。

步骤 2:创建虚拟母级仓库

  1. 进入:Inventory → Configuration → Warehouses(仓库) → 创建新仓库。 (Odoo)
  2. 在新仓库表单中填写:
    • 名称(例如:“VWH – 虚拟仓库”)
    • 短名称(例如:“VWH”)
    • 地址/公司等信息。
  3. 保存以后,该仓库生成默认 Stock、Reception、Delivery 地点等。
  4. 接下来,在 Locations 配置中,将该仓库的 “Stock” 地点修改其 Location Type 为 “View”。也就是说:
    • 在 Inventory → Configuration → Locations,找到 VWH/Stock(虚拟仓库的 Stock 地点)
    • 点击编辑,在 Additional Information(附加信息)中将 Location Type 从 “Internal” 改为 “View”
    • 保存。这样该地点不用于存货,只作为母级结构视图。 (Odoo)

步骤 3:创建子仓库(或已有仓库改为子)

  1. 若已有多个物理仓库(例如 “WH-A 虚拟A”, “WH-B 虚拟B”),确保它们对应各自 Stock 地点为 Internal。
  2. 在 Locations 中编辑这些子仓库的 Stock 地点(例如 “WHA/Stock” “WHB/Stock”),将其 Parent Location(上级地点)设置为 虚拟母仓库的 Stock 地点(如 “VWH/Stock”)。 (Odoo)
  3. 保存。此时,“WHA/Stock” 和 “WHB/Stock” 成为母级 VWH 的子位置。

步骤 4:验证子仓库结构生效

在产品表单中,点击 On Hand(在手)按钮,系统会显示包括所有子仓库在内的库存。通过 “Quantity on hand by Location” 或类似视图,可以看到 WH-A、WH-B 两个仓库的库存。这样,销售选择虚拟仓库后,系统已有多个仓库可用。 (Odoo)

步骤 5:将虚拟仓库设为销售默认仓库(可选)

如果希望所有销售订单默认使用该虚拟仓库,可以在每个销售人员设置中指定 Default Warehouse 为 “VWH”。在 Sales → Configuration → Users & Companies → Employees,选择员工 → Default Warehouse 设置。 (Odoo)

四、典型操作流程:从销售到发货

以下以一个示例说明“从多个仓库取货”的完整流程。

假设场景

  • 产品 “玩具兵” 在 “WHA/Stock” 有库存 1 件,在 “WHB/Stock” 有库存 2 件。
  • 已配置 “VWH” 虚拟母仓库,其子仓库为 WHA、WHB。
  • 客户下单购买 “玩具兵” 2 件。

操作流程

  1. 在 Sales(销售)应用中新建报价单 → 添加客户 → 添加产品 “玩具兵” 数量 2。
  2. 在 Other Info(其他信息)选项卡中,将 Warehouse 字段设为 “VWH – 虚拟仓库”。
  3. 确认报价单 → 转为销售订单。
  4. 点击 “Delivery” 智能按钮,进入发货单。检查发货单的 Source Location(来源地点)是否为 “VWH/Stock”。如果不是,则可能配置有误。 (Odoo)
  5. 在发货单的 “Detailed Operations”(详细操作)选项卡中,可看到两个取货行:一行从 “WHA/Stock” 取 1 件,另一行从 “WHB/Stock” 取 1 件(假设系统自动决定如何分配库存)——这样即使用两个子仓库完成一个销售订单的发货。 (Odoo)
  6. 验证发货后,返回销售订单页面点击 “Create Invoice” 开发票。

通过这一流程,销售订单只选了“VWH”仓库,后台却自动从多个仓库完成发货,实现多仓协同。

五、注意事项与限制说明

在实际运用中,有一些重要的限制和注意点,不能忽视。

  1. 虚拟仓库地址在文档上可能被当作 Source Location 的地址。也就是说,在发货、包装、快递单据中,可能显示的是虚拟仓库的地址,而非实际子仓库的物理地址。对此必须确认流程是否允许。 (Odoo)
  2. 对于两步/三步收发货流程,使用虚拟仓库可能导致“输出区”或“打包区”显示为母仓库地址,这是系统当前机制的限制。 (Odoo)
  3. 虚拟仓库 Stock 地点被设置为 View 类型,其本身不能储存产品库存。因此必须将真实库存存放于子仓库。否则,会导致库存显示异常。 (Odoo)
  4. 销售订单中的 Warehouse 字段必须选为虚拟仓库,否则系统不会触发跨仓库取货逻辑。若选错,将只从单一仓库取货。 (Odoo)
  5. 若在发货单中 Source Location 不是虚拟仓库 Stock 地点,会导致系统无法自动从多个仓库调货。必要时可在发货单上手动点击 “Check Availability” 或运行调度器(Inventory → Operations → Run Scheduler)重试。 (Odoo)
  6. 虚拟仓库视为母级层级,仅用于逻辑结构,不建议将 “存货收货” 放在其上操作,否则可能造成混淆。

六、最佳实践建议

结合上述流程与注意事项,以下为一些实践层面的建议,便于企业顺畅落地多仓协同。

  1. 明确仓库层级结构:建议在组织内部画出仓库结构图,明确母仓库(虚拟)与子仓库(物理)关系,并标识子仓库存货情况。
  2. 维护库存准确性:子仓库的库存状态必须保持准确,以便系统在销售发货时正确分仓。错误库存会导致订单延迟。
  3. 销售人员培训:让销售了解“当选仓库为虚拟仓库”意味着系统可自动分仓,避免手动选错但仍限制为单仓。
  4. 检测发货地址显示:确认快递单据、包装证明、发货通知中显示的地址是否为真实仓库地址,若仍显示母仓库地址,应评估企业流程是否接受。
  5. 测试多步流程:如果企业启用了两步/三步收发货流程,应先在测试环境试用虚拟仓库模式,观察是否存在地址、物流路径、操作中的不合理。
  6. 调整默认仓库设置:如多数销售都应使用多仓模式,则可将虚拟仓库设为默认仓库,减少销售人员手动选仓库的风险。
  7. 监控库存调拨日志:建议在 Inventory → Reporting 中查看 Moves History(移动历史)报表,观察是否有跨仓库取货情况,并及时处理异常。
  8. 持续优化仓库结构:随着运营升级,可能需要增减仓库、调整子仓库关系,此时应及时维护母仓库结构。

七、总结

通过本文,我们梳理了 Odoo 19 中“利用虚拟地点从多个仓库销售库存产品”功能的原理、配置步骤、操作流程、注意事项及最佳实践。其核心价值在于:

  • 支持多个物理仓库协同取货,提高库存调度效率;
  • 简化销售订单流程,销售人员只需选择“一个仓库”(即虚拟母仓库)即可;
  • 在后台自动将库存从多个子仓库抽取,提升客户交付能力。

如下为实现的效果:



关于我们

​我们致力于帮助中小企业实现数字化转型,我们的团队由一群充满激情和创新思维的专业人士组成,他们具备丰富的行业经验和技术专长。

扫一扫获取顾问以及手册

归档
登录 留下评论
Odoo 设备管理解决方案 (基于Odoo 19功能)
Odoo的设备管理功能无缝集成在维护保养 (Maintenance) 和 库存 (Inventory) 模块中,旨在实现设备全生命周期管理,从采购、维保到备件消耗的闭环追踪。本手册将详细指导您配置和使用设备保修、定期维保及备品备件管理功能。