![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-bundle/Model/Product/ |
<?php /** * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Bundle\Model\Product; class OptionList { /** * @var \Magento\Bundle\Api\Data\OptionInterfaceFactory */ protected $optionFactory; /** * @var Type */ protected $type; /** * @var LinksList */ protected $linkList; /** * @var \Magento\Framework\Api\DataObjectHelper */ protected $dataObjectHelper; /** * @var \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface */ protected $extensionAttributesJoinProcessor; /** * @param Type $type * @param \Magento\Bundle\Api\Data\OptionInterfaceFactory $optionFactory * @param LinksList $linkList * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper * @param \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $extensionAttributesJoinProcessor */ public function __construct( \Magento\Bundle\Model\Product\Type $type, \Magento\Bundle\Api\Data\OptionInterfaceFactory $optionFactory, \Magento\Bundle\Model\Product\LinksList $linkList, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper, \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $extensionAttributesJoinProcessor ) { $this->type = $type; $this->optionFactory = $optionFactory; $this->linkList = $linkList; $this->dataObjectHelper = $dataObjectHelper; $this->extensionAttributesJoinProcessor = $extensionAttributesJoinProcessor; } /** * @param \Magento\Catalog\Api\Data\ProductInterface $product * @return \Magento\Bundle\Api\Data\OptionInterface[] */ public function getItems(\Magento\Catalog\Api\Data\ProductInterface $product) { $optionCollection = $this->type->getOptionsCollection($product); $this->extensionAttributesJoinProcessor->process($optionCollection); $optionList = []; /** @var \Magento\Bundle\Model\Option $option */ foreach ($optionCollection as $option) { $productLinks = $this->linkList->getItems($product, $option->getOptionId()); /** @var \Magento\Bundle\Api\Data\OptionInterface $optionDataObject */ $optionDataObject = $this->optionFactory->create(); $this->dataObjectHelper->populateWithArray( $optionDataObject, $option->getData(), \Magento\Bundle\Api\Data\OptionInterface::class ); $optionDataObject->setOptionId($option->getOptionId()) ->setTitle($option->getTitle() === null ? $option->getDefaultTitle() : $option->getTitle()) ->setDefaultTitle($option->getDefaultTitle()) ->setSku($product->getSku()) ->setProductLinks($productLinks); $optionList[] = $optionDataObject; } return $optionList; } }