• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/catalog/provider.php
  • Класс: BitrixSaleInternalsCatalogProvider
  • Вызов: Provider::deliver
static function deliver(SaleShipment $shipment)
{
	$result = new SaleResult();

	$order = $shipment->getOrder();

	$context = array(
		'USER_ID' => $order->getUserId(),
		'SITE_ID' => $order->getSiteId(),
	);

	$creator = SaleInternalsProviderCreator::create($context);

	foreach ($shipment->getShipmentItemCollection() as $shipmentItem)
	{
		$creator->addShipmentItem($shipmentItem);
	}

	$r = $creator->deliver();
	if ($r->isSuccess())
	{
		$r = $creator->createItemsResultAfterDeliver($r);
		if ($r->isSuccess())
		{
			$data = $r->getData();
			if (
				!empty($data['RESULT_AFTER_DELIVER_LIST'])
				&& is_array($data['RESULT_AFTER_DELIVER_LIST'])
			)
			{
				$result->setData($data['RESULT_AFTER_DELIVER_LIST']);
			}
		}
	}
	else
	{
		$result->addErrors($r->getErrors());
	}

	return $result;
}