Замена CRM требует правок в 40 местах, где напрямую вызывается её HTTP-API
Вызовы API AmoCRM через Guzzle разбросаны по контроллерам, командам и слушателям событий — в каждом месте свой формат данных и обработка ошибок. Компания переходит на другую CRM, и оценка переезда — два месяца.
Как стоило изолировать интеграцию?
- Порт в терминах домена и адаптер под конкретную CRM
- Общий хелпер crmRequest() с параметром URL
- Вызывать CRM только из контроллеров
- Хранить копию данных CRM в своей базе
