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