Di sini, saya menemukan solusi untuk membuat produk secara terprogram melalui file php kustom yaitu 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();
?>
Pertama, dalam konstruktor Anda, Anda akan ingin memasukkan tiga kelas untuk injeksi ketergantungan:
Magento\Catalog\Api\Data\ProductInterfaceFactory
,Magento\Catalog\Api\ProductRepositoryInterface
danMagento\CatalogInventory\Api\StockRegistryInterface
. Yang pertama dibuat, jadi jangan terlalu khawatir jika itu tidak ada di IDE Anda.Dari sana, tempat Anda ingin membuat produk, Anda harus menggunakan Pabrik untuk membuatnya dan mengatur data, dan repositori untuk menyimpannya:
Anda mungkin ingin menambahkan beberapa stok untuk itu, yang dapat Anda lakukan seperti ini:
Jika Anda menjalankan ini dalam sebuah skrip (termasuk skrip setup / upgrade), maka Anda juga perlu meniru area ini karena hal semacam ini membutuhkan sesi untuk alasan gila.
Untuk melakukan itu, tarik
\Magento\Framework\App\State
melalui konstruktor, dan kemudian gunakan kode ini:sumber
referensi kode :: http://www.onlinecode.org/create-a-simple-product-programmatically-in-magento-2/
sumber
sumber