parfume ecommerce

Получение каталога товаров
GET /shop

Authentication

Open

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

Responses

200 OK

Успешное получение каталога товаров

500 Internal Server Error

Ошибка получения каталога товаров

Body
Object
message
string

Текст ошибки

Examples:
No products found in Product collectionDatabase unavailable during /shop request
Product_summary

Краткое описание товара, которое испульзуется для превью в каталоге

Object
name
string required

Название товара

Example:
Meadow
price
number required

Цена товара

Example:
39.95
quantity
integer required

Количество товара, доступное для заказа

Example:
10
on_sale
boolean required

Участвует ли товар в акции

Example:
true
image
string required

url фото товара

Example:
/static/images/meadow.png
Example 1
{
    "name": "Meadow",
    "price": 39.95,
    "quantity": 10,
    "on_sale": true,
    "image": "/static/images/meadow.png"
}
Product

Полная информация о товаре

Object
product_id
string required

Уникальный идентификатор товара в базе данных

Example:
67195a23f7f8ae9320df12d0
name
string required

Название товара

Example:
Meadow
description
string required

Описание товара

Example:
BREEZY & JOYFUL
price
number required

Цена товара

Example:
39.95
image
string required

URL фото товара

Example:
/static/images/meadow.png
on_sale
boolean required

Участвует ли товар в акции

Example:
true
quantity
integer required

Количество доступного товара

Example:
10
scent_notes
Array required

Основные ноты аромата

string
Example:
Citrus, Jasmine, Musk
ingredients
string required

Состав продукта

Example:
Alcohol, Fragrance, Water
Example 1
{
    "product_id": "67195a23f7f8ae9320df12d0",
    "name": "Meadow",
    "description": "BREEZY & JOYFUL",
    "price": 39.95,
    "image": "/static/images/meadow.png",
    "on_sale": true,
    "quantity": 10,
    "scent_notes": [
        "Citrus, Jasmine, Musk"
    ],
    "ingredients": "Alcohol, Fragrance, Water"
}
Получение конкретного товара
GET /product/{product_id}

Возвращает карточку товара по ID

Path variables

product_id
string required

ObjectId товара

Example:
67195a23f7f8ae9320df12d0

Responses

200 OK

Успешное получение товара

Body
400 Bad Request

Некорректный ID или ошибка БД

Body
Object
error
string

Описание ошибки

Examples:
Invalid product IDDatabase error
404 Not Found

Товар не найден

Body
Object
error
string

Описание ошибки

Example:
Product not found: <product_id>
Subscriber

Подписчики рекламной рассылки магазина

Object
email
string

Электронная почта пользователя

Example:
pupupu@lalala.com
Подписка пользователя на рассылку
POST /subscribe

Позволяет пользователю подписаться на email-рассылку с формы на странице любого продукта.

Request parameters

email
string required

Электронная почта пользователя

Example:
pupupu@lalala.com

Responses

200 OK

Успешная подписка или пользователь уже подписан (редирект на /thankyou)

Body
Object
message
string
Examples:
Новый подписчик: pupupu@lalala.comПользователь уже подписан: pupupu@lalala.com
400 Bad Request

Неуспешная попытка из-за некорректного заполнения формы

Body
Object
error
string
Example:
mail not provided in /subscribe request
500 Internal Server Error

Неуспешная попытка из-за ошибки БД

Body
Object
error
string
Example:
Database error during /subscribe: <e>
Просмотр корзины
GET /cart

Возвращает список товаров, добавленных пользователем в корзину + общую стоимость заказа

Responses

200 OK

Успешное получение содержимого корзины

Body
Examples

Содержимое корзины и цена

{
  "cart_items": [
    {
      "user_id": "6722ad24f7b9ae1932d8aa12",
      "product_id": "67195a23f7f8ae9320df12d0",
      "name": "Meadow",
      "price": 39.95,
      "quantity": 1,
      "image": "/static/images/meadow.png"
    },
    {
      "user_id": "6722ad24f7b9ae1932d8aa12",
      "product_id": "67195a23f7f8ae9320df12d1",
      "name": "Jardinea",
      "price": 39.95,
      "quantity": 2,
      "image": "/static/images/jardinea.png"
    }
  ],
  "total": 119.85
}
{
  "cart_items": [],
  "total_price": 0.0
}
500 Internal Server Error

Ошибка при получении данных из базы данных

Body
Object
errors
Array
Object
message
string

Текст ошибки

Example:
Database unavailable during /cart request: connection refused
CartItem

Характеристики товара в корзине

Object
user_id
string required

Идентификатор пользователя

Example:
6722ad24f7b9ae1932d8aa12
product_id
string required

Идентификатор товара

Example:
67195a23f7f8ae9320df12d0
name
string required

Название товара

Example:
Meadow
price
number required

Цена товара

Example:
39.95
quantity
integer required

Кол-во товара в корзине

Example:
2
image
string required

Ссылка на изображение

Example:
/static/images/meadow.png
CartResponse

Объект, представляющий содержимое корзины пользователя и общую сумму заказа

Object
cart_items
Array of CartItem required

Массив товаров, добавленных пользователем в корзину

total
number required

Общая цена заказа

Example:
119.23
Review

Отзыв о товаре

Object
author
string required

Имя автора отзыва

Examples:
Emily JohnsonGustav Ahr
text
string

текст отзыва

Examples:
Love the scent!My favorite.
rating
integer required

оценка товара по 10ти балльной шкале

Examples:
910
Получить отзывы
GET /reviews

Получить отзывы о товарах магазина

Responses

200 OK

Успешное получение отзывов

Body
Array of Review
Examples
[
    {
        "author": "Emily Johnson",
        "text": "My favorite.",
        "rating": 9
    }
]
500 Internal Server Error

Неуспешная попытка получить отзывы

Body
Object
message
string
Example:
Database error during /reviews: <e>