/** * Converts a configurator option struct which used for default or selection configurators. * * @param StoreFrontBundle\Struct\Configurator\Group $group * @param StoreFrontBundle\Struct\Configurator\Option $option * @return array */ public function convertConfiguratorOptionStruct(StoreFrontBundle\Struct\Configurator\Group $group, StoreFrontBundle\Struct\Configurator\Option $option) { $data = array('optionID' => $option->getId(), 'groupID' => $group->getId(), 'optionname' => $option->getName(), 'user_selected' => $option->isSelected(), 'selected' => $option->isSelected(), 'selectable' => $option->getActive()); if ($option->getMedia()) { $data['media'] = $this->convertMediaStruct($option->getMedia()); } return $data; }
/** * Checks if the passed combination is compatible with the provided customer configurator * selection. * * @param \Shopware\Bundle\StoreFrontBundle\Struct\Configurator\Group $group * @param array $combinations * @param $selection * @return bool */ private function isCombinationValid(Struct\Configurator\Group $group, $combinations, $selection) { if (empty($combinations)) { return false; } foreach ($selection as $selectedGroup => $selectedOption) { if (!in_array($selectedOption, $combinations) && $selectedGroup !== $group->getId()) { return false; } } return true; }