/** * @param Option $option * @param OptionModel $optionModel * @return OptionModel */ public function getModelFromData(Option $option, OptionModel $optionModel) { $newOptionModel = $this->optionFactory->create(); $newOptionModel->setData($optionModel->getData())->addData($option->__toArray())->setId($optionModel->getId())->setDefaultTitle(is_null($option->getTitle()) ? $optionModel->getTitle() : $option->getTitle()); return $newOptionModel; }
/** * Get formed data from selections of option * * @param Option $option * @param Product $product * @return array */ private function getSelections(Option $option, Product $product) { $selections = []; $selectionCount = count($option->getSelections()); foreach ($option->getSelections() as $selectionItem) { /* @var $selectionItem Product */ $selectionId = $selectionItem->getSelectionId(); $selections[$selectionId] = $this->getSelectionItemData($product, $selectionItem); if (($selectionItem->getIsDefault() || $selectionCount == 1 && $option->getRequired()) && $selectionItem->isSalable()) { $this->selectedOptions[$option->getId()][] = $selectionId; } } return $selections; }