/** * @param \Generated\Shared\Transfer\ProductConcreteTransfer $productConcreteTransfer * * @return bool */ public function writeProduct(ProductConcreteTransfer $productConcreteTransfer) { $this->productStatement->execute([':sku' => $productConcreteTransfer->getSku(), ':isActive' => (int) $productConcreteTransfer->getIsActive(), ':attributes' => json_encode($productConcreteTransfer->getAttributes()), ':productAbstractSku' => $productConcreteTransfer->getProductAbstractSku()]); foreach ($productConcreteTransfer->getLocalizedAttributes() as $localizedAttributes) { $this->attributesStatement->execute([':productSku' => $productConcreteTransfer->getSku(), ':name' => $localizedAttributes->getName(), ':attributes' => json_encode($localizedAttributes->getAttributes()), ':fkLocale' => $this->localeTransfer->getIdLocale()]); } return true; }
/** * @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; }