/** * Get option html block * * @param \Magento\Catalog\Model\Product\Option $option * * @return string */ public function getOptionHtml(\Magento\Catalog\Model\Product\Option $option) { $type = $this->getGroupOfOption($option->getType()); $renderer = $this->getChildBlock($type); $renderer->setSkipJsReloadPrice(1)->setProduct($this->getProduct())->setOption($option); return $this->getChildHtml($type, false); }
/** * Validate option type fields * * @param Option $option * @return bool */ protected function validateOptionType(Option $option) { return $this->isInRange($option->getType(), $this->productOptionTypes); }
/** * Load option value * * @param \Magento\Catalog\Model\Product\Option $option * @return Metadata[] */ public function read(\Magento\Catalog\Model\Product\Option $option) { $type = $option->getType(); $reader = isset($this->valueReaders[$type]) ? $this->valueReaders[$type] : $this->valueReaders['default']; return $reader->read($option); }
/** * Create option data object * * @param \Magento\Catalog\Model\Product\Option $option * @return \Magento\Catalog\Service\V1\Product\CustomOptions\Data\Option array */ protected function _createOptionDataObject(\Magento\Catalog\Model\Product\Option $option) { $data = array(Data\Option::OPTION_ID => $option->getId(), Data\Option::TITLE => $option->getTitle(), Data\Option::TYPE => $option->getType(), Data\Option::IS_REQUIRE => $option->getIsRequire(), Data\Option::SORT_ORDER => $option->getSortOrder(), Data\Option::METADATA => $this->optionMetadataReader->read($option)); return $this->optionBuilder->populateWithArray($data)->create(); }