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

Мы выпустили версию 2.0 плагина . Главное изменение в том, что у него появился интерфейс настроек в Medusa Admin, построенный на Модуле интеграций. Доступы к ЮKassa, параметры онлайн-чеков по 54-ФЗ и поведение оплаты теперь заполняет администратор магазина прямо в Admin, без правок кода и повторного развёртывания.
Модуль интеграций переносит настройки плагина из кода в Admin и базу данных. Плагин объявляет, какие параметры ему нужны и как их отображать, а модуль по этому объявлению генерирует страницу настроек, хранит значения, шифрует секреты и отдаёт провалидированную конфигурацию во время выполнения.
Автору плагина не нужно писать формы, API-роуты и воркфлоу для управления настройками. Администратору магазина не нужен доступ к коду, чтобы сменить API-ключ или настроить онлайн-чеки.
Все опции задавались в и переменных окружения. Любое изменение означало правку кода и повторное развёртывание приложения Medusa:
Те же опции собраны на странице Настройки → Интеграции → ЮKassa и разбиты на три секции: доступы, поведение оплаты и чеки. Значения хранятся в базе данных, а изменения вступают в силу сразу после сохранения.
Страница настроек не просто повторяет прежний список опций.
Версия 2.0 несовместима с 1.x по способу настройки. Что нужно учесть:
Адрес вебхука не меняется, перенастраивать личный кабинет ЮKassa не нужно.
Руководство по настройке версии 1.x остаётся доступным здесь.
Обновление занимает несколько минут. Плагину требуется Medusa v2.17.2 или новее.
Зарегистрируйте провайдер интеграции в Модуле интеграций и свяжите с ним платёжный провайдер через общий идентификатор. Прежние опции платёжного провайдера можно удалить:
Константа связывает две записи в конфигурации. По этому идентификатору модуль находит нужный инстанс интеграции и возвращает платёжному провайдеру его параметры.
Этим ключом модуль шифрует секреты в базе данных:
INTEGRATION_ENCRYPTION_KEY=supersecretПосле этого переменные окружения и можно удалить. Полное описание установки и всех параметров есть в разделах Начало работы и Управление настройками.
Задавайте вопросы и обсуждайте Medusa в Telegram-сообществе, пишите о проблемах с плагином в чат поддержки Gorgo или открывайте Issues и Pull Requests на GitHub.
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})npm install @gorgo/medusa-integration @gorgo/medusa-payment-yookassa@latest1const 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})