Переглядаючи різні 2 типи продуктів Magento , ви не можете пропустити продукти для завантаження. Як випливає з назви, це цифрові продукти, які можна завантажити — книги, програмне забезпечення, відео тощо. Цей тип контенту стає все більш популярним у наші дні. Як результат, ви можете отримати велику користь від їх розміщення в каталозі вашого магазину.
Створення продуктів для завантаження через адміністративну панель може бути досить складним, оскільки вимагає багато кроків. На щастя, існує програмний спосіб оптимізувати цей процес.
Наступний код допоможе вам створити продукт для завантаження в 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 будуть ще простіші, якщо ви ще не знаєте, як це зробити.