Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/cartforge.co/scripts/update_in_stock.php
<?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;
}

Spamworldpro Mini