Перейти к основному содержимому

События и расширения

События и расширения помогают добавлять поведение без переписывания базовых шаблонов и сценариев. Используйте их для аналитики, дополнительных блоков, уведомлений и интеграций с внешними сервисами.

Типовые точки расширения​

ТочкаПример
СтраницаДобавить блок на главную или в личный кабинет
ФормаДобавить дополнительное поле или подсказку
API-результатПоказать уведомление после успешной операции
МодульРасширить магазин, склад, поддержку или маркетплейс
АналитикаОтправить безопасное событие после действия пользователя

Принципы​

  • Не изменяйте базовые шаблоны без необходимости.
  • Добавляйте расширение в отдельный partial или компонент.
  • Не блокируйте основной сценарий, если внешняя интеграция недоступна.
  • Не храните секреты в JavaScript и шаблонах.
  • Логируйте только технические идентификаторы и безопасный контекст.

Пользовательские события​

Для событий интерфейса передавайте только безопасные данные:

window.dispatchEvent(new CustomEvent('mmoweb:payment:created', {
detail: {
paymentId: 'public-id',
amount: 100,
currency: 'USD'
}
}));

Не передавайте в браузер приватные ключи, токены, PIN, платежные реквизиты или внутренние ответы платежных систем.

Расширение модулей​

Если расширение относится к модулю, держите рядом:

  • шаблон блока;
  • стили блока;
  • текстовые ключи;
  • описание настройки;
  • проверочный сценарий.

Так проще обновлять модуль и понимать, какие файлы участвуют в изменении.

Ошибки​

Расширение не должно скрывать системную ошибку API. Показывайте пользователю понятное сообщение, а в лог пишите техническую категорию ошибки и request id.