Aqui, encontrei as soluções para criar um produto programaticamente através de um arquivo php personalizado test.php
.
<?php
use Magento\Framework\App\Bootstrap;
include('app/bootstrap.php');
$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$state = $objectManager->get('Magento\Framework\App\State');
$state->setAreaCode('frontend');
$_product = $objectManager->create('Magento\Catalog\Model\Product');
$_product->setName('Test Product');
$_product->setTypeId('simple');
$_product->setAttributeSetId(4);
$_product->setSku('test-SKU');
$_product->setWebsiteIds(array(1));
$_product->setVisibility(4);
$_product->setPrice(array(1));
$_product->setImage('/testimg/test.jpg');
$_product->setSmallImage('/testimg/test.jpg');
$_product->setThumbnail('/testimg/test.jpg');
$_product->setStockData(array(
'use_config_manage_stock' => 0, //'Use config settings' checkbox
'manage_stock' => 1, //manage stock
'min_sale_qty' => 1, //Minimum Qty Allowed in Shopping Cart
'max_sale_qty' => 2, //Maximum Qty Allowed in Shopping Cart
'is_in_stock' => 1, //Stock Availability
'qty' => 100 //qty
)
);
$_product->save();
?>
Primeiro, em seu construtor você vai querer incluir três classes para injeção de dependência:
Magento\Catalog\Api\Data\ProductInterfaceFactory
,Magento\Catalog\Api\ProductRepositoryInterface
eMagento\CatalogInventory\Api\StockRegistryInterface
. A primeira é gerada, portanto, não se preocupe se ela aparecer como inexistente no seu IDE.A partir daí, onde você deseja criar o produto, será necessário usar o Factory para criá-lo e definir os dados, e o repositório para salvá-lo:
É provável que você queira adicionar algumas ações para isso, o que você pode fazer assim:
Se você estiver executando isso em um script (incluindo scripts de configuração / atualização), também precisará emular a área, pois esse tipo de coisa requer sessões por algum motivo maluco.
Para fazer isso,
\Magento\Framework\App\State
entre no construtor e, em seguida, utilize este código:fonte
referência de código :: http://www.onlinecode.org/create-a-simple-product-programmatically-in-magento-2/
fonte
fonte