Esempio n. 1
0
 /**
  * @param \Generated\Shared\Transfer\ProductAbstractTransfer $productAbstractTransfer
  *
  * @return void
  */
 protected function createProductAbstractAttributes(ProductAbstractTransfer $productAbstractTransfer)
 {
     $idProductAbstract = $productAbstractTransfer->getIdProductAbstract();
     foreach ($productAbstractTransfer->getLocalizedAttributes() as $localizedAttributes) {
         $locale = $localizedAttributes->getLocale();
         if ($this->hasProductAbstractAttributes($idProductAbstract, $locale)) {
             continue;
         }
         $encodedAttributes = $this->encodeAttributes($localizedAttributes->getAttributes());
         $productAbstractAttributesEntity = new SpyProductAbstractLocalizedAttributes();
         $productAbstractAttributesEntity->setFkProductAbstract($idProductAbstract)->setFkLocale($locale->getIdLocale())->setName($localizedAttributes->getName())->setAttributes($encodedAttributes);
         $productAbstractAttributesEntity->save();
     }
 }
Esempio n. 2
0
 /**
  * @param \Orm\Zed\Product\Persistence\SpyProductAbstract $abstractProductEntity
  * @param \Orm\Zed\Product\Persistence\SpyProductAbstractLocalizedAttributes $localizedAttributeEntity
  * @param array $abstractProductAttributes
  *
  * @return \Generated\Shared\Transfer\ProductVariantTransfer
  */
 protected function hydrateAbstractProductVariant(SpyProductAbstract $abstractProductEntity, SpyProductAbstractLocalizedAttributes $localizedAttributeEntity, array $abstractProductAttributes)
 {
     $productVariantTransfer = new ProductVariantTransfer();
     $abstractProduct = $abstractProductEntity->toArray();
     unset($abstractProduct['attributes']);
     $productVariantTransfer->fromArray($abstractProduct, true);
     $localizedAttributes = $localizedAttributeEntity->toArray();
     unset($localizedAttributes['attributes']);
     $productVariantTransfer->fromArray($localizedAttributes, true);
     $productVariantTransfer->setLocaleName($localizedAttributeEntity->getLocale()->getLocaleName());
     $localizedAttributes = array_merge($abstractProductAttributes, Json::decode($localizedAttributeEntity->getAttributes(), true));
     $productVariantTransfer->setAttributes($localizedAttributes);
     return $productVariantTransfer;
 }