/**
  * @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;
 }
Example #2
0
 /**
  * @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;
 }