• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/productmanager/entityproductconverter.php
  • Класс: Bitrix\Crm\Order\ProductManager\EntityProductConverter
  • Вызов: EntityProductConverter::convertToCrmProductRowFormat
public function convertToCrmProductRowFormat(array $basketItem): array
{
	$taxRate = null;
	if (array_key_exists('VAT_RATE', $basketItem))
	{
		if ($basketItem['VAT_RATE'] === null)
		{
			$taxRate = false;
		}
		elseif (is_numeric($basketItem['VAT_RATE']))
		{
			$taxRate = (float)$basketItem['VAT_RATE'] * 100;
		}
	}

	$xmlId = null;
	if (isset($basketItem['ID']) && is_numeric($basketItem['ID']))
	{
		$xmlId = ProductRowXmlId::getXmlIdFromBasketId((int)$basketItem['ID']);
	}

	$result = [
		'XML_ID' => $xmlId,
		'PRODUCT_NAME' => $basketItem['NAME'],
		'PRODUCT_ID' => $basketItem['PRODUCT_ID'],
		'QUANTITY' => $basketItem['QUANTITY'],
		//'PRICE_ACCOUNT' => 'Calculated when saving',
		'MEASURE_CODE' => $basketItem['MEASURE_CODE'],
		'MEASURE_NAME' => $basketItem['MEASURE_NAME'],
		'TAX_RATE' => $taxRate,
		'TAX_INCLUDED' => $basketItem['VAT_INCLUDED'],
	];

	// prices
	$vatRate = (float)$basketItem['VAT_RATE'];
	$vatIncluded = $basketItem['VAT_INCLUDED'] === 'Y';
	$price = (float)$basketItem['PRICE'];
	$basePrice = (float)$basketItem['BASE_PRICE'];

	$result += $this->pricesConverter->convertToProductRowPrices($price, $basePrice, $vatRate, $vatIncluded);
	$result['DISCOUNT_TYPE_ID'] = Discount::MONETARY;

	// type
	$result['TYPE'] = $this->getTypeByProductId((int)$basketItem['PRODUCT_ID']);

	return $result;
}