Search for a command to run...
В этом руководстве вы узнаете, как установить Medusa DTC Starter от Gorgo, настроить оба приложения и подключить первую интеграцию.
Установите стартер одним из двух способов: разверните новый проект через собственный CLI Medusa либо клонируйте репозиторий и настройте каждое приложение вручную.
yarn dlx create-medusa-app@latest --repo-url https://github.com/gorgojs/medusa-dtc-starterуказывает разворачивать проект из указанного репозитория вместо официального стартера Medusa, но обычные запросы про имя проекта и базу данных остаются такими же. По умолчанию команда также запускает миграции, создаёт администратора и засеивает базу данных. Передайте , чтобы пропустить все три шага.
Клонируйте репозиторий и установите зависимости:
1git clone https://github.com/gorgojs/medusa-dtc-starter.git2cd medusa-dtc-starter3yarn installСоздайте файл переменных окружения бэкенда и укажите в реальную базу данных:
Terminalcp apps/backend/.env.template apps/backend/.env
apps/backend/.envDATABASE_URL=postgres://postgres:@localhost:5432/medusa-dtc-starter
Запустите миграции, создайте администратора, загрузите начальные данные и запустите бэкенд:
1cd apps/backend2yarn medusa db:migrate3yarn medusa user -e admin@medusajs.com -p supersecret4yarn seed5yarn devОткройте панель администратора по адресу , войдите и скопируйте публикуемый API-ключ в Настройки → Публикуемые API-ключи.
Создайте файл переменных окружения витрины с этим ключом:
Terminalcp apps/storefront/.env.template apps/storefront/.env.local
apps/storefront/.env.localNEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY=pk_6c3...
Запустите витрину:
1cd apps/storefront2yarn devВитрина запускается на . Корень репозитория настроен под pnpm, поэтому оттуда поднимает оба приложения сразу. С npm или yarn запускайте каждое приложение из его собственной папки.
Перед запуском бэкенда нужно задать реальное значение для и :
apps/backend/.env1DATABASE_URL=postgres://postgres:@localhost:5432/medusa-dtc-starter2INTEGRATION_ENCRYPTION_KEY=supersecret
шифрует секретные поля, которые хранит Модуль интеграций. Смените значение перед продакшеном.
Для витрины нужен как минимум публикуемый API-ключ вашего бэкенда:
apps/storefront/.env.local1NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY=pk_6c3...2NEXT_PUBLIC_MEDUSA_BACKEND_URL=http://localhost:90003NEXT_PUBLIC_DEFAULT_REGION=en4NEXT_PUBLIC_BASE_URL=https://localhost:80005NEXT_PUBLIC_STRIPE_KEY=6MEDUSA_CLOUD_S3_HOSTNAME=7MEDUSA_CLOUD_S3_PATHNAME=8NODE_ENV=development9REVALIDATE_SECRET=supersecret10NEXT_PUBLIC_SITE_NAME="Gorgo Medusa Store"11NEXT_PUBLIC_ADDRESS_AUTOCOMPLETE_PROVIDER=dadata12NEXT_PUBLIC_ADDRESS_AUTOCOMPLETE_PROVIDER_API_KEY=
Остальные переменные уже заданы рабочими значениями по умолчанию для localhost. задаёт название магазина в шапке, подвале и при оформлении заказа, а также попадает в разметку и в эндпоинт . нужен только если вы используете Stripe. нужен только для встроенного автозаполнения адреса, читайте в документации Настройка автозаполнения адреса. и нужны только при развёртывании на Medusa Cloud. Значение должно совпадать с одноимённой переменной в , потому что бэкенд отправляет его с каждым вебхуком ревалидации. Смените его перед продакшеном.
Модуль интеграций () уже зарегистрирован в с пустым массивом , так что перед добавлением интеграции ничего дополнительно подключать не нужно. Когда бэкенд запущен, добавьте платёжную, логистическую или ERP-интеграцию и настройте ее из Medusa Admin, читайте в документации Поиск и добавление интеграции.
Если в логах витрины видно , причина одна из двух: либо не задан или указывает не туда, либо на бэкенде пока не настроен ни один регион. Проверьте, что бэкенд запущен и доступен по этому адресу. Если регионов правда нет, их создаёт сид-скрипт, читайте в документации Настройка начальных данных.
означает, что витрина попыталась отрисовать Stripe Elements без публикуемого ключа Stripe. означает, что для корзины ещё не создана платёжная сессия Stripe. Обычно это значит, что в выбранном регионе не настроен провайдер Stripe.
Если поле адреса при оформлении заказа не подсказывает варианты по мере набора, скорее всего не задан ключ DaData. Заведите аккаунт на DaData, укажите свой ключ в и оставьте равным . Подробнее о настройке автозаполнения и подключении другого провайдера читайте в документации Настройка автозаполнения адреса.
, и в бэкенда задают списки разрешённых источников. Если вы переносите витрину или Admin на другой порт или домен, добавьте этот адрес в соответствующую переменную и перезапустите бэкенд.