API Shop Categories - rubyhat/fastyshop-backend GitHub Wiki

🗂️ Категории магазинов (ShopCategories API)

Контроллер: Api::V1::ShopCategoriesController
Версия: v1
Слой: Публичный API
Все методы доступны без аутентификации. Категории сидируются заранее.


📘 Общая логика

Категории магазинов — это предустановленные (сидированные) значения, из которых продавец выбирает при создании магазина. Они не редактируются пользователями.
Служат для фильтрации, настройки шаблонов магазинов и аналитики.


📄 Методы

📂 GET /api/v1/shop_categories

Получение списка всех доступных категорий магазинов.


✅ Ответ

[
  {
    "id": "fa8b12b4-1b20-4c4c-a4fc-114ea6e87960",
    "title": "Цветы",
    "slug": "flowers"
  },
  {
    "id": "36e778bb-2b3d-4b27-9b1d-94a1c6485052",
    "title": "Электроника",
    "slug": "electronics"
  }
]

✅ Чек-лист

Пункт Значение
🔒 Требуется access token ❌ Нет
🔐 Политики доступа Не применяются
🔗 Зависимости Отсутствуют

💼 Бизнес-логика

  • Категории заранее сидируются в базу данных
  • Используются при создании магазина (Shop)
  • Категории не могут быть созданы, изменены или удалены через API

📚 Кейсы использования

🧾 Кейс 1: Продавец создаёт магазин

На форме создания магазина продавец выбирает категорию из выпадающего списка, который загружается с помощью GET /shop_categories.

🔎 Кейс 2: Покупатель ищет магазины по категориям

Клиент в каталоге магазинов применяет фильтрацию по shop_category_id, передавая ID из полученного списка.

🎛 Кейс 3: Админ настраивает шаблон по категории

Админ использует ID категории, чтобы задать шаблон для будущих магазинов, включая дефолтные товары и оформление.


🧩 Связанные сущности

Сущность Назначение
ShopCategory Сидированная категория магазина
Shop Содержит ссылку на shop_category_id

📄 TODO / Идеи

  • Поддержка перевода названий на разные языки
  • Поддержка иконок и изображений для категорий
  • Расширение до 2 уровня (подкатегории)