В новой версии плагина @gorgo/medusa-payment-yookassa мы перенесли настройки из medusa-config в Admin с помощью Модуля интеграций. Рассказываем, что изменилось и как обновиться.

Мы выпустили версию 2.0 плагина . Главное изменение в том, что у него появился интерфейс настроек в Medusa Admin, построенный на Модуле интеграций. Доступы к ЮKassa, параметры онлайн-чеков по 54-ФЗ и поведение оплаты теперь заполняет администратор магазина прямо в Admin, без правок кода и повторного развёртывания.
Модуль интеграций переносит настройки плагина из кода в Admin и базу данных. Плагин объявляет, какие параметры ему нужны и как их отображать, а модуль по этому объявлению генерирует страницу настроек, хранит значения, шифрует секреты и отдаёт провалидированную конфигурацию во время выполнения.
Автору плагина не нужно писать формы, API-роуты и воркфлоу для управления настройками. Администратору магазина не нужен доступ к коду, чтобы сменить API-ключ или настроить онлайн-чеки.
Все опции задавались в и переменных окружения. Любое изменение означало правку кода и повторное развёртывание приложения Medusa:
1module.exports = defineConfig({2 modules: [3 {4 resolve: "@medusajs/medusa/payment",5 options: {6 providers: [7 {8 resolve: "@gorgo/medusa-payment-yookassa/providers/payment-yookassa",9 id: "yookassa",10 options: {11 shopId: process.env.YOOKASSA_SHOP_ID,12 secretKey: process.env.YOOKASSA_SECRET_KEY,13 capture: true,14 paymentDescription: "Test payment",15 useReceipt: true,16 useAtolOnlineFFD120: true,17 taxSystemCode: 1,18 taxItemDefault: 1,19 taxShippingDefault: 1,20 },21 },22 ],23 },24 },25 // ...26 ],27})Те же опции собраны на странице Настройки → Интеграции → ЮKassa и разбиты на три секции: доступы, поведение оплаты и чеки. Значения хранятся в базе данных, а изменения вступают в силу сразу после сохранения.
Страница настроек не просто повторяет прежний список опций.
Версия 2.0 несовместима с 1.x по способу настройки. Что нужно учесть:
Адрес вебхука не меняется, перенастраивать личный кабинет ЮKassa не нужно.
Руководство по настройке версии 1.x остаётся доступным здесь.
Обновление занимает несколько минут. Плагину требуется Medusa v2.17.2 или новее.
npm install @gorgo/medusa-integration @gorgo/medusa-payment-yookassa@latestЗарегистрируйте провайдер интеграции в Модуле интеграций и свяжите с ним платёжный провайдер через общий идентификатор. Прежние опции платёжного провайдера можно удалить:
1const YOOKASSA_INTEGRATION_ID = "yookassa-1"2
3module.exports = defineConfig({4 plugins: [5 {6 resolve: "@gorgo/medusa-integration",7 options: {8 encryptionKey: process.env.INTEGRATION_ENCRYPTION_KEY,9 providers: [10 {11 resolve: "@gorgo/medusa-payment-yookassa/providers/integration-yookassa",12 id: YOOKASSA_INTEGRATION_ID,13 options: {},14 },15 ],16 },17 },18 // Регистрируется, чтобы Admin подхватил переводы для страницы настроек19 {20 resolve: "@gorgo/medusa-payment-yookassa",21 options: {},22 },23 // ...24 ],25 modules: [26 {27 resolve: "@medusajs/medusa/payment",28 options: {29 providers: [30 {31 resolve: "@gorgo/medusa-payment-yookassa/providers/payment-yookassa",32 id: "yookassa",33 options: {34 id: YOOKASSA_INTEGRATION_ID, // совпадает с id провайдера интеграции выше35 },36 },37 ],38 },39 },40 // ...41 ],42})Константа связывает две записи в конфигурации. По этому идентификатору модуль находит нужный инстанс интеграции и возвращает платёжному провайдеру его параметры.
Этим ключом модуль шифрует секреты в базе данных:
INTEGRATION_ENCRYPTION_KEY=supersecretПосле этого переменные окружения и можно удалить. Полное описание установки и всех параметров есть в разделах Начало работы и Управление настройками.
Задавайте вопросы и обсуждайте Medusa в Telegram-сообществе, пишите о проблемах с плагином в чат поддержки Gorgo или открывайте Issues и Pull Requests на GitHub.