E-Commerce

ORTHOSTOREмагазин ортодонтических материалов

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

Интернет-магазин ортодонтических материалов: витрина, админка с аналитикой продаж и API на NestJS отдельными приложениями.

ORTHOSTORE — магазин ортодонтических материалов
Задача

Поставщику нужен полноценный магазин и внутренняя панель для склада и заказов — так, чтобы обновление витрины не останавливало админку.

Результат

Витрина на Next.js с каталогом, корзиной и статусами заказов, админка с графиками продаж и бэкенд на NestJS с авторизацией, документацией API и лимитами запросов.

Ключевые функции

  • Каталог по категориям
  • Корзина и оформление
  • Статусы заказов
  • Кабинеты клиентов
  • Админка с графиками продаж
  • Авторизация JWT
  • Документация API

Как это построено

Интернет-магазин ортодонтических материалов: витрина на Next.js, админка с аналитикой продаж и API на NestJS, сделанные для профессионального покупателя, который точно знает, что ему нужно. Вот решения, которые его сформировали.

3
Приложения, один API
4
Статуса заказа
OTP
Вход без пароля
UAH
Баланс кешбэка

Каталог для тех, кто знает артикул

Покупатель здесь — врач-ортодонт, а не случайный посетитель. Категории и подкатегории несут производителя и страну происхождения, потому что практика покупает конкретный брекет конкретного производителя, и похожее — это не замена.

Поэтому каталог построен вокруг этих осей, а не вокруг витринного мерчандайзинга, а поиск существует, чтобы подтвердить уже сделанный выбор.

Вход по коду, а не по паролю

Клиенты входят одноразовым кодом из SMS или почты, с опцией пароля для тех, кто его хочет. В клинике закупает тот, кто сегодня за стойкой; общий пароль через неделю оказался бы на бумажке возле монитора.

Отправитель SMS спрятан за интерфейсом с реализациями для консоли, HTTP-провайдера и Twilio, так что в разработке работает тот же код, не тратя денег на сообщения.

Четыре состояния — и это намеренно

Заказ бывает новым, в обработке, выполненным или отменённым. Магазин такого размера ведут люди, которые и так знают клиента; восемь состояний дали бы панель, полную строк, которые никто не двигает.

Кешбэк начисляется, когда заказ становится выполненным, и меняется атомарно в записи клиента, так что баланс не поедет, если два заказа закроются одновременно.

Скидки, которые выдерживают реальность

Скидки бывают в процентах или фиксированные, а промокоды — отдельная сущность со своими правилами, потому что сезонная акция и оговорённая цена для постоянной клиники — разные вещи, заканчивающиеся в разное время.

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

Админка, которая отвечает на вопросы

Бэкофис — отдельное React-приложение с графиками продаж, так что владелец видит, что движется, ничего не выгружая. API описано в Swagger, под рейт-лимитом и с разделённой аутентификацией клиента и администратора, так что взломанная клиентская сессия не доберётся до данных самого магазина.

Результат

Работающий магазин для профессионального рынка — каталог, корзина, заказы, кешбэк и промокоды, с админкой, которую владелец ведёт сам, и документированным API под всем этим.

Следующий проект
Web

RentaLviv

Команда сама управляет автопарком, ценами и порядком машин

Смотреть кейс
RentaLviv — сервис аренды авто

Хотите что-то похожее?

Расскажите о вашем проекте и мы создадим его с таким же вниманием к деталям.

Начать проект →