Basic requirements for modules
Copy the link to the article
Copied

You can develop your own module and place it in the Marketplace. The module can be either free or paid.Before placing the module you need to register as a partner and conclude an agreement. To do this please contact us via the form on the website.

Module development

Your module can perform all the functions that are available in the API. The methods directory provides a complete list of API methods. An API key is required to work with the API. You should understand what API methods will be needed for the work of the module. Subsequently in the partner account you will need to specify {configUrl} which defines for the system the list of accesses that are provided to your module. When activating the module using the GET /api/credentials method you can check if all required methods are allowed.

Learn the rules of working with the API. It is important to understand what restrictions the API imposes as well as what types of errors it can return.

Basic requirements for modules

  1. The module must only use the latest up-to-date version of the API.
  2. The module should extend the user functionality and bring obvious value to the product. Solutions that duplicate the standard functionality are not permitted for publication. Publication of a module may also be denied if its functionality is under development by the vendor.
  3. Integration implies automatic data exchange between systems. Simply calling an external service interface from the interface to publish a module is not enough.
  4. When a module fetches data from the system, if it is equally possible to perform using both the API and the trigger, priority should be given to the API in order to minimize the customer's work when connecting and configuring the module.
  5. The integration should exchange data between the system and external solutions. So that the customer does not have to switch between windows and admin panels of different services.
  6. The module description must correspond to the functionality. Module name should be capacious and should not contain elements of vendor corporate style.
  7. Any restrictions in the module operation or inability to process any situations or data format, if this is caused by a limitation of the end system with which the integration is carried out via the module, should be described in the documentation.
  8. Extensive interaction functionality is implemented for delivery modules which among other things allows not only to upload parcels to the delivery service, but also to edit and cancel/delete them. If the module does not fully implement these features, it is necessary to specify this in the module documentation.
  9. The delivery module parameters should be configured in the personal account of the module. It is necessary to transfer the specified settings in the module configuration to the field integrationModule [integrations][delivery][settings].
  10. The solution should not request the user's login and password for authorization in the vendor's system. To get the necessary data from the customer's account you need to use the API key.
  11. The module should provide for processing possible errors on the API side. Messages about errors that occur due to incorrect data formatting, incorrect data processing by customer managers and/or failure directly in the end system with which the module is integrated, should be displayed to the user, be understandable and sufficiently informative. The output of standard errors such as Server Error or stack trace is not permitted.
  12. There should be no errors in the operation of the module, it is also necessary to make sure that all links and mechanisms for connecting and configuring the module are fully operational. Otherwise due to the inability to connect or configure the module a negative decision on moderation will be made immediately even if the module is installed on the partner's test system and its operability can be checked.
  13. When setting up matchings between two systems, it is necessary that data from both systems is always up-to-date on the settings page. In the event that it is not possible to get any necessary lists of data for settings from a third-party system, it is not allowed to generate this data for the user on the basis of the current state of the third-party system. The data list should be generated in advance and updated as needed.
  14. The module and its description must not contain offensive, obscene information, incitement to violence, pornography, racism, and other materials prohibited by the legislation of the Russian Federation.
  15. It is recommended to provide for logging of API requests and responses and to store this data for a month or at least several days for use in case of solving integration problems.
  16. The module may be denied for publication in the Marketplace without explanation of the reasons by decision of the moderator.
  17. When resubmitting a module for moderation a comment should be added describing what changes were made and what concerns were corrected.
  18. The number of times that a module can be submitted for moderation is currently not limited but with repeated negative decisions during moderation (if the number of attempts is more than 5) the module may be given a lower priority during verification.

Checking the system domain when connecting the module

In existing and new integration modules published in the marketplace it is required to check the address of the account in which the module is enabled.

Validation should check that:

In the latest check the list of valid domains should be read directly from the specified json file. This is due to the fact that the list of domains can be extended.

If your module is developed on Symfony (PHP 7.3+) you can use the ready-made validator https://github.com/retailcrm/url-validator.

Thank you for your feedback.
Was this article helpful?
No
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Yes
Next article
How to connect and activate a module in the system
Consider the general scheme of connecting and activating the module in the system.
#}