
ВЕСТ продаёт стоматологические материалы. Для покупателей работа с магазином продолжается после оформления заказа: нужно следить за его состоянием, получать документы и управлять реквизитами для следующих покупок.
Мы спроектировали и разработали покупательский кабинет и его API, подготовили контракты интеграций и координировали обмен данными между системами. Кабинет дополняет существующий магазин на Битриксе и учёт в 1С. Доработки этих двух систем выполняют соответствующие подрядчики.

Кабинет должен был объединить заказы, документы и данные покупателя, сохранив привычный вход через магазин. Для этого требовалось связать три разные сущности: пользователя сайта, его запись в кабинете и контрагента в 1С.
Эта связь определяет, какие заказы и документы относятся к покупателю. При проектировании мы разобрали первый и повторный вход, а также ситуацию, когда привязки к контрагенту ещё нет. Одновременно согласовали, какие данные передаёт каждая система и где обрабатываются изменения.
Мы реализовали сквозную авторизацию: кабинет использует сессию интернет-магазина и проверяет её через сервер Битрикса. Покупатель продолжает работу с той же учётной записью.
В механизме проверки разделили два состояния — недействительную сессию и временную недоступность сервиса авторизации. Это позволяет обрабатывать сбой связи отдельно от необходимости войти в аккаунт.

Заказ проходит из магазина через кабинет в 1С. Для этого мы разработали API приёма заказов и очередь исходящей передачи. Обновления статусов кабинет получает из 1С по расписанию.
Такой обмен связывает оформление покупки на сайте с её дальнейшей обработкой в учётной системе. В покупательском интерфейсе предусмотрены просмотр заказов и их состояний, а документы привязаны к соответствующему заказу.
В кабинете реализовали список документов по заказам и получение счёта в PDF. Готовность счёта зависит от данных и подтверждения со стороны 1С: документ появляется в контексте заказа, к которому относится.

Для реквизитов предусмотрели профили заказа. Их можно создавать, редактировать и удалять; для связи с магазином подготовили обмен профилями. Это объединяет управление данными покупателя с обслуживанием его заказов.
Кабинет разрабатывали как самостоятельный продукт. Взаимодействие интерфейса и сервера описали в OpenAPI, а клиент для обращения к API генерируется из этого контракта. Так обе части приложения используют одно описание данных и операций.

Подписки на поступление товара вынесли в отдельный раздел. Покупатель может просмотреть свои подписки и отказаться от ненужных; отписка связана с действующим сайтом.
Подписка создаётся на сайте и передаётся в кабинет. Отписка синхронизируется с магазином, а при получении положительного остатка из 1С в кабинете создаётся уведомление о поступлении.

Покупатель скачивает бланк, заполняет его и прикладывает заявление к заказу. Вместе с файлом можно оставить комментарий.
Заявление и комментарий сохраняются в кабинете. Отдельных статусов возврата здесь нет; дальнейшее проведение возврата выполняется отдельно в 1С.

Мы разработали отдельный покупательский сервис, в котором собраны заказы, документы, профили реквизитов, подписки и заявки на возврат. Реализовали сквозной вход через магазин и механизмы обмена с 1С.
Кабинет дополняет действующую торговую систему: покупательская часть развивается как самостоятельное приложение, связанное с магазином и учётом через согласованные интерфейсы обмена.
React, TypeScript, Vite, Mantine, TanStack Query, NestJS, Prisma, PostgreSQL, OpenAPI, orval, Битрикс SSO, 1С, Docker
Заказы, документы, профили покупателей и персональные условия. Кабинет для клиентов с интеграцией в магазин, 1С или CRM.