Настройка Saleor Dashboard

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

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка Saleor Dashboard
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Настройка Saleor Dashboard

Saleor Dashboard — отдельное React-приложение (TypeScript, Apollo Client, Material UI), которое деплоится независимо от API. Оно общается с Saleor Core исключительно через GraphQL. Настройка включает сборку под конкретное окружение, конфигурацию CORS/CSP на стороне API и опциональную кастомизацию интерфейса.

Требования и репозиторий

Dashboard живёт в отдельном репозитории: github.com/saleor/saleor-dashboard. Версия Dashboard должна совпадать с версией Core — мажорная и минорная версии должны быть одинаковы.

git clone https://github.com/saleor/saleor-dashboard.git
cd saleor-dashboard
git checkout 3.20  # версия = версии вашего Saleor Core
npm install

Переменные окружения

# .env
API_URI=https://api.your-store.com/graphql/
APP_MOUNT_URI=/dashboard/
STATIC_URL=/dashboard/static/
SENTRY_DSN=https://[email protected]/0
SENTR_ENABLED=true
IS_CLOUD_INSTANCE=false

API_URI — единственная обязательная переменная. Остальные опциональны, но STATIC_URL критичен если Dashboard живёт не в корне домена.

Сборка и деплой

npm run build
# dist/ содержит статические файлы

Артефакт — чистый SPA без SSR. Деплоится на любой статический хостинг: S3 + CloudFront, Nginx, Vercel. При деплое на субпуть нужно настроить basename React Router — это делается через APP_MOUNT_URI.

Nginx-конфиг для субпути:

location /dashboard/ {
    alias /var/www/dashboard/dist/;
    try_files $uri $uri/ /dashboard/index.html;

    location ~* \.(js|css|png|jpg|ico|woff2)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}

Настройка CORS на стороне API

Dashboard и API могут быть на разных доменах. Saleor Core (settings.py):

CORS_ALLOWED_ORIGINS = [
    "https://dashboard.your-store.com",
    "https://your-store.com",
]

# Для staging:
CORS_ALLOW_ALL_ORIGINS = False
CORS_ALLOW_CREDENTIALS = True

Без правильного CORS браузер заблокирует GraphQL-запросы — это первая проблема при новой установке.

Настройка CSP

Если на сервере включён Content-Security-Policy, нужно разрешить:

Content-Security-Policy:
  default-src 'self';
  script-src 'self' 'unsafe-inline';
  connect-src 'self' https://api.your-store.com wss://api.your-store.com;
  img-src 'self' data: https://cdn.your-store.com;
  font-src 'self' https://fonts.gstatic.com;

wss:// нужен для GraphQL subscriptions (live updates в Dashboard).

Первичная настройка после деплоя

  1. Открыть /dashboard/
  2. При первом запуске появится мастер создания суперпользователя (если база пустая)
  3. Настроить каналы продаж: Channels → Create Channel
  4. Подключить платёжные методы: Plugins → Payment
  5. Настроить склады: Warehouses → Create
  6. Добавить shipping zones и методы доставки

Брендирование интерфейса

Dashboard не предназначен для глубокой кастомизации, но базовое брендирование возможно:

// src/config.ts — можно переопределить:
export const APP_NAME = "My Store Admin";
export const LOGO_URL = "/static/logo.svg";

Замена логотипа и цветовой схемы (Material UI theme) требует правки исходников и пересборки. Это приемлемо, если Dashboard форкнут.

Интеграция Saleor Apps

С версии 3.x Dashboard поддерживает установку Apps через App Store или по manifest URL:

Настройки → Apps → Install external app:

https://my-app.vercel.app/api/manifest

App должно отдавать корректный JSON manifest с id, name, permissions и appUrl. Dashboard встраивает App через iframe с токен-аутентификацией.

Типичные проблемы при настройке

Симптом Причина Решение
Белый экран после деплоя Неверный APP_MOUNT_URI Проверить basename в роутере
401 на все GraphQL-запросы Не создан суперпользователь python manage.py createsuperuser
CORS error в консоли CORS_ALLOWED_ORIGINS не включает домен Dashboard Добавить origin в settings.py
Subscriptions не работают WSS заблокирован прокси Настроить Nginx для upgrade websocket

Обновление Dashboard

Dashboard обновляется независимо от Core, но версии должны совпадать. Процедура:

git fetch origin
git checkout 3.21
npm install
npm run build
# деплой нового dist/

Без миграций БД, без рестарта API — только пересборка фронта.