/No place like home

/Learn more about us

/Our awesome team

/Get in touch with us

Портал поставщиков — Система взаимодействия отделов продаж и закупок

О проекте


Торговая компания с большим штатом менеджеров по продажам и закупкам столкнулась с проблемой неэффективной коммуникации между отделами. Запросы на подбор товаров и получение цен велись через email, мессенджеры и устные договоренности, что приводило к потере информации, дублированию работы и задержкам в обработке заказов клиентов.

Основные проблемы:

  • Запросы терялись в почтовых цепочках
  • Невозможно отследить статус запроса
  • Отсутствие истории коммуникаций
  • Сложность работы с множественными предложениями от разных поставщиков
  • Нет единой базы для аналитики и отчетности
  • Задержки в ответах на запросы клиентов

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



ЧТО МЫ СДЕЛАЛИ


Архитектура и разработка

  • Разработали веб-портал на Django с нуля
  • Создали масштабируемую архитектуру для работы с большим количеством пользователей
  • Спроектировали гибкую базу данных PostgreSQL
  • Реализовали REST API для возможных будущих интеграций
  • Настроили безопасность и разграничение доступа

Функционал для отдела продаж

Создание запросов

  • Простая форма создания нового запроса цены
  • Возможность добавления неограниченного количества товаров в один запрос
  • Указание необходимого количества каждого товара
  • Поле для указания желаемых сроков поставки
  • Уровень приоритетности запроса (низкий, средний, высокий, срочный)
  • Прикрепление файлов (спецификации, чертежи, фото)

Работа с запросами

  • Просмотр всех своих запросов с фильтрами и сортировками
  • Отслеживание статуса каждого запроса в реальном времени
  • Получение уведомлений о новых ответах от закупок
  • Возможность редактировать запрос до начала обработки
  • Комментирование и уточнение деталей с закупщиками

Анализ предложений

  • Просмотр всех полученных предложений от закупщиков
  • Сравнение цен от разных поставщиков в одной таблице
  • Информация об условиях поставки, сроках, минимальных партиях
  • Выбор оптимального предложения
  • Возможность запросить пересмотр цены

Функционал для отдела закупок

Обработка запросов

  • Получение новых запросов от менеджеров по продажам
  • Приоритизация запросов по срочности
  • Назначение ответственных закупщиков
  • Постановка внутренних задач по запросу

Предоставление цен и условий

  • Добавление множественных предложений на один товар от разных поставщиков
  • Указание цены, условий оплаты, сроков поставки
  • Информация о минимальной партии
  • Наличие товара на складе поставщика
  • Комментарии и особые условия
  • Прикрепление прайс-листов и документов поставщиков

Управление статусами

  • Изменение статуса запроса на каждом этапе
  • Указание причин отказа или невозможности поставки
  • Предложение альтернативных товаров-аналогов
  • Уведомления менеджера о готовности предложения

Система множественных предложений

Гибкость в работе с ценами:

  • Один товар может иметь несколько предложений от разных поставщиков
  • Каждое предложение содержит полную информацию:
    • Название поставщика
    • Цена за единицу
    • Минимальная партия
    • Срок поставки
    • Условия оплаты (предоплата, отсрочка)
    • Наличие на складе
    • Дополнительные условия

Сравнительный анализ:

  • Автоматическая таблица сравнения всех предложений
  • Выделение лучших условий по каждому параметру
  • Расчет итоговой стоимости с учетом доставки
  • Визуальные индикаторы оптимальных предложений

Коммуникация и документы

Система комментариев

  • Обмен комментариями по каждому запросу
  • Уведомления о новых комментариях
  • История всех обсуждений
  • Возможность упоминания коллег (@mention)
  • Цепочка переписки привязана к конкретному запросу

Работа с файлами

  • Прикрепление файлов к запросам
  • Загрузка документов от поставщиков
  • Прайс-листы, спецификации, сертификаты
  • Автоматическая организация файлов по запросам
  • Версионность документов

Причины отказа

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

Статусы и уведомления

Жизненный цикл запроса:

  • Новый запрос
  • В обработке
  • Ожидание ответа поставщика
  • Предложения получены
  • На согласовании
  • Утвержден
  • Отклонен
  • Закрыт

Система уведомлений:

  • Email-уведомления о важных событиях
  • Внутренние уведомления в портале
  • Напоминания о просроченных запросах
  • Уведомления о новых комментариях
  • Настройка частоты и типов уведомлений

Аналитика и отчетность

Для руководства:

  • Количество обработанных запросов за период
  • Среднее время обработки запроса
  • Топ-менеджеров по количеству запросов
  • Статистика отказов и их причины
  • Анализ загруженности закупщиков
  • Сравнение цен от разных поставщиков

Для менеджеров:

  • Личная статистика запросов
  • История работы с каждым товаром
  • Динамика цен поставщиков
  • Эффективность закупок

Интерфейс и UX

  • Интуитивно понятный интерфейс
  • Адаптивный дизайн для работы с планшетов
  • Быстрые фильтры и поиск
  • Цветовая индикация статусов
  • Keyboard shortcuts для опытных пользователей
  • Экспорт данных в Excel


РЕЗУЛЬТАТЫ

  • Создана единая система взаимодействия отделов продаж и закупок
  • Время обработки запроса сократилось с 2-3 дней до 4-6 часов
  • Исключены потерянные запросы — 100% прозрачность
  • Увеличение скорости ответа клиентам на 70%
  • Возможность сравнения множественных предложений экономит 15-20% на закупках
  • Полная история коммуникаций для аудита и анализа
  • Снижение нагрузки на почту и мессенджеры
  • Автоматизация 85% рутинных операций при согласовании цен
  • База знаний по ценам поставщиков накапливается в системе
  • Упрощение обучения новых сотрудников благодаря структурированности процессов


ТЕХНОЛОГИИ

Backend: Django 5.x, Python 3.x, Django REST Framework
Database: PostgreSQL
Frontend: HTML5, CSS3, JavaScript, jQuery, Bootstrap
Файлы: Django File Storage, AWS S3
Уведомления: Celery, Redis, Email
Безопасность: Django Security Middleware, HTTPS, JWT
Деплой: Docker, Nginx, Gunicorn



СРОК РЕАЛИЗАЦИИ

2 месяца — от проектирования архитектуры до полного запуска с обучением пользователей

Постоянная техническая поддержка и добавление нового функционала по запросам



ОСОБЕННОСТИ ПРОЕКТА

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

Уникальные решения:

Динамическая форма запроса
Менеджер может добавлять неограниченное количество товаров в один запрос через удобный интерфейс. Это реализовано через Django Formsets с динамическим добавлением полей через JavaScript. Форма валидируется на стороне сервера и клиента.

Матричная структура предложений
Разработали систему, где один товар в запросе может иметь несколько связанных предложений. База данных спроектирована так, чтобы эффективно хранить и извлекать эти данные, а интерфейс представляет их в виде удобной сравнительной таблицы.

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

Производительность
Система оптимизирована для работы с большим количеством данных. Используются select_related и prefetch_related для оптимизации запросов к базе, кэширование часто используемых данных, пагинация больших списков.

Масштабируемость
Архитектура позволяет легко масштабировать систему при росте количества пользователей и запросов. Django + PostgreSQL + Redis обеспечивают необходимую производительность.

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

Клиент

Крупная торговая компания

Сфера

B2B торговля, корпоративные системы

Решение

Веб-портал на Django

Задача

Создать внутренний корпоративный портал для автоматизации процесса согласования цен и условий между отделами продаж и закупок

Дата
Категория
CRM системы, Корпоративные порталы