Требуется получить информацию о товарах и торговых предложениях корзины bitrix не закреплённой за заказом. Как получить вес понятно. А как получить ширину, длину и высоту?
Сейчас делаю так:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
use Bitrix\Main\Context,
Bitrix\Currency\CurrencyManager,
Bitrix\Sale\Order,
Bitrix\Sale\Basket,
Bitrix\Sale\Delivery,
Bitrix\Sale\PaySystem,
YandexCheckout\Client;
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(CSaleBasket::GetBasketUserID()), \Bitrix\Main\Context::getCurrent()->getSite());
// [НАЧАЛО] Применяем к товарам к полученной корзине скидки(необходимо если корзина не в заказе)
$context = new \Bitrix\Sale\Discount\Context\Fuser($basket->getFUserId());
$discounts = \Bitrix\Sale\Discount::buildFromBasket($basket, $context);
$r = $discounts->calculate();
if ($r->isSuccess()) {
$result = $r->getData();
if (isset($result['BASKET_ITEMS'])) {
$basket->applyDiscount($result['BASKET_ITEMS']);
}
}
// [КОНЕЦ] Применяем к товарам к полученной корзине скидки(необходимо если корзина не в заказе)
$sumNoDiscont = 0;// сумма всех товаров без скидок
$sumDiscont = 0;// сумма всех товаров с скидкой
foreach ($basket->getBasketItems() as $basketItem) {// перебираем товары и торговые предложения в корзине
$priceBase = $basketItem->getBasePrice();
$priceDiscont = $basketItem->getPrice();
$weight = $basketItem->getWeight();
$length = $basketItem->как_получить(?);
$width = $basketItem->как_получить(?);
$height = $basketItem->как_получить(?);
if ($priceBase != $priceDiscont) {
$sumDiscont += $priceDiscont;
} else {
$sumNoDiscont += $priceBase;
}
echo "<p>$weight - $length - $width - $height" . $basketItem->getField("NAME") . " - " . $priceDiscont . " - " . $priceBase . "</p>\n";// отладка
}
Вопрос: как из $basketItem получить длину, ширину, высоту?
_____________________
Примечание: То что можно получить вот так CCatalogProduct::GetByID($_id_торгового_предложения);// возвращается массив в котором есть длина, ширина, высота я и сам знаю. Интересует можно ли прямо из $basketItem-> как то получить?
Сейчас делаю так:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
use Bitrix\Main\Context,
Bitrix\Currency\CurrencyManager,
Bitrix\Sale\Order,
Bitrix\Sale\Basket,
Bitrix\Sale\Delivery,
Bitrix\Sale\PaySystem,
YandexCheckout\Client;
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(CSaleBasket::GetBasketUserID()), \Bitrix\Main\Context::getCurrent()->getSite());
// [НАЧАЛО] Применяем к товарам к полученной корзине скидки(необходимо если корзина не в заказе)
$context = new \Bitrix\Sale\Discount\Context\Fuser($basket->getFUserId());
$discounts = \Bitrix\Sale\Discount::buildFromBasket($basket, $context);
$r = $discounts->calculate();
if ($r->isSuccess()) {
$result = $r->getData();
if (isset($result['BASKET_ITEMS'])) {
$basket->applyDiscount($result['BASKET_ITEMS']);
}
}
// [КОНЕЦ] Применяем к товарам к полученной корзине скидки(необходимо если корзина не в заказе)
$sumNoDiscont = 0;// сумма всех товаров без скидок
$sumDiscont = 0;// сумма всех товаров с скидкой
foreach ($basket->getBasketItems() as $basketItem) {// перебираем товары и торговые предложения в корзине
$priceBase = $basketItem->getBasePrice();
$priceDiscont = $basketItem->getPrice();
$weight = $basketItem->getWeight();
$length = $basketItem->как_получить(?);
$width = $basketItem->как_получить(?);
$height = $basketItem->как_получить(?);
if ($priceBase != $priceDiscont) {
$sumDiscont += $priceDiscont;
} else {
$sumNoDiscont += $priceBase;
}
echo "<p>$weight - $length - $width - $height" . $basketItem->getField("NAME") . " - " . $priceDiscont . " - " . $priceBase . "</p>\n";// отладка
}
Вопрос: как из $basketItem получить длину, ширину, высоту?
_____________________
Примечание: То что можно получить вот так CCatalogProduct::GetByID($_id_торгового_предложения);// возвращается массив в котором есть длина, ширина, высота я и сам знаю. Интересует можно ли прямо из $basketItem-> как то получить?