- Модуль: salescenter
- Путь к файлу: ~/bitrix/modules/salescenter/lib/controller/order.php
- Класс: BitrixSalesCenterControllerOrder
- Вызов: Order::refreshDeliveryAction
public function refreshDeliveryAction(
array $basketItems = [],
array $options = [],
int $deliveryServiceId = 0,
array $shipmentPropValues = [],
array $deliveryRelatedServiceValues = [],
int $deliveryResponsibleId = 0
)
{
$basketItems = $this->processBasketItems($basketItems);
$options['basketItems'] = $basketItems;
$options['deliveryId'] = $deliveryServiceId;
$options['deliveryExtraServicesValues'] = $deliveryRelatedServiceValues;
$options['deliveryResponsibleId'] = $deliveryResponsibleId;
$options['shipmentPropValues'] = $shipmentPropValues;
$order = $this->buildOrder(
$options,
[
'builderScenario' => SalescenterBuilderSettingsContainer::BUILDER_SCENARIO_SHIPMENT,
]
);
$shipment = null;
if ($order)
{
$shipment = $this->findNewShipment($order);
}
if (!$shipment)
{
if (!$this->getErrors())
{
$this->addError(new Error(Loc::getMessage('SALESCENTER_CONTROLLER_ORDER_BUILD_ERROR')));
}
return null;
}
$deliveryPriceResult = $shipment->calculateDelivery();
if (!$deliveryPriceResult->isSuccess())
{
$this->addErrors($deliveryPriceResult->getErrors());
}
return [
'deliveryPrice' => $deliveryPriceResult->getPrice(),
];
}