Мы с важной новостью: с 28 февраля 2025 года сервис Хабр Фриланс прекратит свою работу.

Купить услуги можно до 28 февраля 2025, но пополнить баланс уже нельзя. Если на вашем счете остались средства, вы можете потратить их на небольшие услуги — служба поддержки готова поделиться бонусами, на случай, если средств немного не хватает.
R50 c871264f3c7dac8c1f5ed98f8753b308
Laravel разработчик

ecommerce-api

Добавлено 04 дек 2024 в 04:45
REST API для онлайн-магазина ссылка на GitHub: https://github.com/dadaev77/ecommerce-api

Структура данных 1. Пользователи (users):
Содержит информацию о пользователях, которые могут авторизоваться, создавать корзины и размещать заказы.
2. Товары (products):
Каталог товаров с возможностью получения списка и сортировки по цене.
3. Корзины (carts):
Уникальная корзина для каждого пользователя, содержащая добавленные товары.
4. Заказы (orders):
Представляют оплаченные корзины, имеют три статуса: На оплату, Оплачен, Отменен.
5. Способы оплаты (payment_methods):
Справочник доступных способов оплаты с уникальными ссылками для перехода на оплату.

Основной функционал 1. Авторизация пользователя Пользователь проходит авторизацию, получает токен и может выполнять операции с корзинами, товарами и заказами.

2. Работа с корзиной У каждого пользователя может быть только одна корзина.
В корзину можно:
- Добавлять товары
- Удалять товары
- Просматривать содержимое корзины

3. Оформление заказа Пользователь оплачивает корзину выбранным способом оплаты:
- Создается заказ со статусом 'На оплату'.
- Генерируется ссылка на оплату (уникальная для способа оплаты).
- Корзина удаляется.
Если заказ не оплачен в течение 2 минут, его статус изменяется на 'Отменен'.
При успешной оплате заказ получает статус 'Оплачен'.

4. История заказов Пользователь может:
- Просматривать список своих заказов.
- Фильтровать их по статусу.
- Сортировать по дате создания.
- Получать подробную информацию о конкретном заказе.

API **Авторизация:**
- POST /api/login — Авторизация и получение токена
- POST /api/register — Регистрация нового пользователя

**Работа с товарами:**
- GET /api/products — Получить список товаров (сортировка по цене: ?sort=price)
- GET /api/products/{id} — Получить информацию о товаре по ID

**Работа с корзиной:**
- POST /api/carts/{product_id} — Добавить товар в корзину
- DELETE /api/carts/{product_id} — Удалить товар из корзины
- GET /api/carts — Просмотреть содержимое корзины

**Работа с заказами:**
- POST /api/orders — Оплатить корзину и создать заказ, вернуть ссылку на оплату
- PATCH /api/orders/{id}/status — Обновить статус заказа на 'Оплачен'
- GET /api/orders — Получить список заказов (сортировка: ?sort=date, фильтр: ?status=paid)
- GET /api/orders/{id} — Получить информацию о заказе по ID

Фоновые задачи Проверка заказов со статусом 'На оплату':
- Если прошло более 2 минут, автоматически обновить статус на 'Отменен'.

Логика работы 1. Оплата корзины При вызове POST /api/orders:
- Проверяется наличие корзины у пользователя.
- Создается новый заказ со статусом 'На оплату'.
- Генерируется уникальная ссылка на оплату для выбранного способа оплаты.
- Корзина удаляется.

2. Обновление статуса на "Оплачен" При переходе по ссылке на оплату вызывается PATCH /api/orders/{id}/status с обновлением статуса заказа на 'Оплачен'.

3. Автоматическое обновление статуса Фоновый процесс:
- Периодически проверяет заказы со статусом 'На оплату'.
- Если прошло более 2 минут с момента создания, статус обновляется на 'Отменен'.

60ad8c7ead D23dc62156 F997c35541 Ab6c93091b 02a38889cb A889c3b220 7e1236ca07 Ae0dc02d96 E9014e1f2b 20194d831b 766e9e41a5 5292239f57 9b05220a4f Fb01129aaa 9181c2dd62 B7ed327bae C8eba5b791 5fe439caec