/** * Validate option required fields * * @param Option $option * @return bool */ protected function validateOptionRequiredFields(Option $option) { $storeId = \Magento\Store\Model\Store::DEFAULT_STORE_ID; $product = $option->getProduct(); if ($product) { $storeId = $product->getStoreId(); } $title = $option->getTitle(); return $this->isValidOptionTitle($title, $storeId) && !$this->isEmpty($option->getType()); }
/** * Get price configuration * * @param \Magento\Catalog\Model\Product\Option\Value|\Magento\Catalog\Model\Product\Option $option * @return array */ protected function _getPriceConfiguration($option) { $optionPrice = $this->pricingHelper->currency($option->getPrice(true), false, false); $data = ['prices' => ['oldPrice' => ['amount' => $this->pricingHelper->currency($option->getRegularPrice(), false, false), 'adjustments' => []], 'basePrice' => ['amount' => $this->_catalogData->getTaxPrice($option->getProduct(), $optionPrice, false, null, null, null, null, null, false)], 'finalPrice' => ['amount' => $this->_catalogData->getTaxPrice($option->getProduct(), $optionPrice, true, null, null, null, null, null, false)]], 'type' => $option->getPriceType(), 'name' => $option->getTitle()]; return $data; }
/** * @param \Zend_File_Transfer_Adapter_Http|\Zend_Validate $object * @param \Magento\Catalog\Model\Product\Option $option * @param array $fileFullPath * @return \Zend_File_Transfer_Adapter_Http|\Zend_Validate $object * @throws \Magento\Framework\Exception\InputException */ protected function buildImageValidator($object, $option, $fileFullPath = null) { $dimensions = []; if ($option->getImageSizeX() > 0) { $dimensions['maxwidth'] = $option->getImageSizeX(); } if ($option->getImageSizeY() > 0) { $dimensions['maxheight'] = $option->getImageSizeY(); } if (count($dimensions) > 0) { if ($fileFullPath !== null && !$this->isImage($fileFullPath)) { throw new \Magento\Framework\Exception\InputException(__('File \'%1\' is not an image.', $option->getTitle())); } $object->addValidator(new \Zend_Validate_File_ImageSize($dimensions)); } // File extension $allowed = $this->parseExtensionsString($option->getFileExtension()); if ($allowed !== null) { $object->addValidator(new \Zend_Validate_File_Extension($allowed)); } else { $forbidden = $this->parseExtensionsString($this->getConfigData('forbidden_extensions')); if ($forbidden !== null) { $object->addValidator(new \Zend_Validate_File_ExcludeExtension($forbidden)); } } $object->addValidator(new \Zend_Validate_File_FilesSize(['max' => $this->fileSize->getMaxFileSize()])); return $object; }
/** * Validate option required fields * * @param Option $option * @return bool */ protected function validateOptionRequiredFields(Option $option) { return !$this->isEmpty($option->getTitle()) && !$this->isEmpty($option->getType()); }
/** * 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(); }