/** * {@inheritdoc} */ public function addChild($productSku, $childSku) { $product = $this->productRepository->get($productSku); $child = $this->productRepository->get($childSku); $childrenIds = array_values($this->configurableType->getChildrenIds($product->getId())[0]); if (in_array($child->getId(), $childrenIds)) { throw new StateException('Product has been already attached'); } $childrenIds[] = $child->getId(); $product->setAssociatedProductIds($childrenIds); $product->save(); return true; }
/** * Retrieve Required children ids * Return grouped array, ex array( * group => array(ids) * ) * * @param int $parentId * @param bool $required * @return array */ public function getChildrenIds($parentId, $required = true) { return $this->_catalogProductTypeConfigurable->getChildrenIds($parentId, $required); }