Добавление товара из каталога в сделку битрикс24
Задача: добавить товар в сделку из каталога товаров. Товар добавляется, но поле цена всегда 0, а если убрать задание цены 'PRICE' => 111, то товар вообще не добавляется.
\Bitrix\Main\Loader::includeModule('crm');
\CCrmProductRow::Add(['OWNER_TYPE' => 'D', 'OWNER_ID' => 340, 'PRODUCT_ID' => 854, 'QUANTITY' => 1, 'PRICE' => 111, 'MEASURE_CODE' => 796, 'CURRENCY_ID' => 'RUB']);
Ответы (2 шт):
Автор решения: Jasmanchik
→ Ссылка
$rows[] = [
'PRODUCT_ID' => 30, //id товара
'QUANTITY' => 1, //количество
'PRICE' => 1000, //цена
];
$res = CCrmProductRow::SaveRows('D', $dealID, $rows); //"D" - сделка, "L" - Лид
Автор решения: Timur
→ Ссылка
Я разобрался, там необходимо было добавить еще 'PRICE_NETTO', 'PRICE_BRUTTO', 'PRICE_EXCLUSIVE'. В коде ниже я сначала читаю товар, а потом подставляю соответствующие значения в добавленный товар в СРМ.
\Bitrix\Main\Loader::includeModule('Catalog');
\Bitrix\Main\Loader::includeModule('crm');
\CCrmProductRow::DeleteByOwner('D', {=Document:ID});
$arr=CCatalogProduct::GetByIDEx(854); //854 - ID товара
if($tax=CCatalogVat::GetByID(2)->fetch())
{ \CCrmProductRow::Add(['OWNER_TYPE' => 'D', 'OWNER_ID' => {=Document:ID}, 'PRODUCT_ID' => 854, 'DISCOUNT_RATE' => '', 'DISCOUNT_SUM' => '', 'TAX_RATE' => $tax['RATE'], 'TAX_INCLUDED' => 'N', 'QUANTITY' => 1, 'PRICE' => '', 'PRICE_NETTO' => $arr['PRICES'][1]['PRICE'], 'PRICE_BRUTTO' => '', 'PRICE_EXCLUSIVE' => $arr['PRICES'][1]['PRICE'], 'MEASURE_CODE' => 796, 'CURRENCY_ID' => RUB]);
}