scriptbaker/magento2-ship-out-of-stock-items

此包的最新版本(dev-master)没有可用的许可证信息。

此Magento 2模块允许创建包含缺货物品的订单的发货。在默认的Magento中,尝试为包含缺货物品的订单创建发货将导致错误:“您请求的产品数量中并非所有产品都可用。”此模块通过调整库存数量来解决这个问题,以确保可以处理发货。

dev-master 2024-05-17 16:56 UTC

This package is not auto-updated.

Last update: 2024-09-21 16:52:00 UTC


README

概览

为Magento 2的Scriptbaker_ShipOutOfStockItems模块允许创建包含缺货物品的订单的发货。在默认的Magento中,尝试为包含缺货物品的订单创建发货将导致错误:“您请求的产品数量中并非所有产品都可用。”此模块通过调整库存数量来解决这个问题,以确保可以处理发货。

功能

  • 允许创建缺货物品的发货。
  • 自动调整库存数量以允许处理发货。
  • 无缝集成到Magento的多源库存(MSI)系统。

安装

  1. 下载模块:下载模块包或将其克隆到app/code/Scriptbaker/ShipOutOfStockItems目录。

  2. 启用模块

    bin/magento module:enable Scriptbaker_ShipOutOfStockItems
  3. 运行设置升级

    bin/magento setup:upgrade
  4. 清除缓存

    bin/magento cache:clean

使用

一旦安装并启用模块,它将自动调整库存数量,以允许创建缺货物品的发货。无需进行其他配置。

实现细节

模块监听两个关键事件并根据相应调整库存数量

  1. sales_order_shipment_save_before:
    • 在创建发货前调整库存数量,以确保可以无错误地处理。
  2. sales_order_shipment_save_after:
    • 在发货保存后更新库存数量,以反映准确的库存水平。

包含的文件

  • registration.php:将模块注册到Magento。
  • etc/module.xml:声明模块及其版本。
  • etc/events.xml:注册sales_order_shipment_save_beforesales_order_shipment_save_after事件的观察者。
  • Observer/AlwaysShipOrder.php:包含在发货创建前调整库存数量的逻辑。
  • Observer/UpdateStockAfterShipment.php:包含在发货保存后更新库存数量的逻辑。

观察者逻辑

AlwaysShipOrder

AlwaysShipOrder观察者执行以下操作

  1. 检索发货中的所有物品。
  2. 对于每个物品,检查可用的库存数量。
  3. 如果库存数量小于请求的发货数量,则调整库存数量以满足发货要求。
  4. 使用SourceItemsSaveInterface保存更新的库存数量。

UpdateStockAfterShipment

UpdateStockAfterShipment观察者执行以下操作

  1. 检索发货中的所有物品。
  2. 在发货保存后更新库存数量,以反映准确的库存水平。
  3. 确保库存系统与由发货引起的更改保持最新。

贡献

如果您想为此模块做出贡献,请将其仓库分叉并提交包含您更改的拉取请求。所有贡献都受欢迎。

支持

如果您遇到任何问题或对模块有任何疑问,请在此仓库中打开问题或在[hello@scriptbaker.com]联系我们。

许可证

此模块为开源软件,并使用MIT许可证授权。

感谢您使用Scriptbaker_ShipOutOfStockItems。我们希望它能帮助提高您的Magento 2体验。