Виджет в amoCRM. Структура.
amoCRM обладает уникальным и очень развитым интерфейсом разработчика, что позволяет не только настраивать ее под свои потребности, но и создавать всевозможные интеграции с другими системами.
При этом, сотни самых разных готовых расширений уже доступны для кастомизации CRM под ваши нужды даже без навыков программирования.
Минимальная структура Виджита. (https://www.amocrm.ru/developers/content/integrations/structure)
manifest.json
Файл в формате json, содержащий описание виджета, настройки виджета, параметры виджета, выводимые пользователю, локализации, с которыми работает виджет.
script.js
JS-файл, который будет подключен на стороне пользователя в указанных в manifest.json областях
images/
Папка для размещения файлов изображений, которые используются в виджете. Должна содержать в себе 5 файлов в формате (png, jpeg,jpg или gif), которые будут использоваться как логотип виджета в разных областях видимости. Размер каждого файла не должен превышать 300 КБ. logo_min.png и logo_medium.png — обязательно, если виджет работает в карточках, используется во всех списках и карточках контактов или сделок в свернутом и развернутом состоянии соответственно. Изображения logo_main и logo_small дублируют цели logo_min соответственно, обязательны к отгрузке с ноября 2018 года. Также необходимо загрузить logo.png для поддержки старых версий.
i18n/
Папка, содержащая файлы локализаций в формате ключ:значение. На текущий момент возможно использование только двух локализаций: русской (ru) и английской (en). Все переводы будут доступны в JS.
Структура manifest.json.
{
"widget":{
"name": "widget.name",
"description": "widget.description",
"short_description": "widget.short_description",
"version": "1.1.",
"interface_version": 2,
"init_once": false,
"locale":[
"ru"
],
"installation": true
},
"locations":[
"lcard-1",
"settings"
],
"settings":{
"label_account":{
"name": "settings.label_account",
"type": "text",
"required": false
}
}
}
Где "locations" может иметь следующие значения (https://www.amocrm.ru/developers/content/integrations/areas):
lcard, cucard, ccard, comcard =>Карточки сделок, покупателей, контактов и компаний
llist, culist, clist, tlist => Списки сделок, покупателей, контактов и задач
settings => Cтраница установки и настройки виджетов
advanced_settings => Страница расширенных настроек виджета
card_sdk => SDK карточки (требует lcard, ccard, comcard для работы в карточках соответствующих сущностей)
catalogs => SDK списков
digital_pipeline => Digital воронка
lead_sources => Источники сделок
whatsapp_modal => Модальное окно интеграций, работающих с WhatsApp
everywhere => Виджет будет инициализироваться везде
sms => Виджет может быть использован в качестве отправителя системных SMS сообщений
Структура script.js.
define(['jquery'], function ($) {
var CustomWidget = function () {
var self = this, system = self.system;
this.callbacks = {
settings: function () {
},
init: function () {
return true;
},
bind_actions: function () {
return true;
},
render: function () {
return true;
},
contacts: {
selected: function () {
}
},
companies: {
selected: function () {
}
},
leads: {
selected: function () {
}
},
tasks: {
selected: function () {
}
},
destroy: function () {
},
onSave: function () {
return true;
},
advancedSettings: function () {
return true;
}
};
return this;
};
return CustomWidget;
});
Источник:
Статья написана 18.12.2020.