• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/providerbuildercompatibility.php
  • Класс: BitrixSaleInternalsProviderBuilderCompatibility
  • Вызов: ProviderBuilderCompatibility::addProductData
public function addProductData(array $productData)
{
	if ($productData['QUANTITY'] == 0)
	{
		return;
	}

	$basketItem = $productData['BASKET_ITEM'];

	$productId = $basketItem->getProductId();
	$providerName = $basketItem->getProviderName();

	$fields = [
		'PRODUCT_ID' => $productId,
		'BASKET_ITEM' => $basketItem,
		'BASKET_CODE' => $basketItem->getBasketCode(),
		'QUANTITY' => $productData['QUANTITY'],
		'MODULE' => $basketItem->getField('MODULE'),
	];

	/** @var SaleShipmentItem $shipmentItem */
	$shipmentItem = $productData['SHIPMENT_ITEM'] ?? null;
	if ($shipmentItem)
	{
		$fields['SHIPMENT_ITEM'] = $shipmentItem;
		$fields['NEED_RESERVE'] = [
			$shipmentItem->getInternalIndex() => $productData["NEED_RESERVE"] ?? false
		];
	}

	if (isset($productData['QUANTITY_BY_STORE']))
	{
		$fields['QUANTITY_BY_STORE'] = $productData['QUANTITY_BY_STORE'];
	}

	if (trim((string)$providerName) === '')
	{
		$callbackFunction = $basketItem->getCallbackFunction();
		if (!empty($callbackFunction))
		{
			$fields['CALLBACK'] = $callbackFunction;
		}
	}

	$this->addItem($productId, $fields);
}