Вы можете разработать собственный модуль и разместить его в Маркетплейсе. Модуль может быть как бесплатным, так и платным. Перед размещением модуля вам требуется зарегистрироваться как партнер и заключить договор. Для этого обратитесь к нам через форму на сайте.
Разработка модуля
Ваш модуль может выполнять все функции, которые доступны в API. В справочнике методов приведен полный перечень API-методов. Для работы с API требуется API-ключ. Вы должны понимать, какие API-методы понадобятся для работы модуля. В дальнейшем, в партнерском кабинете, вам потребуется указать {configUrl}, определяющий для системы список доступов, которые предоставляются вашему модулю. При активации модуля методом GET /api/credentials
вы можете проверить, все ли необходимые методы разрешены.
Изучите правила работы с API. Важно понимать, какие ограничения накладывает API, а также какие виды ошибок он может возвращать.
Основные требования к модулям
- Модуль должен использовать только последнюю актуальную версию API.
- Модуль должен расширять пользовательский функционал и нести очевидную ценность продукту. Решения, дублирующие стандартный функционал, к публикации не допускаются. Также в публикации модуля может быть отказано, если его функционал находится в разработке у вендора.
- Интеграция подразумевает автоматический обмен данными между системами. Простого вызова интерфейса внешнего сервиса из интерфейса для публикации модуля недостаточно.
- При заборе данных модулем из системы, необходимо реализовать процесс только с помощью API, чтобы минимизировать работу клиента при подключении и настройки модуля.
- Интеграция должна осуществлять обмен данными между системой и внешними решениями. Чтобы клиент не переключался между окнами и админками различных сервисов.
- Описание модуля должно соответствовать функционалу. Название модуля должно быть емкое и не должно содержать элементов фирменного стиля вендора.
- Любые ограничения в работе модуля либо невозможность обработать какие-либо ситуации или формат данных, если это вызвано ограничением конечной системы, с которой через модуль осуществлена интеграция, должны быть описаны в документации.
- Для модулей доставки реализован обширный функционал для взаимодействия, который, помимо всего прочего, позволяет не просто выгружать посылки в службу доставки, но также редактировать и отменять/удалять их. Если модуль в полной мере не реализует данные возможности, необходимо указать это в документации к модулю.
- Настройка параметров модуля доставки должна производиться в личном кабинете модуля. Передавать указанные настройки в конфигурации модуля необходимо в поле
integrationModule[integrations][delivery][settings]
. - Решение не должно запрашивать логин и пароль пользователя для авторизации в системе вендора. Для получения необходимых данных из аккаунта клиента необходимо использовать API ключ.
- Модулем должна быть предусмотрена обработка возможных ошибок со стороны API. Сообщения об ошибках, возникающих по причине неверного оформления данных, некорректной обработки данных менеджерами клиента и/или сбоя непосредственно в конечной системе, с которой модулем реализована интеграция), должны выводиться пользователю, быть понятны и достаточно содержательны. Не допускается вывод стандартных ошибок вида
Ошибка сервера
, либоstack trace
. - Не должно быть ошибок в работе модуля, также необходимо убедиться в полной работоспособности всех ссылок и механизмов для подключения и настройки модуля. В противном случае, из-за невозможности подключить либо произвести настройку модуля, сразу же будет принято отрицательное решение о модерации, даже если на тестовой системе партнёра модуль установлен и можно проверить его работоспособность.
- При настройке соответствий между двумя системами необходимо, чтобы данные из обеих систем всегда были актуальны на странице настроек. В случае, если невозможно получить какие-либо необходимые списки данных для настроек от сторонней системы, не допускается генерация этих данных на основе текущего состояния сторонней системы для пользователя. Список данных должен быть сформирован заранее и обновляться по мере необходимости.
- Модуль и его описание не должны содержать оскорбительную, непристойную информацию, призывы к насилию, порнографию, расизм, и прочие запрещенные законодательством РФ материалы.
- Обязательно предусматривать логирование запросов к API и ответов и хранить эти данные в течение месяца или хотя бы нескольких дней, для использования в случае решения проблем с интеграцией.
- Модуль может быть не допущен для публикации в маркетплейсе без объяснения причин по решению модератора.
Проверка домена системы при подключении модуля
В существующих и новых модулях интеграции, публикуемых в маркетплейсе, требуется проверять адрес аккаунта, в котором включается модуль.
Валидация должна проверять, что:
- Указанный URL имеет корректный формат
- Протокол в URL
https://
- Аккаунт находится на одном из доменов данного списка https://infra-data.retailcrm.tech/crm-domains.json
В последней проверке список допустимых доменов необходимо читать напрямую из указанного json-файла. Это связано с тем, что список доменов может расширяться.
Если ваш модуль разработан на Symfony (PHP 7.3+), вы можете использовать готовый валидатор https://github.com/retailcrm/url-validator