• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/shipmentitem.php
  • Класс: BitrixSaleShipmentItem
  • Вызов: ShipmentItem::calculateDelivery
protected function calculateDelivery()
{
	$result = new Result();

	/** @var ShipmentItemCollection $collection */
	$collection = $this->getCollection();
	/** @var Shipment $shipment */
	$shipment = $collection->getShipment();

	/** @var ShipmentCollection $shipmentCollection */
	$shipmentCollection = $shipment->getCollection();

	/** @var Order $order */
	$order = $shipmentCollection->getOrder();

	if ($order->getId() > 0)
	{
		return $result;
	}

	$deliveryCalculate = $shipment->calculateDelivery();
	if (!$deliveryCalculate->isSuccess())
	{
		$result->addErrors($deliveryCalculate->getErrors());
	}

	if ($deliveryCalculate->getPrice() > 0)
	{
		$shipment->setField('BASE_PRICE_DELIVERY', $deliveryCalculate->getPrice());
	}

	return $result;
}