
WT Amo CRM library
- Категории: Библиотеки, Расширения для Joomla 4 и Joomla 5
- Версия: 1.3.1
- Дата:
Небольшая PHP библиотека для Joomla 4 / Joomla 5 / Joomla 6 и Amo CRM. Для разработчиков.

Описание
Пакет представляет собой набор расширений для удобной работы с REST API AmoCRM в Joomla. Библиотека не требует установки никаких дополнительных программных пакетов (зависимостей), использует только API Joomla. Код библиотеки документирован и IDE (профессиональные среды разработки) будут показывать подсказки по кодовой базе.
Эта библиотека в чистом виде будет интересна скорее всего только профессиональным разработчикам и интеграторам.
В составе пакета:
- библиотека интеграции Joomla и AmoCRM: WT Amo CRM Library
- плагин хранения настроек для подключения к AmoCRM: Система - WT Amo CRM Library
- плагин для синхронизации данных контактов AmoCRM и пользователей Joomla: Пользователь - WT AmoCRM user synс.
- плагин для CLI Joomla (команды консоли сервера) для добавления команд в CLI Joomla: Консоль - WT import AmoCRM contacts.
Авторизация библиотеки в REST API AmoCRM
Для хранения данных авторизации в AmoCRM служит плагин Система - WT Amo CRM Library. В нём вы указываете домен, секретный ключ, токен, ID интеграции и т.д. Библиотека получает данные из параметров плагина. Поддерживаются как обычные, так и долгоживущие (долгосрочные) токены.
Удаление старого refresh token
Если вы используете обычные токены, а не долгосрочные, то Amo CRM выдаёт access-токен на одни сутки. Для получения нового токена используется refresh-токен. Refresh токен действует всего 3 месяца. Если интеграция не используется в течение 3 месяцев, не было ни одного запроса на актуализацию ключа, то интеграция потеряет доступ к данным и будем необходимо повторно создавать и настраивать интеграцию.
Для упрощения этого процесса в параметры плагина добавлена кнопка удаления старого refresh-токен из базы данных. Если refresh-токен есть в базе данных - отображается дата его получения.
Вы должны использовать эту кнопку только в том случае, если срок действия вашего refresh-токена истек и вам необходимо удалить его из настроек библиотеки.
Подключение библиотеки в своё расширение для Joomla
use Webtolk\Amocrm\Amocrm;
$amocrm = new Amocrm();
$accountData = $amocrm->account()->getAccountInfo();
// Joomla uses a Symfony vardumper
dump($accountData);
Список сущностей AmoCRM для работы из Joomla
PHP-классы поддерживаемых сущностей находятся в папке src/Entities
.
- \Webtolk\Amocrm\Entities\Account
$amocrm->account()
- получение информации об аккаунте - \Webtolk\Amocrm\Entities\Contacts
$amocrm->contacts()
- работа с сущностью контактов AmoCRM - \Webtolk\Amocrm\Entities\Customfields
$amocrm->customfields()
- работа с кастомными полями сущностей AmoCRM - \Webtolk\Amocrm\Entities\Leads
$amocrm->leads()
- работа с сущностью сделок AmoCRM - \Webtolk\Amocrm\Entities\Notes
$amocrm->notes()
- работа с примечаниями к сущностям AmoCRM - \Webtolk\Amocrm\Entities\Tags
$amocrm->tags()
- работа с сущностью тегов AmoCRM - \Webtolk\Amocrm\Entities\Users
$amocrm->users()
- работа с сущностью пользователей AmoCRM - \Webtolk\Amocrm\Entities\Webhooks
$amocrm->webhooks()
- работа с вебхуками AmoCRM
Синхронизация пользователей Joomla и AmoCRM. Двухсторонняя интеграция.
Плагин Пользователь - WT AmoCRM user synс в поставке библиотеки позволяет как создавать новые контакты в AmoCRM при создании / регистрации пользователей в Joomla, так и создавать пользователей Joomla при создании контактов AmoCRM. Возможно обновлять информацию в одной системе при изменении данных в другой. Настройки сопоставления полей Joomla и AmoCRM. Данные также можно хранить в свойстве params
объекта пользователя ($user->params
). Сопоставление полей настраивается в параметрах плагина.
CLI плагин импорта пользователей Joomla из контактов AmoCRM.
В AmoCRM есть экспорт данных в CSV. Однако, возможно из-за большого количества разного рода интеграций, данные не всегда корректно экспортируются. Дабы избежать проблем с нарушением структуры данных было принято решение сделать более медленный импорт данных напрямую по REST API. Команды для выполнения в консоли сервера можно увидеть в параметрах плагина группы console
.
Обработка входящих вебхуков AmoCRM в Joomla.
В системном плагине добавлена единая точка входа для вебхуков со стороны AmoCRM. В дальнейшем информация из вебхука передаётся плагинам групп system
, user
и amocrm
, срабатывающим на событие onAmocrmIncomingWebhook
. Вы можете создать собственный плагин, который будет слушать это событие и обрабатывать данные или выполнять некие действия на стороне Joomla при событиях в AmoCRM.
Коллекция полей Joomla Form с данными из AmoCRM для разработчиков.
Для использования в расширениях Joomla создана коллекция полей Joomla Form. Эти поля используются в плагинах самой библиотеки, однако разработчики могут использовать готовые поля и в сторонних расширениях. Классы полей находятся в папке src/Fields
библиотеки. Для корректной работы поля необходимо в XML-манифесте вашего расширения (плагин, модуль, компонент) указать атрибут addfieldprefix
с неймспейсом библиотеки.
<field addfieldprefix="Webtolk\Amocrm\Fields"
type="accountinfo"
name="accountinfo"/>
Список полей на текущий момент:
Accountinfo
- поле с информацией об аккаунте AmoCRMCompaniestagslist
- выпадающий список тегов компаний AmoCRMCompanycustomfieldslist
- выпадающий список пользовательских полей компаний AmoCRMContactcustomfieldslist
- выпадающий список пользовательских полей контактов AmoCRMContactinfo
- информация о контакте и ссылка на него в AmoCRMContactstagslist
- выпадающий список тегов контактов AmoCRMEntitymodalselect
- модальное (всплывающее) окно для выбора id сущности: сделки или контакта.Leadcustomfieldslist
- выпадающий список пользовательских полей сделки AmoCRMLeadspipelineslist
- выпадающий список воронок AmoCRMLeadstagslist
- выпадающий список тегов сделок AmoCRMWebhookslist
- информация о вебхуках аккаунта AmoCRM и их ограничениях.
Поля реализованы с использованием layouts
Joomla. При острой необходимости вы можете переопределить макет вывода поля штатными средствами Joomla.
Группа плагинов amocrm
для разработчиков
Чтобы гибкие и сложные интеграции не влияли скорость работы сайта - добавлена специализированная группа для плагинов - amocrm. Вы можете создать собственный плагин этой группы и работать с данными AmoCRM не затрагивая остальные разделы Joomla.
Joomla
- Тип расширения:
- Пакет
- Состав пакета:
- Библиотека, Плагин
- Версия Joomla:
- 4.1, 4.2, 4.3.4, 5.0.0, 6.0.0