Очень хорошие примеры описаны учебных курсах:
[URL=https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=8409&LESSON_PATH=3913.4776.7351.8421.8409]https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=8409&LESSO...[/URL]
Один из вариантов получения стоимости доставки через API:
[CODE]$deliveryId = "Идентификатор доставки";
$obBasket = \Bitrix\Sale\Basket::create(SITE_ID);
$obItem = $obBasket->createItem("catalog", "Сюда подставить ID товара");
$arProductFields = array(
'NAME' => "Сюда подставить название товара",
'PRICE' => "Сюда подставить цену товара",
'CURRENCY' => 'RUB',
'QUANTITY' => 1,
'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
);
$obItem->setFields($arProductFields);
$obOrder = \Bitrix\Sale\Order::create(SITE_ID, 1);
$obOrder->setPersonTypeId(1);
$obOrder->setBasket($obBasket);
$obShipmentCollection = $obOrder->getShipmentCollection();
$obShipment = $obShipmentCollection->createItem(\Bitrix\Sale\Delivery\Services\Manager::getObjectById($deliveryId));
$shipmentItemCollection = $obShipment->getShipmentItemCollection();
foreach ($basket as $basketItem)
{
$item = $shipmentItemCollection->createItem($basketItem);
$item->setQuantity($basketItem->getQuantity());
}
$arDelivery = \Bitrix\Sale\Delivery\Services\Manager::calculateDeliveryPrice($obShipment, $deliveryId, array());[/CODE]
А если надо просто получить параметры доставки, то выглядеть будет так:
[CODE]$arDeliveryParams = \Bitrix\Sale\Delivery\Services\Manager::getById($deliveryId);[/CODE]
[URL=https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=8409&LESSON_PATH=3913.4776.7351.8421.8409]https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=8409&LESSO...[/URL]
Один из вариантов получения стоимости доставки через API:
[CODE]$deliveryId = "Идентификатор доставки";
$obBasket = \Bitrix\Sale\Basket::create(SITE_ID);
$obItem = $obBasket->createItem("catalog", "Сюда подставить ID товара");
$arProductFields = array(
'NAME' => "Сюда подставить название товара",
'PRICE' => "Сюда подставить цену товара",
'CURRENCY' => 'RUB',
'QUANTITY' => 1,
'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
);
$obItem->setFields($arProductFields);
$obOrder = \Bitrix\Sale\Order::create(SITE_ID, 1);
$obOrder->setPersonTypeId(1);
$obOrder->setBasket($obBasket);
$obShipmentCollection = $obOrder->getShipmentCollection();
$obShipment = $obShipmentCollection->createItem(\Bitrix\Sale\Delivery\Services\Manager::getObjectById($deliveryId));
$shipmentItemCollection = $obShipment->getShipmentItemCollection();
foreach ($basket as $basketItem)
{
$item = $shipmentItemCollection->createItem($basketItem);
$item->setQuantity($basketItem->getQuantity());
}
$arDelivery = \Bitrix\Sale\Delivery\Services\Manager::calculateDeliveryPrice($obShipment, $deliveryId, array());[/CODE]
А если надо просто получить параметры доставки, то выглядеть будет так:
[CODE]$arDeliveryParams = \Bitrix\Sale\Delivery\Services\Manager::getById($deliveryId);[/CODE]