Skip to main content

Magento2 create product using external script

<?php

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

$bootstrap = Bootstrap::create(BP, $_SERVER);

$objectManager = $bootstrap->getObjectManager();

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

$websiteIds = [1];
$categoryIds = [2];
$is_in_stock = 1;
$qty = 9999;

//Initiate the product object
$product = $objectManager->create('\Magento\Catalog\Model\Product');


$product->setSku('Test');
$product->setName('Test');
$product->setUrlKey('test');
$product->setWebsiteIds($websiteIds);
$product->setCategoryIds($categoryIds);
$product->setAttributeSetId(4);
$product->setStatus(1);
$product->setWeight(1);
$product->setVisibility(4);
$product->setTaxClassId(0);
$product->setTypeId('simple');
$product->setPrice(10.25);
$product->setDescription('This is a test simple item.');
$product->setShortDescription('Test short description');
$product->setStockData(
            array(
                'use_config_manage_stock' => 0,
                'manage_stock' => 1,
                'is_in_stock' => $is_in_stock,
                'qty' => $qty
            )
        );

   
//images
$localImagePath = BP.'/pub/media/import/test.jpg';;
if(file_exists($localImagePath) && $localImagePath != ''){
    $product->addImageToMediaGallery($localImagePath, array('image', 'small_image', 'thumbnail'), false, false);   
    //set gallery images    $product->addImageToMediaGallery($localImagePath, null, false, false);   
}
//@unlink($localImagePath); remove the file id don't need



try{
    $product->save();
    echo "<strong>".$product->getSku()."</strong> has been created.";
}catch(Exception $e){
    echo $e->getMessage();die;
}   

Comments