Корзина и оформление заказа: B2B-процесс на основе коммерческих предложений

В этой статье объясняется наша система корзины и оформления заказа, разработанная для B2B-продаж на основе коммерческих предложений.

Проблема: B2B против B2C

Традиционная электронная коммерция — это B2C (Business-to-Consumer):

  • Фиксированные цены

  • Мгновенное оформление заказа

  • Оплата кредитной картой

  • Автоматизированная обработка

Наш бизнес — это B2B (Business-to-Business):

  • Ценообразование на основе коммерческих предложений

  • Ручная проверка

  • Оплата банковским переводом

  • Пользовательские конфигурации

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

Типы корзин

Корзина для запроса предложения (По умолчанию)

Назначение: Запросить коммерческое предложение для пользовательской конфигурации

Процесс: Добавить товары → Заполнить детали → Отправить → Получить предложение по email

Оплата: Не требуется предоплата

Случай использования: Пользовательские сборки, оптовые заказы, согласованные цены

Корзина покупок (Google Shopping)

Назначение: Прямая покупка по фиксированным ценам

Процесс: Добавить товары → Заполнить детали → Оплатить онлайн → Подтверждение заказа

Оплата: Требуется предоплата (Razorpay)

Случай использования: Стандартные конфигурации из Google Shopping

Определение: Параметры gclid, gbraid или wbraid в URL

Структура корзины

Модель корзины

Поля:

  • Items: Список позиций (SKU, количество, цена за единицу, сумма)

  • CustomerName: Имя покупателя

  • CustomerEmail: Email покупателя

  • CustomerPhone: Телефон покупателя

  • CustomerAddress: Адрес доставки

  • CustomerGSTIN: Налоговый идентификатор (опционально)

  • TotalAmount: Сумма позиций

  • GSTAmount: Сумма налога

  • NetAmount: Итоговая сумма (Total + GST)

  • Currency: Валюта корзины (INR, USD и т.д.)

  • Type: "cart" или "quote"

Позиция в корзине

Поля:

  • SKU: Идентификатор продукта

  • quantity: Количество единиц

  • Rate: Цена за единицу

  • Amount: Rate × quantity

Процесс добавления в корзину

Прямое добавление (GET)

Добавление товара через параметр URL с SKU.

Поведение:

  1. Создать новую корзину или загрузить существующую
  2. Добавить SKU с количеством 1
  3. Показать страницу корзины

Случай использования: Кнопка "Добавить в корзину" на странице товара

Добавление через форму (POST)

Данные формы: SKU, количество, данные клиента

Поведение:

  1. Проверить существование SKU
  2. Добавить в корзину с указанным количеством
  3. Обновить итоги корзины
  4. Показать страницу корзины

Особый порядок работы с V-SKU

V-SKU (виртуальные/конфигурируемые продукты) заменяют содержимое корзины:

Причина: V-SKU — это готовые системы, несовместимые с другими товарами

Поведение: Очистить существующие позиции, добавить только V-SKU

Исключение: Режим Google Shopping (разрешает несколько товаров)

Хранение корзины

Место: Серверная сессия Flask

Формат: Словарь, сериализованный в сессию

Сохранение: До закрытия браузера или истечения срока действия cookie

Преимущество: Запись в базу данных происходит только при оформлении заказа

Процесс оформления заказа

Запрос коммерческого предложения

Шаги:

  1. Пользователь заполняет данные клиента
  2. Нажимает "Получить предложение"
  3. Корзина сохраняется в тикет CRM
  4. Email отправляется отделу продаж
  5. Отдел продаж отвечает с предложением

Без оплаты: Предложение отправляется по email

Прямая покупка

Шаги:

  1. Пользователь заполняет данные клиента
  2. Нажимает "Перейти к оплате"
  3. Корзина сохраняется в таблицу Order
  4. Показывается страница оплаты Razorpay
  5. Платеж захватывается
  6. Заказ подтверждается

Требуется оплата: Интеграция с Razorpay

Работа с валютами

Валюта корзины: Устанавливается при создании корзины

Заблокирована: Нельзя изменить валюту после добавления товаров

Конвертация: Все товары конвертируются в валюту корзины

Отображение: Показывает как валюту корзины, так и эквивалент в INR

Расчет GST

Индия (предоставлен GSTIN): GST добавляется по применимой ставке

Индия (без GSTIN): GST добавляется по применимой ставке

Международные: Без GST

Формула: Чистая сумма = Общая сумма + GST

Параметры отслеживания

При создании корзины мы сохраняем:

Параметры кампании: utm_source, utm_medium, utm_campaign

Идентификаторы кликов: gclid, gbraid, wbraid, fbclid

Хранение: На основе cookie с временным окном (30 минут)

Цель: Приписывать офлайн-конверсии онлайн-кампаниям через отслеживание контактов

Email-уведомления

Email запроса предложения

Кому: Отдел продаж

Содержание: Данные клиента, позиции, общая сумма

Вложения: Отсутствуют

Email подтверждения заказа

Кому: Клиент

Содержание: Детали заказа, информация об оплате, следующие шаги

Вложения: PDF-счет (если платеж получен)

Интеграция с платежной системой

Шлюз: Razorpay

Поддерживается: INR, USD, EUR, GBP

Методы: Кредитная карта, дебетовая карта, UPI, интернет-банкинг

Вебхук: Обновления статуса платежа через вебхук

Смотрите: Интеграция с платежной системой для деталей

Валидация корзины

Перед оформлением заказа:

Валидация SKU: Все SKU должны существовать

Валидация количества: Только положительные целые числа

Валидация клиента: Требуются имя, email, телефон

Валидация адреса: Требуется для доставки

Валидация GSTIN: Проверка формата, если предоставлен

Ссылки

Связанные статьи

Резюме

Наша система корзины поддерживает как поток на основе коммерческих предложений, так и поток прямой покупки:

Типы корзин:

  • Корзина для запроса предложения (по умолчанию, без оплаты)

  • Корзина покупок (Google Shopping, требуется оплата)

Функции:

  • Корзина с несколькими товарами

  • Фиксация валюты

  • Расчет GST

  • Особый порядок работы с V-SKU

  • Отслеживание кампаний

Оформление заказа:

  • Запрос предложения (email отделу продаж)

  • Прямая покупка (оплата через Razorpay)

Хранение:

  • На основе сессии (без записи в БД до оформления)

  • Сохранение 30 дней

Этот гибридный подход обслуживает как B2B-модель на основе предложений, так и B2C-модель прямой покупки.


← Назад к указателю документации