• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/product/catalogprovidercompatibility.php
  • Класс: BitrixCatalogProductCatalogProviderCompatibility
  • Вызов: CatalogProviderCompatibility::deductProduct
static function deductProduct(array $values)
{
	$providerClass = static::getProviderClass();
	if (!$providerClass)
	{
		return false;
	}

	$productId = $values['PRODUCT_ID'];
	$transfer = SaleInternalsTransferProvider::create($providerClass, static::getContext());

	$products = array(
		$productId => array(
			'ITEM_CODE' => $productId,
			'PRODUCT_ID' => $productId,
			'QUANTITY' => $values['QUANTITY'] * ($values['UNDO_DEDUCTION'] == 'Y'? -1 : 1),
		));

	$r = $transfer->ship($products);
	if ($r->isSuccess())
	{
		$data = $r->getData();
		if (!empty($data))
		{
			$result = new SaleResult();

			$result->setData(array(
				'SHIPPED_PRODUCTS_LIST' => array(
					$productId => $data
				)
			));

			$r = $transfer->setItemsResultAfterShip($products, $result);
		}
	}

	return false;
}