Обновление кастомизатора в версии Itgrix_amo 3.0.0

Изменения в кастомизаторе

В обновлении Itgrix_amo v3.0.0 осуществлен переход API amoCRM с v2 на v4. В связи с этим запросы в кастомизаторе (методы класса Amo в файле customizer/lib/crm.php) также переведены с v2 на v4.

Кроме этого, все запросы теперь осуществляются не напрямую из кастомизации, а через коннектор. Т.е. из кастомизации запрос идет в API коннектора, и уже коннектор отправляет запрос в API amoCRM. Это необходимо для соблюдения ограничения на количество запросов, - теперь запросы из кастомизатора будут учитываться коннектором. Ограничения со стороны amoCRM описаны в статье Ограничения и рекомендации.

Изменения в методах класса Amo

  • Все методы-обертки запросов в классе Amo (customizer/lib/crm.php) переведены с v2 на v4. Исключение - Amo::createLead и Amo::createTask, в них и до обновления использовался API v4.

  • Переименованы методы:

    • Amo::getLeadsList -> Amo::getLeadList

    • Amo::getContactsList -> Amo::getContactList

  • Добавлен метод Amo::updateLead. Он должен был быть добавлен ранее (например, он используется в кастомизации "Добавление данных о звонке в тег новой сделки"), но по ошибке не был добавлен в предыдущих релизах. В данном релизе добавлен сразу с использованием API v4.

Работа с примечаниями

Отдельного описания требуют изменения в методе Amo::addNoteToEntities Его исользование описано в статье по кастомизации "Добавление звонка в несколько сущностей".

  • В API amoCRM v2 это POST-запрос /api/v2/notes (документация на API v2 более недоступна, но можно найти в веб-архиве)

  • В API amoCRM v4 это POST-запрос /api/v4/{entity_type}/notes (раздел Добавление примечаний в статье События и примечания документации amoCRM). Поменялись состав и названия полей, которые нужно отправлять при создании примечания. Но главное - в отличие от v2 в документации v4 не описаны поля params/call_status, params/call_result, а поле created_at описано только в методах чтения, но не записи. Без этих полей невозможно создать полноценное примечание о звонке. Экспериментально выявлено, что указанные поля по-прежнему можно отравлять при создании примечаний и в v4, однако теперь это "недокументированный функционал", т.е. его поддержка не гарантирована.

Возможность реализации запросов по-старому

Тем не менее по-прежнему остается метод Amo::request, который дает возможность делать запросы напрямую из кастомизатора, причем с выбором используемой версии API (v2/v4).

Таким образом в случае крайней необходимости можно реализовывать запросы по-старому.

Однако, нужно учитывать, что при обновлениях коннектора файлы в customizer/lib автоматически обновляются на актуальную версию. Поэтому для сохранения старых функций нужно их вынести в другой файл - или непосредственно в файл кастомизации, или создать дополнительный библиотечный файл, который уже подключать в коде кастомизации. Например, можно сохранить целиком старый файл crm.php, переименовав его и поменяв название класса Amo во избежание конфликта имен.

Итоги

При обновлении коннектора Itgrix_amo до версии 3.0.0 необходимо учесть изменения в кастомизаторе: если использовались запросы в CRM, скорее всего потребуется внести правки в код (обновить параметры запросов, в некоторых случаях переименовать функции).

Если вам требуется помощь, обратитесь в нашу техническую поддержку.

Last updated