Документация для разработчиков
Темная тема

unship

\Bitrix\Sale\Result public
\Bitrix\Catalog\Product\CatalogProvider::unship(
	array $products
);

Метод проверяет возможность отменить отгрузку и возвращает количество прошедших проверку товаров на остаток. Нестатический метод.

Параметры

ПараметрОписание
$productsМассив товаров с идентификаторами товаров в ключах. Передайте PRODUCT_ID и положительное количество. При складском учете укажите складские данные отгрузки

Возвращаемое значение

Метод возвращает объект \Bitrix\Sale\Result. Метод переносит ошибки, которые вернул tryUnship, и сразу завершает работу при их наличии. Ошибки складской проверки могут быть потеряны внутри tryUnship. Данные и ошибки последующего вызова shipProducts метод игнорирует. Поэтому успешный результат не подтверждает фактическое изменение остатка.

Особенности

Метод изменяет количество товара и складские данные. Если отдельный товар не прошел проверку tryUnship, метод не возвращает его на остаток.

Исключения

При складской проверке метод выбрасывает \Bitrix\Main\ArgumentNullException, если в контексте провайдера отсутствует непустой SITE_ID.

Пример

<?php
use Bitrix\Catalog\Config\State;
use Bitrix\Catalog\Product\CatalogProvider;
use Bitrix\Main\Loader;

if (!Loader::includeModule('catalog') || !Loader::includeModule('sale'))
{
	throw new RuntimeException('Не удалось подключить модули catalog и sale');
}

if (State::isUsedInventoryManagement())
{
	echo 'Пример предназначен для работы без складского учета';
	return;
}

// Вызов вернет одну ранее отгруженную единицу товара
$productId = 123;
$provider = new CatalogProvider(['SITE_ID' => SITE_ID]);
$result = $provider->unship([
	$productId => [
		'PRODUCT_ID' => $productId,
		'QUANTITY' => 1,
	],
]);

if (!$result->isSuccess())
{
	echo implode(PHP_EOL, $result->getErrorMessages());
	return;
}

echo 'Вызов завершен без ошибок результата. Фактический возврат проверьте по данным товара';


Была ли эта страница полезна?

Пользовательские комментарии

Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2026, «1С-Битрикс», 2026
Наверх