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

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
Наверх