Створюючи конфігураційні продукти, ви створюєте прості продукти з налаштовуваними опціями, які користувачі зможуть вибирати. Отже, щоб створити конфігураційний продукт програмно, слід почати зі створення простого продукту, а потім додати до цього інші функції.

Виконайте наступні кроки, щоб створити конфігураційний продукт у Magento 2 програмно:

1. Створіть простий продукт.

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create('Magento\Catalog\Model\Product');
$sku = 'sku';
$product->setSku($sku);
$product->setName('Simple Product'); 
$product->setAttributeSetId(4); 
$product->setStatus(1); 
$product->setWeight(1);
$product->setVisibility(4); 
$product->setWebsiteIds(array(1)); 
$product->setTaxClassId(0); 
$product->setTypeId('simple'); 
$product->setPrice(100);
$product->setStockData(
array(
'use_config_manage_stock' => 0, 
'manage_stock' => 1, 
'min_sale_qty' => 1, 
'max_sale_qty' => 2, 
'is_in_stock' => 1,
'qty' => 1000
)
);
$product->save();
$categoryIds = array('2','3');
$category = $objectManager->get('Magento\Catalog\Api\CategoryLinkManagementInterface');
$category->assignProductToCategories($sku, $categoryIds);
if ($product->getId())
{
echo "Product Created";
}

2. Створіть конфігураційний продукт та додайте простий до нього.

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create(Magento\Catalog\Model\Product::class);
$sku = 'sku11'; 
$product->setSku($sku);
$product->setName('Grouped Product31');
$product->setWeight(1);
$product->setPrice(100);
$product->setDescription('description'); 
$product->setAttributeSetId(4); 
$product->setCategoryIds(array(35)); 
$product->setStatus(1);
$product->setVisibility(4); 
$product->setTaxClassId(1); 
$product->setTypeId('grouped'); 
$product->setStoreId(1); 
$product->setWebsiteIds(array(1)); 
$product->setVisibility(4); 
$product->setImage('/groupedproduct/image.jpg'); 
$product->setSmallImage('/groupedproduct/image.jpg'); 
$product->setThumbnail('/groupedproduct/image.jpg'); 
$product->setStockData(array(
'use_config_manage_stock' => 0, 
'manage_stock' => 1, 
'min_sale_qty' => 1, 
'max_sale_qty' => 2,
'is_in_stock' => 1, 
'qty' => 1000
)
);
$product->save();

$childrenIds = [2, 3, 4]; 
$associated = [];
$position = 0;
foreach ($childrenIds as $productId)
{
$position++;
$linkedProduct = $objectManager->get('\Magento\Catalog\Api\ProductRepositoryInterface')->getById($productId);
$productLink = $objectManager->create('\Magento\Catalog\Api\Data\ProductLinkInterface');
$productLink->setSku($product->getSku())
->setLinkType('associated') 
->setLinkedProductSku($linkedProduct->getSku()) 
->setLinkedProductType($linkedProduct->getTypeId())
->setPosition($position) 
->getExtensionAttributes()
->setQty(1);
$associated[] = $productLink;
}
$product->setProductLinks($associated);
$product->save();
$categoryIds = array('2','3'); 
$category = $objectManager->get('Magento\Catalog\Api\CategoryLinkManagementInterface');
$category->assignProductToCategories($sku, $categoryIds);
if ($product->getId())
{
echo "Product Created";
}

Ну що кодери, важко було?

Тепер вам слід перевірити конфігураційний продукт на вітрині.

Для тих хто не любить працювати з кодом у нас є стаття про створення конфігураційного продукту з адмін панелі.

Якщо вас цікавлять й інші типи продуктів, які Magento дозволяє вам створювати, перегляньте статтю про типи продуктів у Magento 2.