Your IP : 216.73.216.43


Current Path : /home/rtorresani/www/vendor/magento/module-inventory-api/Test/_files/
Upload File :
Current File : //home/rtorresani/www/vendor/magento/module-inventory-api/Test/_files/stocks_rollback.php

<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

use Magento\Framework\Exception\NoSuchEntityException;
use Magento\InventoryApi\Api\StockRepositoryInterface;
use Magento\InventoryIndexer\Test\Integration\Indexer\RemoveIndexData;
use Magento\InventorySalesApi\Api\Data\SalesChannelInterfaceFactory;
use Magento\TestFramework\Helper\Bootstrap;

/** @var StockRepositoryInterface $stockRepository */
$stockRepository = Bootstrap::getObjectManager()->get(StockRepositoryInterface::class);
$removeIndexData = Bootstrap::getObjectManager()->get(RemoveIndexData::class);

foreach ([10, 20, 30] as $stockId) {
    try {
        //Unassign sales channels from stocks in order to delete given stocks.
        $stockRepository = Bootstrap::getObjectManager()->get(StockRepositoryInterface::class);
        $salesChannelFactory = Bootstrap::getObjectManager()->get(SalesChannelInterfaceFactory::class);
        $stock = $stockRepository->get($stockId);
        $extensionAttributes = $stock->getExtensionAttributes();
        $extensionAttributes->setSalesChannels([]);
        $stockRepository->save($stock);

        //Delete stock.
        $stockRepository->deleteById($stockId);
    } catch (NoSuchEntityException $e) {
        //Stock already removed
    }
    try {
        $removeIndexData->execute([$stockId]);
    } catch (\Exception $exception) {
        //Stock index data already removed
    }
}