Переглядаючи різні типи продуктів в Magento 2, зверніть також увагу на завантажувані продукти. Як випливає з самої назви, це цифрові продукти, які можна завантажувати — книги, програмне забезпечення, відео тощо. Цей тип контенту сьогодні стає все більш популярним. Таким чином ви можете отримати значну вигоду від додавання їх у каталог вашого магазину.
Створення завантажуваних продуктів за допомогою адмін панелі може бути досить складним, оскільки потребує багатьох кроків. На щастя, існує програмний спосіб оптимізації процесу.
Описаний нижче код допоможе вам створити завантажувані продукти в Magento 2 програмно:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';
$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$state = $objectManager->get(\Magento\Framework\App\State::class);
$state->setAreaCode('frontend');
try {
$product = $objectManager->create(\Magento\Catalog\Api\Data\ProductInterface::class);
$product
->setSku('sku') // Set your sku here
->setName('Product Name') // Name of Product
->setAttributeSetId(4) // Attribute set id
->setStatus(1) // Status on product enabled/ disabled 1/0
->setWeight(10) // weight of product
->setVisibility(4) // visibilty of product (catalog / search / catalog, search / Not visible individually)
->setTaxClassId(0) // Tax class id
->setTypeId('downloadable') // type of product (simple/virtual/downloadable/configurable)
->setPrice(500) // price of product
->setLinkType('url') // Set Link Type
->setLinkUrl('path of url') // Set Url Link
->setSampleType('url') // Set simple Link Type
->setSampleUrl('url') // Set Simple Url Link
->setStockData(
array(
'use_config_manage_stock' => 0,
'manage_stock' => 1,
'is_in_stock' => 1,
'qty' => 40
)
);
// Adding Image to product
$imagePath = ""; //Set the path of Image for product
$product->addImageToMediaGallery($imagePath, ['image', 'small_image', 'thumbnail'], false, false);
$product->save();
// Adding Custom option to product
$options = [
[
"sort_order" => 1,
"title" => "Field Option",
"price_type" => "fixed",
"price" => "",
"type" => "field",
"is_require" => 0
]
];
$product->setHasOptions(1);
$product->setCanSaveCustomOptions(true);
foreach ($options as $arrayOption) {
$option = $objectManager->create(\Magento\Catalog\Model\Product\Option::class)
->setProductId($product->getId())
->setStoreId($product->getStoreId())
->addData($arrayOption);
$option->save();
$product->addOption($option);
}
echo 'success';
} catch (\Exception $e) {
$objectManager->get(\Psr\Log\LoggerInterface::class)->info($e->getMessage());
echo $e->getMessage();
}
Ось і все! Досить просто, чи не так?
Якщо ви освоїте цей метод, то створювати прості та конфігураційні продукти в Magento 2 стане ще простіше, якщо ви ще не знаєте, як це зробити.