Cómo disminuir el inventario de existencias de Magento 2 en Factura en lugar de Orden

Estás leyendo la publicación: Cómo disminuir el inventario de existencias de Magento 2 en Factura en lugar de Orden

espacio de nombres Proveedor\Extensión\Observador;

use Magento\Framework\Event\ObserverInterface;

use Magento\Framework\Event\Observer;

utilice Magento\CatalogInventory\Api\StockRegistryInterface;

use Magento\Catálogo\Modelo\ProductRepository;

clase UpdateInventory implementa ObserverInterface

{

$productRepository protegido;

$stockRegistry protegido;

función pública __construct(ProductRepository $productRepository,

StockRegistryInterface $stockRegistry)

{

$this->productRepository = $productRepository;

$this->stockRegistry = $stockRegistry;

}

función pública ejecutar (Observador $ observador)

{

intentar

{

$factura = $observador->getEvent()->getInvoice();

$facturaItems = $factura->getAllItems();

foreach ($invoiceItems como $elemento)

{

$productId = $item->getProductId();

$producto = $este->productRepository->getById($productId);

$sku = $producto->getSku();

$artículo de stock = $this->stockRegistry->getStockItemBySku($sku);

$cantidad = $artículo en stock->getQty() – $artículo->getQty();

$artículo en stock->setQty($qty);

$artículo en stock->setIsInStock((bool)$qty);

$this->stockRegistry->updateStockItemBySku($sku, $stockItem);

}

}

atrapar (\Excepción $e)

{

devuelve $e->getMessage();

}

}

}

🔥 Recomendado:  Una mirada en profundidad al marketing en TikTok