customizableOptionValue = $customOptionValueDataProvider; } /** * Retrieve custom option data * * @param QuoteItem $cartItem * @param int $optionId * @return array * @throws LocalizedException */ public function getData(QuoteItem $cartItem, int $optionId): array { $product = $cartItem->getProduct(); $option = $product->getOptionById($optionId); if (!$option) { return []; } $selectedOption = $cartItem->getOptionByCode('option_' . $option->getId()); $selectedOptionValueData = $this->customizableOptionValue->getData( $cartItem, $option, $selectedOption ); return [ 'id' => $option->getId(), 'label' => $option->getTitle(), 'type' => $option->getType(), 'values' => $selectedOptionValueData, 'sort_order' => $option->getSortOrder(), 'is_required' => $option->getIsRequire(), ]; } }