Aquí, encontré las soluciones para crear un producto mediante programación a través de un archivo php personalizado, es decir 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();
?>
En primer lugar, en su constructor querrá incluir tres clases para la inyección de dependencias:
Magento\Catalog\Api\Data\ProductInterfaceFactory
,Magento\Catalog\Api\ProductRepositoryInterface
yMagento\CatalogInventory\Api\StockRegistryInterface
. El primero se genera, así que no te preocupes demasiado si aparece como no existente en tu IDE.A partir de ahí, donde desee crear el producto, deberá usar Factory para crearlo y configurar los datos, y el repositorio para guardarlo:
Es probable que desee agregar algo de stock, lo que puede hacer así:
Si está ejecutando esto en una secuencia de comandos (incluidas las secuencias de comandos de configuración / actualización), entonces también necesitará emular el área, ya que este tipo de cosas requiere sesiones por alguna extraña razón.
Para hacer eso, ingrese a
\Magento\Framework\App\State
través del constructor y luego utilice este código:fuente
referencia de código :: http://www.onlinecode.org/create-a-simple-product-programmatic-in-magento-2/
fuente
fuente