In magento 1 I was able to list all products in an external php script with the follow
May be you are looking a way to run a standalone script in Magento root.
If yes you may follow as below mentioned.
<?php use Magento\Framework\App\Bootstrap; require __DIR__ . '/app/bootstrap.php'; $params = $_SERVER; $bootstrap = Bootstrap::create(BP, $params); $obj = $bootstrap->getObjectManager(); $state = $obj->get('Magento\Framework\App\State'); $state->setAreaCode('frontend'); $quoteId = 1; $quote = $obj->get('Magento\Checkout\Model\Session') ->getQuote() ->load($quoteId); echo '<pre>'; print_r($quote->getOrigData()); echo '</pre>'; $productId = 1; $product = $obj->get('Magento\Catalog\Model\ProductRepository') ->getById($productId); echo '<pre>'; print_r($product->getData()); echo '</pre>'; ?>
I took above code from Mageplaza blog. You can customize it as per your requirement.
You may also check following https://magento.stackexchange.com/questions/39981/how-can-i-bootstrap-magento-2-in-a-test-php-script
Hi @cococoach_cococ
You can use below code for listing all products in an external php script:
<?php use Magento\Framework\App\Bootstrap; require __DIR__ . '/app/bootstrap.php'; $params = $_SERVER; $bootstrap = Bootstrap::create(BP, $params); $obj = $bootstrap->getObjectManager(); $state = $obj->get('Magento\Framework\App\State'); //you can use area as frontend too $state->setAreaCode('adminhtml'); try { $products = $obj->create('Magento\Catalog\Model\Product') ->getCollection(); $products->addAttributeToFilter('status', 1); $products->addAttributeToFilter('visibility', 4); $products->addStoreFilter(1); $products->addAttributeToSelect('*'); foreach($products as $product) { echo $product->getId() .'-'. $product->getName(); } die; } catch (\Exception $e) { echo $e->getMessage();die; }
If my answer is useful, please Accept as Solution & give Kudos.