← К заметкам

Заметки

Почему crm.deal.productrows.set перезаписывает все товары

crm.deal.productrows.set задаёт весь список товаров сделки. Строки, которых нет в переданном наборе, не сохраняются как «старые». Это поведение метода, а не случайная потеря товаров.

Для добавления одной строки удобнее crm.item.productrow.add. Для изменения строки — метод обновления по её ID.

В legacy-интеграции с set нужно передавать полный итоговый список. Но чтение и последующая запись не являются одной атомарной операцией: между ними менеджер может изменить товары. Название обёртки replaceSafely само по себе эту гонку не устраняет.

Развитие legacy-метода остановлено. Для нового кода ориентируйтесь на универсальные методы товарных строк, сохраняя старый API там, где требуется поддержка существующей версии.

Документация: crm.deal.productrows.set.