Command Palette

Search for a command to run...

Начало работы с Medusa DTC Starter

В этом руководстве вы узнаете, как установить Medusa DTC Starter от Gorgo, настроить оба приложения и подключить первую интеграцию.

Требования

  • Node.js v20 или новее
  • PostgreSQL v15 или новее
  • npm, yarn или pnpm

Установка

Установите стартер одним из двух способов: разверните новый проект через собственный CLI Medusa либо клонируйте репозиторий и настройте каждое приложение вручную.

Способ 1: Установка через Medusa Application

yarn dlx create-medusa-app@latest --repo-url https://github.com/gorgojs/medusa-dtc-starter

указывает разворачивать проект из указанного репозитория вместо официального стартера Medusa, но обычные запросы про имя проекта и базу данных остаются такими же. По умолчанию команда также запускает миграции, создаёт администратора и засеивает базу данных. Передайте , чтобы пропустить все три шага.

Способ 2: Раздельная установка

  1. Клонируйте репозиторий и установите зависимости:

    1git clone https://github.com/gorgojs/medusa-dtc-starter.git
    2cd medusa-dtc-starter
    3yarn install
  2. Создайте файл переменных окружения бэкенда и укажите в реальную базу данных:

    Terminal
    cp apps/backend/.env.template apps/backend/.env
    apps/backend/.env
    DATABASE_URL=postgres://postgres:@localhost:5432/medusa-dtc-starter
  3. Запустите миграции, создайте администратора, загрузите начальные данные и запустите бэкенд:

    1cd apps/backend
    2yarn medusa db:migrate
    3yarn medusa user -e admin@medusajs.com -p supersecret
    4yarn seed
    5yarn dev
  4. Откройте панель администратора по адресу , войдите и скопируйте публикуемый API-ключ в Настройки → Публикуемые API-ключи.

  5. Создайте файл переменных окружения витрины с этим ключом:

    Terminal
    cp apps/storefront/.env.template apps/storefront/.env.local
    apps/storefront/.env.local
    NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY=pk_6c3...
  6. Запустите витрину:

    1cd apps/storefront
    2yarn dev

Витрина запускается на . Корень репозитория настроен под pnpm, поэтому оттуда поднимает оба приложения сразу. С npm или yarn запускайте каждое приложение из его собственной папки.


Конфигурация

Бэкенд

Перед запуском бэкенда нужно задать реальное значение для и :

apps/backend/.env
1DATABASE_URL=postgres://postgres:@localhost:5432/medusa-dtc-starter
2INTEGRATION_ENCRYPTION_KEY=supersecret

Остальные переменные в уже заданы рабочими значениями для localhost, кроме блока SMTP, в котором указан условный хост, пока вы не заполните его своим. Что делают остальные переменные:

Смените все значения перед продакшеном.

Витрина

Для витрины нужен как минимум публикуемый API-ключ вашего бэкенда:

apps/storefront/.env.local
NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY=pk_6c3...

Остальные переменные уже заданы рабочими значениями по умолчанию для localhost:


Добавление интеграций

Модуль интеграций () уже зарегистрирован в с пустым массивом , так что перед добавлением интеграции ничего дополнительно подключать не нужно. Когда бэкенд запущен, добавьте платёжную, логистическую или ERP-интеграцию и настройте ее из Medusa Admin, читайте в документации Поиск и добавление интеграции.


Устранение неполадок

Витрина не может обратиться к бэкенду или показывает ошибку региона

В логах витрины видна ошибка:

Логи витрины
Error fetching regions. Did you set up regions in your Medusa Admin and define a NEXT_PUBLIC_MEDUSA_BACKEND_URL environment variable.

Причина одна из двух: либо не задан или указывает не туда, либо на бэкенде пока не настроен ни один регион. Проверьте, что бэкенд запущен и доступен по этому адресу. Если регионов правда нет, их создаёт seed-скрипт, читайте в документации Настройка начальных данных.

Оплата через Stripe не загружается

В логах витрины видна одна из двух ошибок:

Логи витрины
Stripe key is missing. Set NEXT_PUBLIC_STRIPE_KEY environment variable.

Первая означает, что витрина попыталась отрисовать Stripe Elements без публикуемого ключа Stripe.

Логи витрины
Stripe client secret is missing. Cannot initialize Stripe.

Вторая означает, что для корзины ещё не создана платёжная сессия Stripe, обычно потому что в выбранном регионе не настроен провайдер Stripe.

Витрина открывается не в той стране

Новый посетитель попадает в регион, никак не связанный с его местоположением, обычно каждый раз в один и тот же.

Задайте в , перезагрузите страницу и прочитайте заголовки на запросе документа в панели сети браузера. называет, что дало ответ: означает, что cookie не была удалена, тогда удалите её или откройте новое приватное окно; означает, что определить страну не удалось, а тоже не совпала ни с одним регионом из seed-данных, тогда задайте в ней реальный код страны; означает, что переменная не дошла до сервера. Что означает каждый заголовок, читайте в документации Настройка определения страны.


Не работает автозаполнение адреса

Если поле адреса при оформлении заказа не подсказывает варианты по мере набора, скорее всего не задан ключ DaData. Заведите аккаунт на DaData, укажите свой ключ в и оставьте равным . Подробнее о настройке автозаполнения и подключении другого провайдера читайте в документации Настройка автозаполнения адреса.

Ошибки CORS в консоли браузера

, и в бэкенда задают списки разрешённых источников. Если вы переносите витрину или Admin на другой порт или домен, добавьте этот адрес в соответствующую переменную и перезапустите бэкенд.

Изменено 28 августа 2026 г.·Редактировать страницу