![]() 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/cartforge.co/scripts/ |
<?php use Magento\Framework\App\Bootstrap; use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\CatalogInventory\Api\StockRegistryInterface; use Magento\Framework\App\State; try { require_once '../app/bootstrap.php'; } catch (\Exception $e) { echo 'Autoload error: ' . $e->getMessage(); exit(1); } ini_set('display_errors', 1); error_reporting(E_ALL); $params = $_SERVER; $bootstrap = Bootstrap::create(BP, $params); $objectManager = $bootstrap->getObjectManager(); $appState = $objectManager->get(State::class); $appState->setAreaCode('adminhtml'); // Get necessary services $productRepository = $objectManager->get(ProductRepositoryInterface::class); $stockRegistry = $objectManager->get(StockRegistryInterface::class); $connection = $objectManager->get('Magento\Framework\App\ResourceConnection')->getConnection(); // Fetch out-of-stock products using SKU query $query = " SELECT cpe.entity_id, cpe.sku, ciss.stock_status FROM catalog_product_entity AS cpe INNER JOIN cataloginventory_stock_status AS ciss ON cpe.entity_id = ciss.product_id WHERE ciss.stock_status = 0;"; $outOfStockProducts = $connection->fetchAll($query); if (count($outOfStockProducts) > 0) { // Loop through the out-of-stock products and update them to in stock foreach ($outOfStockProducts as $productData) { $sku = $productData['sku']; try { // Get the stock item by SKU $stockItem = $stockRegistry->getStockItemBySku($sku); if ($stockItem) { // Set product to in stock $stockItem->setIsInStock(true); // Set is_in_stock to true $stockRegistry->updateStockItemBySku($sku, $stockItem); // Optionally, save the product to apply the stock changes $product = $productRepository->get($sku); $productRepository->save($product); echo "Product SKU: $sku updated to be in stock." . PHP_EOL; } else { echo "No stock item found for SKU: $sku" . PHP_EOL; } } catch (\Exception $e) { echo "Error updating SKU: $sku - " . $e->getMessage() . PHP_EOL; } } echo "All out-of-stock products have been processed and updated." . PHP_EOL; } else { echo "No out-of-stock products found." . PHP_EOL; }