![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-inventory-api/Test/_files/ |
<?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 } }