Импорт и экспорт заведения

NextDish переносит заведение одним JSON-файлом: настройки, меню, языки и переводы, теги, расписания, акции, подсказки, конфигурацию бронирования и публичного сайта. Брони гостей и бинарные файлы в экспорт не входят.

Импорт из файла

Доступно: владелец и суперадмин с учётом лимита заведений тарифа.

  1. Откройте Заведения.
  2. Нажмите Импорт и выберите JSON-файл.
  3. Нажмите Начать импорт.
  4. Проверьте отчёт: количество блюд, языков, переводов и предупреждения.

Импорт всегда создаёт новое заведение. Если slug занят, NextDish добавляет к нему числовой суффикс. Существующее заведение не перезаписывается.

Экспорт

Доступно: суперадмин.

В карточке заведения нажмите кнопку с иконкой коробки. Браузер сохранит файл <slug>-export.json, который можно загрузить обратно через импорт.

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

Мультиязычный формат v3

base_language_code — язык исходных полей меню. Отдельный is_default задаёт язык, который открывается гостю без параметра lang. Эти языки могут отличаться.

{
  "export_version": 3,
  "restaurant": {
    "name": "Кафе Маяк",
    "slug": "cafe-mayak",
    "base_language_code": "ru",
    "translations": {
      "en": {
        "description": "A cafe by the sea"
      }
    }
  },
  "languages": [
    { "code": "ru", "is_default": false, "is_active": true, "sort_order": 0 },
    { "code": "en", "is_default": true, "is_active": true, "sort_order": 10 }
  ],
  "menu": {
    "Напитки": {
      "translations": { "en": { "name": "Drinks" } },
      "dishes": [
        {
          "name": "Лимонад",
          "description": "Домашний лимонад",
          "translations": {
            "en": {
              "name": "Lemonade",
              "description": "House-made lemonade"
            }
          },
          "variants": [
            {
              "weight": "300 мл",
              "price": 250,
              "translations": { "en": { "weight": "300 ml" } }
            },
            {
              "weight": "500 мл",
              "price": 350,
              "translations": { "en": { "weight": "500 ml" } }
            }
          ]
        }
      ]
    }
  }
}

Коды языков нечувствительны к регистру и допускают _ вместо -: EN будет нормализован в en, pt_BR — в pt-br. Если известный платформе язык указан в translations, но пропущен в languages, импорт подключит его автоматически. Неизвестные платформе языки будут пропущены с предупреждением.

Файлы старых форматов v1 и v2 продолжают импортироваться.