<?php
use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';

$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();

$state = $objectManager->get(\Magento\Framework\App\State::class);
$state->setAreaCode('frontend');

$quoteRepository = $objectManager->get(\Magento\Quote\Model\QuoteRepository::class);
$maskedQuoteIdToQuoteId = $objectManager->get(\Magento\Quote\Model\MaskedQuoteIdToQuoteIdInterface::class);
$productRepository = $objectManager->get(\Magento\Catalog\Api\ProductRepositoryInterface::class);
$stockRegistry = $objectManager->get(\Magento\CatalogInventory\Api\StockRegistryInterface::class);

$maskedCartId = 'Na6CiXgKZBzM1Ixl4MMQbyNsVfGuuBnC';

try {
    // Convert masked cart ID to real quote ID
    $quoteId = $maskedQuoteIdToQuoteId->execute($maskedCartId);
    $quote = $quoteRepository->get($quoteId);
    
    echo "Quote found: ID = " . $quote->getId() . PHP_EOL;
    echo "Quote is active: " . ($quote->getIsActive() ? 'Yes' : 'No') . PHP_EOL;
    echo "Quote items count: " . $quote->getItemsCount() . PHP_EOL;
    echo "Quote has errors: " . ($quote->getHasError() ? 'Yes' : 'No') . PHP_EOL;
    
    if ($quote->getHasError()) {
        foreach ($quote->getErrors() as $error) {
            echo "Error: " . $error->getText() . PHP_EOL;
        }
    }
    
    echo PHP_EOL . "Products in cart:" . PHP_EOL;
    foreach ($quote->getAllVisibleItems() as $item) {
        $product = $item->getProduct();
        echo "- SKU: " . $item->getSku() . PHP_EOL;
        echo "  Product ID: " . $product->getId() . PHP_EOL;
        echo "  Name: " . $item->getName() . PHP_EOL;
        echo "  Qty: " . $item->getQty() . PHP_EOL;
        echo "  Has error: " . ($item->getHasError() ? 'Yes' : 'No') . PHP_EOL;
        
        if ($item->getHasError()) {
            echo "  Error: " . $item->getMessage() . PHP_EOL;
        }
        
        $stockItem = $stockRegistry->getStockItem($product->getId());
        echo "  In stock: " . ($stockItem->getIsInStock() ? 'Yes' : 'No') . PHP_EOL;
        echo "  Stock qty: " . $stockItem->getQty() . PHP_EOL;
        
        echo "  Is saleable: " . ($product->isSaleable() ? 'Yes' : 'No') . PHP_EOL;
        echo "  Keep out of stock: " . ($product->getData('keep_out_of_stock') ? 'Yes' : 'No') . PHP_EOL;
        echo "  Status: " . $product->getStatus() . PHP_EOL;
        echo "  Visibility: " . $product->getVisibility() . PHP_EOL;
        
        echo PHP_EOL;
    }
    
    $paymentMethods = $objectManager->get(\Magento\Payment\Model\Config::class)->getActiveMethods();
    echo "Active payment methods:" . PHP_EOL;
    foreach ($paymentMethods as $code => $method) {
        echo "- " . $code . ": " . $method->getTitle() . PHP_EOL;
    }
    
} catch (\Exception $e) {
    echo "Error: " . $e->getMessage() . PHP_EOL;
    echo "Trace: " . $e->getTraceAsString() . PHP_EOL;
}
