Inventory Management CLI引用

Inventory Management提供管理清单数据和配置设置的命令。

这些命令包括:

  • 检查和解决影响可销售数量的预订不一致问题
  • 为距离优先级算法添加地理代码

解决预留不一致

预留对每种库存的产品SKU设置了可销售数量暂挂。 在您发运、添加产品、取消或退款订单时,报酬保留将输入以放置或清除这些暂挂。

Inventory Management提供了两个命令来检查和解决保留不一致:

保留不一致的原因

Inventory Management为关键事件生成预留:

  • 订单安排(初始预订)
  • 订单装运(补偿预留)
  • 退款单或发放贷项通知单(报酬预留)
  • 订单取消(补偿预留)

在以下情况下,可能会出现保留不一致:

  • Inventory Management丢失初始预订并输入过多预订补偿(补偿过重并导致数量不一致)
  • Inventory Management正确放置了初始预订,但丢失了补偿预订。

您可以在inventory_reservation表中手动查看和检查预留。

以下配置和事件可能会导致预订不一致:

  • 升级至2.3.x,订单未处于最终状态(“完成”、“已取消”或“已关闭”)。 Inventory Management为这些订单创建补偿预留,但它没有输入或从可销售数量中扣除的初始预留。 建议在从2.1.x或2.2.x升级到Adobe Commerce或Magento Open Source v2.3.x后使用这些命令。 如果您有待定订单,则这些命令会正确更新您的可销售数量和预留,以便进行销售和订单履行。
  • 您不管理Stock,稍后再更改此配置。 ​您可以在配置中将​ Manage Stock ​设置为No的情况下开始使用2.3.x。 Commerce未在订单下单和装运事件中预订。 如果您稍后启用​ Manage Stock ​配置并创建了某些订单,则当您处理并履行该订单时,可销售数量将会因补偿预留而损坏。
  • 在订单提交到某个网站时,您重新分配该网站的Stock。 初始预留将输入初始库存,所有报酬预留将输入新库存。
  • 所有保留的总数不能解析为0 ​处于最终状态(完成、已取消、已关闭)的订单范围内的所有保留应解析为0,正在清除所有可销售数量暂挂。

列出不一致命令

list-inconsistencies命令检测并列出所有保留不一致。 使用命令选项仅检查已完成或不完整的订单,或检查所有订单。

bin/magento inventory:reservation:list-inconsistencies

命令选项:

  • -c--complete-orders — 返回已完成订单的不一致情况。 已完成的订单可能仍保留不正确的预留。
  • -i--incomplete-orders — 未完成订单(部分发运,未发运)的退货不一致。 不正确的保留可能会保留过多或不足的订单可销售数量。
  • -b--bunch-size — 定义一次加载的订单数。
  • -r--raw — 原始输出。

使用-r的响应以<ORDER_INCREMENT_ID>:<SKU>:<QUANTITY>:<STOCK-ID>格式返回:

  • 订单ID指示不一致的范围。
  • SKU指示具有不一致的产品。
  • 数量设置要为预留补偿输入的金额。
  • 库存ID定义为库存的范围,它使用预留来计算可销售数量。

示例:

bin/magento inventory:reservation:list-inconsistencies

Inconsistencies found on following entries:
Order 172:
- Product bike-123 should be compensated by +2.000000 for stock 1
bin/magento inventory:reservation:list-inconsistencies -r

172:bike-123:+2.000000:1

如果未发现任何问题,则会返回以下消息:未找到任何订单不一致。

创建补偿命令

create-compensations命令创建薪酬预留。 根据问题而定,系统将创建新保留以放置或释放对可销售数量的暂挂。

要创建保留,请使用格式<ORDER_INCREMENT_ID>:<SKU>:<QUANTITY>:<STOCK-ID>提供补偿,如172:bike-123:+2.000000:1

bin/magento inventory:reservation:create-compensations

命令选项:

  • -r--raw — 返回原始输出。

如果请求的格式不正确,则会显示以下消息:

Error while parsing argument "your_incorrect_format_argument". Given argument does not match pattern "/(?P<increment_id>.*):(?P<sku>.*):(?P<quantity>.*):(?P<stock_id>.*)/".

当该命令创建预留时,它会显示指示SKU、订单和库存更新的消息。

bin/magento inventory:reservation:create-compensations 172:bike-123:+2.000000:1

Following reservations were created:
- Product bike-123 was compensated by +2.000000 for stock 1

如果报酬条目的SKU包含空格,请用引号将SKU括起来。

bin/magento inventory:reservation:create-compensations 172:"bike 123":+2.000000:1

检测不一致并创建补偿

您可以使用管道同时运行list-inconsistenciescreate-compensations来检测不一致并立即创建补偿。 使用-r命令选项生成原始数据并将其提交到create-compensations

bin/magento inventory:reservation:list-inconsistencies -r | bin/magento inventory:reservation:create-compensations

示例响应:

bin/magento inventory:reservation:list-inconsistencies -r | bin/magento inventory:reservation:create-compensations
Following reservations were created:
- Product bike-123 was compensated by +2.000000 for stock 1
- Product bikehat-456 was compensated by +1.000000 for stock 1

更新完成后,运行list命令以验证:

bin/magento inventory:reservation:list-inconsistencies -r
No order inconsistencies were found.

您还可以发送命令以检测不一致情况,并为不完整(-i)或完整(-c)订单创建补偿。

bin/magento inventory:reservation:list-inconsistencies -r -i | bin/magento inventory:reservation:create-compensations
bin/magento inventory:reservation:list-inconsistencies -r -c | bin/magento inventory:reservation:create-compensations

导入地理代码

Inventory Management提供了距离优先级算法,这有助于确定发送完整订单或部分订单的最佳选项。 该算法使用GPS信息或地理代码计算订单中每个物料的来源(仓库或其他物理位置)与发运地址之间的距离。 根据这些结果,算法建议使用哪个来源按顺序发运每个项目。

商家会选择计算距离所需的GPS或地理代码数据提供商:

  • Google MAP ​使用Google Map Platform服务计算送货目标地址与源位置之间的距离和时间。 此选项需要Google计费计划,并且可能会通过Google产生费用。

  • 离线计算 ​使用从geonames.org下载并通过命令导入到Commerce中的数据计算距离。 此选项是免费的。

要导入用于离线计算的地理代码,请执行以下操作:

输入以下命令,该命令带有以空格分隔的ISO-3166 alpha2国家/地区代码列表:

bin/magento inventory-geonames:import <country code> <country code> ...

例如:

bin/magento inventory-geonames:import us ca gb de

系统下载地理编码数据并将其导入数据库,然后显示消息Importing <country code>: OK

recommendation-more-help
c1792860-ac60-428b-ad4b-59517d4ea712