| Current Path : /home/rtorresani/www/vendor/magento/module-catalog/Pricing/Price/ |
| Current File : //home/rtorresani/www/vendor/magento/module-catalog/Pricing/Price/ConfiguredOptions.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\Catalog\Pricing\Price;
use Magento\Catalog\Model\Product\Configuration\Item\ItemInterface;
/**
* Configured Options model.
*/
class ConfiguredOptions
{
/**
* Get value of configured options.
*
* @param float $basePrice
* @param ItemInterface $item
*
* @return float
*/
public function getItemOptionsValue(float $basePrice, ItemInterface $item): float
{
$product = $item->getProduct();
$value = 0.;
$optionIds = $item->getOptionByCode('option_ids');
if ($optionIds) {
foreach (explode(',', $optionIds->getValue() ?? '') as $optionId) {
$option = $product->getOptionById($optionId);
if ($option !== null) {
$itemOption = $item->getOptionByCode('option_' . $option->getId());
/** @var $group \Magento\Catalog\Model\Product\Option\Type\DefaultType */
$group = $option->groupFactory($option->getType())
->setOption($option)
->setConfigurationItem($item)
->setConfigurationItemOption($itemOption);
$value += $group->getOptionPrice($itemOption->getValue(), $basePrice);
}
}
}
return $value;
}
}