コード例 #1
0
 /**
  * Extract a variant group from column "groups"
  *
  * @param string $value
  *
  * @return array
  */
 protected function extractVariantGroup($value)
 {
     $data = [];
     $groups = $this->fieldSplitter->splitCollection($value);
     foreach ($groups as $group) {
         $isVariant = $this->groupTypeRepository->getTypeByGroup($group);
         if ('1' === $isVariant) {
             $data['variant_group'][] = $group;
         } else {
             $data['groups'][] = $group;
         }
     }
     if (isset($data['variant_group']) && 1 < count($data['variant_group'])) {
         throw new \InvalidArgumentException(sprintf('The product cannot belong to many variant groups: %s', implode(', ', $data['variant_group'])));
     } elseif (isset($data['variant_group'])) {
         $data['variant_group'] = current($data['variant_group']);
     }
     return $data;
 }