В ходе работ над проектом оптового интернет-магазина возникла задача по интеграции Bitrix CMS и сервиса email рассылок SendPulse. В ходе ее реализации возник ряд сложностей из-за которых возникла необходимость создать собственный модуль интеграции.
Сервис SendPulse является неплохим сервисом Email рассылок. И клиентом было принято решение о его использовании. Для полноценной работы были озвучены следующие возможности:
На сайте сервиса дана ссылка на модуль размещенный на Битрикс маркетплейс. Он был сразу установлен и... Далее начались проблемы. Для начала оказалось, что часть функционала не работает. (Как оказалось позже: модуль не рассчитан, что сайт будет работать по протоколу https). Для того, чтобы начать работать с сервисом пришлось исправить несколько багов. При этом на Маркетплейс были оставлены сообщения о проблемах с модулем. В службу поддержки сервиса так же были обращения. Но ни какого вразумительного ответа не последовало и, тем более, изменений в модуле.
Между тем модуль кроме очевидных багов имеет некоторые достаточно странные архитектурные решения.
Была идея работать с официальным модулем и отправлять разработчикам багфиксы. Но и здесь сервис не пошел на встречный контакт
В итоге принято решение о создании собственного модуля
Предоставляемое сервисом АПИ так же добавило ряд ограничений
По идеологии сервиса email адрес включается в адресную книгу и есть категории рассылок. При использовании страниц отписки сервиса пользователь может отписаться от всех рассылок сразу либо от определенной категории. Но! АПИ не дает такой возможности. Из-за этого в данной интеграции под списком рассылки понимается отдельная Адресная книга на сервисе
Так же по идеологии сервиса если пользователь отписался от всех рассылок. Для восстановления подписки он должен написать на сервис SendPulse либо воспользоваться своим личным кабинетом на этом сервисе. Естественно с точки зрения интернет-магазина такой подход к своим клиентам очень не серьезный.
И вновь обращу внимание на службу поддержки. Отвечают быстро, если решение вопроса есть - всегда помагают. Но вот по вопросам исправления багов, доработки нехватающего функционала ответ сводится к "Мы передадим разработчикам, если сочтут нужным - поставят в очередь". Т.е. на коммерческих проектах решения с непрогнозируемым временем ожидания не подходят. С момента написания первого бегрепорта до написания собственного модуля прошло 4 месяца, за которые не были исправлен ни один баг в официальном модуле.
В итоге бы написан модуль интеграции с сервисом SendPulse включающий компонент позволяющий пользователю сайта управлять своей подпиской.
В модуле адаптирован и испольузется класс клиента REST API опубликованный разработчиками сервиса на GitHub
Модуль максимально обеспечил решение исходной задачи. А так же есть планы по его дальнейшему развитию