Настольные тарифы Magento
В Tablerate.php я хочу изменить расчет.
Поэтому для некоторых продуктов с такими параметрами, как ширина, высота, стоимость доставки должна меняться. Я попытался с помощью этого метода выяснить, имеет ли один продукт в корзине ширину или высоту более 60 см (пример).
Но в настоящее время я понятия не имею, как получить пользовательские значения параметров...
этот код работает хорошо.
foreach ($request->getAllItems() as $item) {
echo 'Name: '.$item->getName().
'<br/> SKU:'.$item->getSku().
'<br/> ProductID: '.$item->getProductId().
'<br/> Price: '.$item->getPrice().'<br/>'; }
2 ответа
Решение
Это сработало
foreach ($request->getAllItems() as $item) {
$selectedOpt = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct());
$counted = count($selectedOpt['options']);
for ($i = 0; $i < $counted; $i++) {
echo '<br/>'. var_dump($selectedOpt['options'][$i]['option_value']);
}
echo '<br/>';
}
Если пользовательский атрибут, например, cm_size, тогда выполните:
$item->getCmSize()
или же $item->getData('cm_size')