Получите ярлык опции и стоимость Простого продукта с настраиваемыми опциями
Я знаю, как получить настраиваемые параметры с помощью этого кода ниже:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Framework\Registry')->registry('current_product');//get current product
foreach ($product->getOptions() as $options) {
$optionData = $options->getValues();
foreach ($optionData as $data) {
print_r($data->getData());
echo $optionPrice[] = $data->getPrice();
echo $optionDuration[] = $data->getTitle();
}
}
Но я не знаю, как получить option_type_id
этого продукта. Я хочу знать, какой вариант этого продукта был выбран, как:
Size : 10 kg
в выбранном 10kg,20kg,30kg.
3
Author: Nero Phung, 2017-12-12
2 answers
Я думаю, что вы ищете $product->getOptions()[0]->getValues()[0]->getOptionTypeId()
1
Author: Andrey Konosov, 2017-12-15 10:21:33
Наконец, я нашел свой собственный ответ. Приведенный ниже код получит массив, содержащий метку и значение настраиваемого продукта.
public function getCustomizableOption($item) {
/**
* @var $product \Magento\Catalog\Api\Data\ProductInterface
*/
$product = $item->getProduct();
$options = $product->getOptions();
$responseData = [];
$optionIds = explode(',',$product->getCustomOptions()['option_ids']->getData('value'));
$optionTypeIds = [];
foreach ($optionIds as $id) {
array_push($optionTypeIds,$product->getCustomOptions()['option_'.$id]->getData('value'));
}
$i = 0;
foreach ($options as $option) {
$optionData = $option->getValues();
foreach ($optionData as $data) {
if (in_array($data->getData('option_type_id'),$optionTypeIds)) {
array_push($responseData,array('label' => $product->getData('options')[$i++]->getData('title'), 'value' => $data->getData('title')));
break;
}
}
}
return $responseData;
}
Надеюсь, это поможет тем, у кого есть такой же вопрос ко мне.
0
Author: Nero Phung, 2017-12-15 12:49:32