路线和推拉规则
在库存管理中,供应链策略决定了何时采购/生产产品、将其运送到配送中心,以及何时将其提供给零售渠道。
在 Odoo 中,产品的供应链策略可以通过路线(Routes)进行配置,这些路线包含推规则(Push Rules)和拉规则(Pull Rules)。一旦所有配置完成,库存应用程序可以根据配置的推/拉规则自动生成转移。
仓库内部
在一个通用的仓库中,有接收码头、质量控制区、存储位置、拣货和包装区域以及装运码头。所有产品都会经过这些位置。当产品在这些位置之间移动时,每个位置都会触发产品的指定路线和规则。
在这个示例中,供应商卡车在接收码头卸下订购的托盘产品。操作员然后在接收区域扫描产品。根据产品的路线和规则,这些产品中的一些会被送到质量控制区(例如,用于制造过程的组件产品),而其他产品则直接存放在各自的位置。
在这个示例中,早上拣货员会为当天需要准备的所有订单拣货。这些物品从存储位置移到靠近订单包装区域的拣货区。然后,订单会被包装到各自的箱子里,通过传送带送到装运码头,准备送到客户手中。
拉规则
拉规则通过需求触发采购,而推规则则由产品到达特定位置时触发。
拉规则用于满足销售订单。Odoo 会在每个订单的客户位置生成需求。由于拉规则由需求触发,Odoo 会在客户位置上查找定义的拉规则。
例如,一个“交货单”拉规则会将产品从装运区域转移到客户位置,并创建两个位置之间的转移。
然后,Odoo 会找到另一个拉规则,试图满足装运区域的需求:将产品从包装区转移到装运区域的“包装”规则。最后,其他拉规则被触发,直到创建从库存到拣货区的转移。
注意
所有这些产品转移都是由Odoo根据拉动规则自动生成的,从终点(客户位置)开始,向后推到起点(库存仓库)。在实际操作中,操作员处理这些转移的顺序是相反的:首先是拣货,然后是打包,最后是发货订单。
推规则
推规则相对容易理解。它们不是基于需求生成文档,而是在产品到达特定位置时实时触发。推规则基本上表示:“当产品到达特定位置时,将其移动到另一个位置。”
例如:当产品到达接收区域时,将其移动到存储位置。由于不同的推规则可以应用于不同的产品,用户可以为不同产品分配不同的存储位置。
另一个推规则可以是:当产品到达某个位置时,将其移到质量控制区域。然后,一旦质量检查完成,将其移动到存储位置。
注意
只有在没有已经生成产品转移的拉动规则时,推送规则才能被触发。
重点
像这样的推送/拉动规则集被称为路线。规则的分组决定了产品是否在同一个转移中被分组。例如,在拣货操作中,所有订单及其产品都被分组在一个转移中,而打包操作则按照每个客户订单进行分组。
路线和规则的使用
因为路线是推/拉规则的集合,Odoo 可以帮助您管理高级路线配置,例如:
- 管理产品制造链。
- 管理每个产品的默认位置。
- 根据业务需求定义库存仓库内的路线,如质量控制、售后服务或供应商退货。
- 通过生成租赁产品的自动退货移动来帮助租赁管理。
要为产品配置路线,首先打开库存应用程序,转到配置 ‣ 设置。在仓库部分,启用多步骤路线功能并点击保存。
重点
存储位置功能会随多步路线功能一起自动激活。
完成第一步后,用户可以使用Odoo自带的预配置路线,或者创建自定义路线。
预配置路线
要访问 Odoo 的预配置路线,转到库存 ‣ 配置 ‣ 仓库。然后,打开一个仓库表单。在仓库配置选项卡中,用户可以查看仓库的入库和出库预配置路线。
一些更高级的路线,如拣货-包装-装运,也可用。用户可以选择最适合其业务需求的路线。一旦入库和出库路线设置完成,转到库存 ‣ 配置 ‣ 路线以查看 Odoo 生成的具体路线。
在路线页面,点击某条路线以打开路线表单。在路线表单中,用户可以查看路线适用于哪些地方。用户还可以将路线设置为仅适用于特定公司。这在多公司环境中很有用,例如,用户可以在国家A拥有一家公司和仓库,在国家B拥有第二家公司和仓库。
在路线表单的底部,用户可以查看该路线的具体规则。每条规则都有一个动作、一个源位置和一个目标位置。
自定义路线
要创建自定义路线,转到库存‣ 配置 ‣ 路线,并点击创建。接下来,选择此路线可以选择的位置。路线可以适用于多个地方的组合。
每个位置的行为不同,因此只勾选有用的位置并相应地调整每条路线非常重要。然后,配置路线的规则。
产品类别
如果路线适用于产品类别,仍然需要在产品类别表单上手动设置该路线。转到库存 ‣ 配置 ‣ 产品类别,然后选择产品类别并打开表单。接下来,点击编辑并在物流部分下设置路线。
当将路线应用于产品类别时,路线中配置的所有规则都会应用于该类别中的每个产品。如果企业对同一类别的所有产品使用直运流程,这将非常有用。
仓库
同样的行为也适用于仓库。如果路线适用于仓库,则在所选仓库内发生的所有符合路线规则条件的转移将遵循该路线。
在选择适用于仓库时,仓库下拉菜单视图。
销售订单行
如果路线适用于销售订单行,则情况有所不同。创建报价时必须手动选择路线。这在某些产品需要通过不同路线时非常有用。
请记住在报价/销售订单上切换路线列的可见性。然后,可以在报价/销售订单的每一行选择路线。
允许添加新行到销售订单的菜单视图。
产品
最后,还有适用于产品的路线。这些路线的工作方式与产品类别相似:一旦选择,必须在产品表单上手动设置路线。
要在产品上设置路线,请转到库存 ‣ 产品 ‣ 产品并选择所需的产品。然后,转到库存选项卡,在操作部分下选择路线。
重点
必须在路线中设置规则,路线才能生效。
规则
规则在路线表单上定义。首先,转到库存 ‣ 配置 ‣ 路线并打开所需的路线表单。接下来,点击编辑并在规则部分点击添加一行。
每条规则都有一个动作:
- 从某地拉出(Pull From): 此规则由特定位置的产品需求触发。
- 推到某地(Push To): 此规则由产品到达定义的源位置时触发。
- 拉和推(Pull & Push): 此规则允许在上述两种情况下生成拣货。
- 采购(Buy): 当需要在目的地位置需要产品时,会创建一个询价单以满足需求。
- 制造(Manufacture): 当在源位置需要产品时,会创建一个制造订单以满足需求。
规则的操作类型也必须定义。这定义了规则生成的拣货类型。
如果规则的动作设置为从某地拉出或拉和推,则必须设置供应方法。供应方法定义了源位置发生的事情:
- 从库存中取货(Take From Stock): 产品从源位置的可用库存中取出。
- 触发另一条规则(Trigger Another Rule): 系统尝试找到一条库存规则,将产品带到源位置。可用库存被忽略。
- 从库存中取货,如果不可用,触发另一条规则(Take From Stock, if Unavailable, Trigger Another Rule): 产品从源位置的可用库存中取出。如果没有可用库存,系统尝试找到一条规则,将产品带到源位置。
示例流程
在这个示例中,我们使用自定义的拣货-包装-装运路线来尝试具有高级自定义路线的完整流程。
首先,快速查看路线的规则及其供应方法。有三条规则,都是从某地拉出的规则。每条规则的供应方法如下:
- 从库存中取货:当 WH/包装区需要产品时,创建从 WH/库存到 WH/包装区的内部转移以满足需求。
- 触发另一条规则:当 WH/输出区需要产品时,创建从 WH/包装区到 WH/输出区的内部转移以满足需求。
- 触发另一条规则:当客户位置需要产品时,创建从 WH/输出区到客户位置的交货单以满足需求。 这意味着,当客户订购具有拣货-包装-装运路线设置的产品时,会创建交货单以满足订单。
要准备交货单,需要在输出区有包装好的产品,因此会请求从包装区到输出区的内部转移。
显然,包装区需要准备好要包装的产品。因此会请求到库存的内部转移,员工可以从仓库中收集所需的产品。
如文档介绍所述,流程的最后一步(对于此路线为交货单)是首先触发的,然后触发其他规则,直到我们达到流程的第一步(此处为从库存到包装区的内部转移)。现在,一切都准备好处理,客户可以收到订购的物品。
在这个示例中,当所有规则都被触发且转移完成时,产品会被交付给客户。