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

tryUnship

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

Метод проверяет, можно ли вернуть товары на остаток при отмене отгрузки. При включенном складском учете он проверяет складские записи и количества, иначе — общее количество товара. Остатки метод не изменяет. Нестатический метод.

Параметры

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

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

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

Исключения

При складской проверке метод выбрасывает \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->tryUnship([
	$productId => [
		'PRODUCT_ID' => $productId,
		'QUANTITY' => 1,
	],
]);

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

print_r($result->getData()['PRODUCTS_LIST_SHIPPED'][$productId] ?? false);


© «Битрикс», 2001-2026, «1С-Битрикс», 2026