Згруповані продукти є лише одним із багатьох . Їх особливістю є те, що вони складаються з простих продуктів, які можна придбати окремо або ж групою. Крім того, згруповані продукти не мають ціни, оскільки вона визначається продуктами з яких він складається.
Звичайно, ви можете за допомогою адмін панелі. Проте ви, можливо, шукаєте програмний спосіб виконання цього завдання.
Якщо ви хочете дізнатися, як створювати згруповані продукти програмно, ви потрапили на правильну сторінку.
Для того, щоб створити згруповагий продукт в Magento 2 програмно, використайте наступний код:
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 програмно набагато швидше та оптимізувати керування продуктами у вашому магазині.
Але це не означає, що на цьому потрібно зупинятися. Ви можете піти далі й навчитися створювати інші типи продуктів, як-от або .