Згруповані товари – це лише один із багатьох 2 типи продуктів Magento . Їхня особливість полягає в тому, що вони складаються з простих товарів, які можна придбати окремо або групою. Більше того, згруповані товари не мають ціни, оскільки вона визначається їхніми складовими.
Звичайно, ви можете створювати згруповані товари скористатися адміністративною панеллю. Однак, можливо, ви також шукаєте програмний спосіб виконання цього завдання.
Якщо ви хочете знати, як створювати згруповані товари програмно, ви потрапили на потрібну сторінку.
Щоб створити згрупований товар у Magento програмно, використовуйте наступний код:
<?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->setTypeId(\Magento\GroupedProduct\Model\Product\Type\Grouped::TYPE_CODE)
->setAttributeSetId(4)
->setName('Grouped Product')
->setSku('Grouped Product')
->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH)
->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED)
->setStockData(['use_config_manage_stock' => 1, 'is_in_stock' => 1]);
$productRepository = $objectManager->get(\Magento\Catalog\Api\ProductRepositoryInterface::class);
$childrenIds = array(1, 2);
$associated = array();
$position = 0;
foreach ($childrenIds as $productId) {
$position++;
$linkedProduct = $productRepository->getById($productId);
$productLink = $objectManager->create(\Magento\Catalog\Api\Data\ProductLinkInterface::class);
$productLink->setSku($product->getSku())
->setLinkType('associated')
->setLinkedProductSku($linkedProduct->getSku())
->setLinkedProductType($linkedProduct->getTypeId())
->setPosition($position)
->getExtensionAttributes()
->setQty(1);
$associated[] = $productLink;
}
$product->setProductLinks($associated);
$productRepository->save($product);
echo 'success';
} catch (\Exception $e) {
$objectManager->get(\Psr\Log\LoggerInterface::class)->info($e->getMessage());
echo $e->getMessage();
}
Ви можете використовувати цей посібник для швидшого програмного створення згрупованих товарів у Magento та оптимізації управління запасами у вашому магазині.
Але це не означає, що вам потрібно зупинитися на цьому. Ви можете піти далі та навчитися створювати інші типи продуктів, такі як пучок або налаштовувані продукти .