- Модуль: 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;
}