Sell stock from multiple warehouses using virtual locations_ Odoo Inventory

利用虚拟地点从多个仓库销售库存产品

对于规模较小的公司来说,从一个仓库保存存货和销售存货可能是可行的,但规模较大的公司可能需要在多个地点的多个仓库保存存货或销售存货。

在 Odoo 中,可以使用*虚拟位置*从多个仓库提取产品,以满足销售需求。

 重要

本文档中介绍的解决方案使用虚拟仓库来完成多个仓库的订单,但存在一些局限性。在继续之前,请考虑以下几点:

  1. 当在销售订单上将 仓库 字段设置为虚拟仓库时,虚拟仓库的地址会在拣货、包装和发货单上显示,而**不是**实际仓库的地址。

  2. 每个位置都有一个 warehouse_id (隐藏字段)。这意味着虚拟仓库的存货**不是**真实仓库的存货总和,而是仓库 ID 为虚拟仓库的位置库存的总和。

**危险**  
对于那些使用两步或三步交付流程的用户,存在一个潜在的限制:

在各种表格上的输出或打包区域错误地列出了虚拟仓库的地址。  
对于两步或三步交付流程,没有解决方案。  
只有在将虚拟仓库的地址设置为输出或打包区域对公司的业务流程有意义时,才继续操作。

注解  

为了在仓库中创建虚拟位置并继续以下步骤,必须启用“存储位置”和“多步路线”功能。  
为此,请转到库存应用 → 配置 → 设置,在仓库部分滚动,并启用“存储位置”和“多步路线”选项。然后,保存更改以完成。

创建虚拟父位置

在创建任何虚拟库存位置之前,创建一个新的仓库,它充当其他物理仓库的父位置。

**为什么是“虚拟”仓库?**  

虚拟仓库非常适合拥有多个物理仓库的公司。这是因为当一个仓库的特定产品的库存耗尽,而另一个仓库仍然有库存时,可能会出现这种情况。在这种情况下,来自这两个(或更多)仓库的库存可用于完成单个销售订单。
“虚拟”仓库充当存储在公司物理仓库中的所有库存的单一聚合器,并用于(出于可追溯性目的)在Odoo中创建位置层次结构。


要创建一个新的仓库,请转到库存应用 → 配置 → 仓库,并点击创建。从这里,可以更改仓库的名称和简称,以及其他仓库详细信息在仓库配置标签下。

创建子仓库

至少创建两个子仓库以链接到虚拟仓库。

重要
为了从多个仓库提取库存以完成销售订单,至少需要有两个仓库作为虚拟父位置仓库的子位置。

为此,请导航到库存应用程序>配置>仓库,单击“创建”,然后按照前面的说明配置物理库存位置。

重要

虽然虚拟库存位置稍后将更改为“视图”,但此时位置类型必须为“内部位置”,以便在下一节中链接子仓库。

链接子仓库到虚拟库存

将物理仓库设置为前一步配置的虚拟位置的子位置,转到库存应用 → 配置 → 位置。

从搜索栏中删除任何过滤器。然后,单击先前创建为子位置的物理仓库位置(例如WHA),并单击Edit。
从下拉菜单中将父位置字段从PhvsicalLocations更改为虚拟仓库的库存位置(例如xn/stock),然后单击保存。
重要
要在父位置下拉菜单中选择虚拟仓库的库存位置,父仓库库存位置(例如xn/stock)必须将其位置类型设置为内部位置。

重复上述步骤配置两个或多个子仓库。
一旦完成,如果任何一个地点的库存不足,虚拟的母仓库(例如xn/库存)使用子仓库(例如WHA和WHB)的库存履行订单。

设置虚拟库存位置为“视图”

将虚拟库存位置的位置类型设置为“视图”,因为它是一个不存在的位置,用于组合多个物理仓库。
要做到这一点,导航到库存应用程序>配置>位置。
从位置列表中单击先前创建的虚拟仓库的库存位置。
在位置表单上,在附加信息标题下,将位置类型设置为视图。保存更改。

**小技巧**  
要查看所有链接子仓库的总数量,请转到产品表单并点击“在手”智能按钮。

示例:从虚拟仓库销售产品

使用虚拟父位置从多个仓库销售产品,数据库中必须至少配置有两个仓库——每个仓库中至少有一种产品,各自有相应的库存量。

例子
以下产品“玩具兵”在各地点有售,数量如下:
WHA/库存:1
WHB/库存:2
仓库WHA和WHB是虚拟仓库的子仓库


通过导航到销售应用程序并单击新建,为产品创建报价。在报价上,添加一个客户,然后单击添加产品,以添加存储在两个仓库中的两个产品。
然后,单击销售订单表单上的其他信息选项卡。在交货部分下,将仓库字段值更改为先前创建的虚拟仓库。接下来,确认销售订单。

然后,单击交货智能按钮。从仓库交货单上确认源位置值与销售订单中的仓库字段值相匹配。两者都应该列出虚拟仓库的位置。


最后,在仓库交付表单上,在详细操作选项卡下,确认每个产品的选自列中的地点与子位置相匹配绑定到虚拟父位置。

重要
仓库交付表单上的“源位置”和销售订单的“其他信息”标签下的“仓库”,必须匹配,以便从不同仓库提取销售订单中的产品。

如果虚拟仓库没有在仓库交付表单的“源位置”字段中,或者没有在销售订单的“仓库”字段中分配,则需要重新运行调度程序、检查可用性,或者重新创建销售订单。

**小技巧**  
要使用虚拟父位置作为销售订单的默认仓库,每个销售人员的员工表单中应有虚拟仓库的分配。

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这行代码是将染色体中前 num_warehouses 个基因加起来,得到一个表示在每个仓库中放置多少辆卡车的向量。其中 chromosome 是染色体向量,表示遗传算法中的一个解。在遗传算法中,染色体是一个由基因组成的向量,基因是问题的解决方案的一部分。在这个特定的问题中,一个基因表示在一个仓库中放置了多少辆卡车。因此,通过将前 num_warehouses 个基因相加,可以得到一个表示在每个仓库中放置多少辆卡车的向量。 ### 回答2: 题目中给出了一个等式:`num_trucks = sum(chromosome(1:num_warehouses))`。我们可以根据等式中的变量进行分析和回答。 首先,我们可以看到`num_warehouses`是一个变量,它表示仓库的数量。 接下来,`chromosome`是一个数组,它可能是一个基因组或染色体,其中每个元素可能代表一个仓库,也可以是其他的东西。 我们使用数学符号`chromosome(1:num_warehouses)`表示从数组`chromosome`中取出从1到`num_warehouses`之间的元素。 最后,`sum`函数表示求和,它将`chromosome(1:num_warehouses)`中的所有元素相加。 综上所述,等式`num_trucks = sum(chromosome(1:num_warehouses))`的意思是,通过将`chromosome(1:num_warehouses)`中的元素相加,得到变量`num_trucks`的值。也就是说,`num_trucks`表示仓库的数量。每个仓库的信息存储在`chromosome`数组中,通过取出数组的前`num_warehouses`个元素,并求和,就可以得到需要的结果。 需要注意的是,我们没有给出`chromosome`数组和`num_warehouses`变量的具体定义和取值范围,所以无法得到具体的结果。 ### 回答3: 这行代码的含义是将染色体中1到num_warehouses位置的基因相加,并将结果赋给变量num_trucks。 染色体是一个由基因组成的序列,每个基因代表一个变量或者一个决策的取值。在这个代码中,染色体的长度为num_warehouses,每个基因都代表一个仓库的选择情况,即是否选择该仓库作为送货目的地。 通过sum函数,我们将染色体中基因的取值相加,得到一个总和。这个总和表示有多少辆卡车将要出发,去不同的仓库进行货物的运输。因为染色体中的每个基因都有两种取值:0或1,分别表示不选择该仓库和选择该仓库。所以,相加后的结果就是选择了多少个仓库,即需要多少辆卡车。 最后,我们将这个总和赋给变量num_trucks,方便后续的代码使用和分析。 总结来说,这行代码的作用是计算染色体中选择了多少个仓库,从而确定需要多少辆卡车进行货物的运输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值