/** * @param \Generated\Shared\Transfer\ProductConcreteTransfer $productConcreteTransfer * @param int $idProductAbstract * * @return int */ public function createProductConcrete(ProductConcreteTransfer $productConcreteTransfer, $idProductAbstract) { $sku = $productConcreteTransfer->getSku(); $this->checkProductConcreteDoesNotExist($sku); $encodedAttributes = $this->encodeAttributes($productConcreteTransfer->getAttributes()); $productConcreteEntity = new SpyProduct(); $productConcreteEntity->setSku($sku)->setFkProductAbstract($idProductAbstract)->setAttributes($encodedAttributes)->setIsActive($productConcreteTransfer->getIsActive()); $productConcreteEntity->save(); $idProductConcrete = $productConcreteEntity->getPrimaryKey(); $productConcreteTransfer->setIdProductConcrete($idProductConcrete); $this->createProductConcreteAttributes($productConcreteTransfer); return $idProductConcrete; }