Коротко порядок действий следующий
- Находим буквенный идентификатор СП через метод
crm.enum.ownertype. - Получаем список полей товарных позиций через
crm.item.productrow.fields. - Добавляем товарную позицию через
crm.item.productrow.add.
В Битрикс24, как в «Зоне» у Стругацких, самый короткий путь — не прямая.
Шаг 1. Находим ownerType
Чтобы добавить товар к Счёту (под капотом это смарт-процесс), кроме полей товара нам понадобятся два значения: ownerType и ownerId.
- ownerType — буквенный идентификатор смарт-процесса;
- ownerId — ID элемента смарт-процесса.
Со стандартными сущностями всё просто, достаточно посмотреть в документации «Константы CRM» значение в столбце «Краткий символьный код» напротив нужной сущности. Так, для сделки символьный код «D», а для предложения — «Q».
С кастомными сущностями используем метод crm.enum.ownertype.
Обращаемся к нему через вебхук в формате (рекомендую через Firefox):
https://<портал>/rest/<юзер>/<секретный код>/crm.enum.ownertype
Получите ответ вида:

Ответ от вебхука на метод crm.enum.ownertype.
Нас интересует SYMBOL_CODE_SHORT — “T9f”.
Шаг 2. Получаем список полей товарных позиций
Для этого обратимся к методу crm.item.productrow.fields через вебхук (рекомендую через Firefox):
https://<портал>/rest/<юзер>/<секретный код>/crm.item.productrow.fields
Обязательные поля будут:
- ownerId — ID элемента;
- ownerType — буквенный код, получили ранее;
- productId — ID товара, берём из каталога;
- price — цена;
- quantity — количество.
Шаг 3. Добавление товарной позиции
Я буду использовать тестовую среду из приложения «РЕСТ Действия».

Сформированный запрос.

Добавленный товар.
Таким образом я создал товар в смарт-процессе.