deliver
\Bitrix\Sale\Result public \Bitrix\Catalog\Product\CatalogProvider::deliver( array $products );
Метод передает сведения об оплате заказа обработчику товара каталога. Если переданы элементы отгрузки, метод получает пользователя, оплату и заказ из связанных объектов заказа. Нестатический метод.
Параметры
| Параметр | Описание |
|---|---|
$products | Массив товаров с идентификаторами товаров в ключах. Для прямого вызова укажите USER_ID, PAID и ORDER_ID. Вместо них можно передать связанные объекты в SHIPMENT_ITEM_LIST |
Возвращаемое значение
Метод возвращает объект \Bitrix\Sale\Result. Ключ DELIVER_PRODUCTS_LIST содержит результат CatalogPayOrderCallback для каждого товара.
Исключения
Метод может выбросить \Bitrix\Main\ObjectNotFoundException, если по элементу отгрузки нельзя получить коллекцию, отгрузку или заказ.
Особенности
Вызов запускает обработчик товара и может изменить связанные с оплатой данные. Передавайте фактическое состояние существующего заказа.
Пример
<?php
use Bitrix\Catalog\Product\CatalogProvider;
use Bitrix\Main\Loader;
if (!Loader::includeModule('catalog') || !Loader::includeModule('sale'))
{
throw new RuntimeException('Не удалось подключить модули catalog и sale');
}
// Идентификаторы товара, пользователя и существующего заказа
$productId = 123;
$userId = 1;
$orderId = 100;
$provider = new CatalogProvider();
$result = $provider->deliver([
$productId => [
'USER_ID' => $userId,
'PAID' => true,
'ORDER_ID' => $orderId,
],
]);
if (!$result->isSuccess())
{
echo implode(PHP_EOL, $result->getErrorMessages());
return;
}
print_r($result->getData()['DELIVER_PRODUCTS_LIST'][$productId] ?? null);
Была ли эта страница полезна?
Что можно улучшить?
Пользовательские комментарии
Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2026, «1С-Битрикс», 2026