コード例 #1
0
 /**
  * @param string $importKeyProductOptionValue
  * @param string $importKeyProductOptionType
  * @param array $localizedNames
  * @param int|null $price
  *
  * @return int
  */
 public function importProductOptionValue($importKeyProductOptionValue, $importKeyProductOptionType, array $localizedNames = [], $price = null)
 {
     $idProductOptionType = $this->getIdProductOptionType($importKeyProductOptionType);
     $productOptionValueEntity = $this->queryContainer->queryProductOptionValueByImportKeyAndFkProductOptionType($importKeyProductOptionValue, $idProductOptionType)->findOneOrCreate();
     if ($price !== null) {
         $priceEntity = (new SpyProductOptionValuePrice())->setPrice($price);
         $productOptionValueEntity->setSpyProductOptionValuePrice($priceEntity);
     }
     if ($productOptionValueEntity->isNew()) {
         $productOptionValueEntity->save();
     }
     $this->createOrUpdateOptionValueTranslations($productOptionValueEntity, $localizedNames);
     $productOptionValueEntity->save();
     $associatedProductAbstractIds = $this->queryContainer->queryAssociatedProductAbstractIdsForProductOptionValue($productOptionValueEntity->getIdProductOptionValue())->find();
     foreach ($associatedProductAbstractIds as $idProductAbstract) {
         $this->touchProductAbstractById($idProductAbstract);
     }
     return $productOptionValueEntity->getIdProductOptionValue();
 }