B2B-портал оптовых продаж с интеграцией 1С

Личный кабинет оптового клиента: каталог, персональные цены и остатки из 1С, заказ уходит обратно в учёт

Заказчик: Оптовая компания (договор на разработку портала)
Стек: Django (backend + админка), Nuxt + Vuetify (фронтенд), PostgreSQL, интеграция с 1С (номенклатура, персональные цены, остатки, заказы), Docker Compose, Nginx

Задача

Оптовая компания принимает заказы по телефону и почте: менеджер вручную сверяет наличие и персональные цены клиента в 1С и заносит заказ. Это медленно и с ошибками. Нужен портал, где оптовый клиент сам видит каталог со своими ценами и остатками и оформляет заказ, который сразу попадает в учёт.

Результат

Оптовый клиент заходит в личный кабинет, видит каталог с персональными ценами и актуальными остатками из 1С и оформляет заказ сам. Заказ уходит обратно в 1С без ручного переноса. Менеджер разгружен от рутины, а клиент заказывает круглосуточно. Портал развёрнут в Docker и работает за Nginx.

Это кейс про B2B-портал оптовых продаж с интеграцией 1С. Оптовая компания принимала заказы по телефону и почте: менеджер вручную смотрел в 1С наличие и персональную цену клиента и заносил заказ. Мы сделали портал, где оптовик сам видит свой каталог и оформляет заказ, а данные ходят между сайтом и 1С автоматически.

В чём была проблема

В опте у каждого клиента свои цены и своя история, а наличие меняется в течение дня. Пока заказ идёт через менеджера, возникают ошибки: не та цена, товара уже нет, заказ потерялся в переписке. Компания хотела перевести оптовых клиентов на самообслуживание, но так, чтобы источником правды оставалась 1С, а не отдельная витрина.

Решение: Nuxt-кабинет + Django-бэкенд + 1С

Портал построили как три слоя. 1С остаётся системой учёта и отдаёт номенклатуру, персональные цены и остатки. Django-бэкенд принимает эти данные, хранит и отдаёт фронтенду через API, а также принимает оформленные заказы и передаёт их обратно в 1С. Фронтенд на Nuxt + Vuetify — это личный кабинет оптовика: каталог, корзина, история заказов.

1С  ──►  Django API  ──►  Nuxt (личный кабинет)
          номенклатура, цены, остатки
1С  ◄──  Django API  ◄──  Nuxt
          оформленный заказ

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

Развёртывание

Всё собрано в Docker Compose и работает за Nginx: бэкенд, фронтенд и статика поднимаются штатными командами (миграции, сбор статики, создание администратора). Это делает портал переносимым — его можно развернуть на сервере клиента одной командой.

Почему источник правды — 1С, а не витрина

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

Готовый вариант «под ключ» с ценой и сроками описан в разделе решений — B2B-портал для 1С.

Нужен B2B-портал под ваш опт

Если ваши оптовые клиенты до сих пор заказывают через менеджера, портал с личным кабинетом и интеграцией 1С окупается разгрузкой продаж и снижением ошибок. Веб-разработку поверх 1С разбираем на курсах по веб-приложениям и Django для 1С.

Частые вопросы