Hola,
Estoy creando un módulo Magento 2 que inserta productos que lee desde una base de datos externa, realizo las siguientes tareas con éxito
1- Agregar atributos
2- Crear el conjunto de atributos
3- Crear el producto padre configurable
4- Crear los productos hijos simples
Ahora tengo que asociar todos los productos simples al producto padre configurable pero no encuentro la manera, estoy intentando utilizar el método
generateVariation($product, $options);
Que provee
\Magento\ConfigurableProduct\Model\ConfigurableProductManagement
No estoy seguro que este método haga lo que quiero (Que aparezca la tabla de productos asociados en el producto padre) si es así entiendo que $product es el producto padre pero las opciones de donde las saco ?
Estas opciones son atributos o las opciones de los atributos del producto ?
Cualquier ayuda será valorada, muchas gracias
Solved! Go to Solution.
Hola,
Luego de buscar y probar varias opciones he logrado asociar los productos hijos al padre con la ayuda del siguiente artículo:
http://www.webetutorial.com/blog/magento-2-programmatically-creating-magento-product/
Utilizando
// Asocio el producto hijo al producto padre configurable
$parentProduct->getTypeInstance()->setUsedProductAttributeIds($attributesIds,$parentProduct); $configurableAttributesData = $parentProduct->getTypeInstance()->getConfigurableAttributesAsArray($parentProduct); $parentProduct->setCanSaveConfigurableAttributes(true); $parentProduct->setConfigurableAttributesData($configurableAttributesData); $configurableProductsData = array(); $configurableProductsData[$salida->getId()] = $configurableOptionData; $parentProduct->setConfigurableProductsData($configurableProductsData); $parentProduct->save(); $this->configurableLinkManagement->addChild($parentSku, $sku);
Gracias, lo doy por resuelto
Hola,
Luego de buscar y probar varias opciones he logrado asociar los productos hijos al padre con la ayuda del siguiente artículo:
http://www.webetutorial.com/blog/magento-2-programmatically-creating-magento-product/
Utilizando
// Asocio el producto hijo al producto padre configurable
$parentProduct->getTypeInstance()->setUsedProductAttributeIds($attributesIds,$parentProduct); $configurableAttributesData = $parentProduct->getTypeInstance()->getConfigurableAttributesAsArray($parentProduct); $parentProduct->setCanSaveConfigurableAttributes(true); $parentProduct->setConfigurableAttributesData($configurableAttributesData); $configurableProductsData = array(); $configurableProductsData[$salida->getId()] = $configurableOptionData; $parentProduct->setConfigurableProductsData($configurableProductsData); $parentProduct->save(); $this->configurableLinkManagement->addChild($parentSku, $sku);
Gracias, lo doy por resuelto