5.4 KiB
5.4 KiB
Архитектурные решения: Анонимные Заказы (Stateless Cart & Orders)
Дата и время создания: 02.08.2026 23:54
Проект: LPON.RU (Django 6.0+, Python 3.12)
Статус: Согласованная архитектура
1. Бесконтактная Корзина и Заказы без Персональных Данных (Privacy-First / Stateless Orders)
1.1. Концепция полного отказа от ПДн
- Проблема: Хранение персональных данных клиентов (ФИО, телефон, адрес доставки, e-mail, паспорта) накладывает жесткие юридические обязательства (152-ФЗ), требует аттестации БД, согласий на обработку ПДн и несёт риски утечек.
- Решение: Полный отказ от хранения ПДн клиентов в базе данных LPON.RU. Сайт работает как смарт-витрина и генератор заказов, а персональные данные либо вообще не собираются, либо обрабатываются внешними специализированными сервисами (Авито, СДЭК, Яндекс.Доставка, эквайринг).
1.2. Архитектура клиентоориентированной корзины (Stateless Cart)
- Хранение состава корзины:
- Состав корзины хранится исключительно на стороне клиента: в
Session CookiesилиLocalStorage. - В БД LPON.RU записи корзины пользователей НЕ создаются.
- Состав корзины хранится исключительно на стороне клиента: в
- Идентификация товаров:
- В корзине сохраняется список уникальных кодов офферов (
s_offer_code, сгенерированных через Hashids) и их количество:{"codes": {"4gfFCJ": 1, "9xK2Lm": 2}}. - Все данные о цене, названии и наличии запрашиваются у сервера динамически по списку
s_offer_code.
- В корзине сохраняется список уникальных кодов офферов (
- DSL-модуль корзины (
!cart-app):- Страница
/cart/создаётся как стандартная статья-хабTbArticle(типHUB), в метаданные которой встроен динамический модуль["!cart-app"]. - Это позволяет нативно обвешивать страницу корзины маркетинговыми блоками через DSL (например, выводить снизу карусель товаров
["cassettes-sale", "carousel"]).
- Страница
1.3. Способы оформления заказа без сохранения ПДн в БД LPON.RU
Вариант А: Оформление через Авито / Маркетплейсы
- По кнопке «Оформить» сайт формирует ссылку или готовый текст заказа для перехода на профиль продавца на Авито.
- Покупатель оформляет сделку через безопасную сделку Авито-Доставки. LPON.RU вообще не касается данных о доставке и оплате.
Вариант Б: Интеграция со СДЭК / Яндекс.Доставкой через виджет
- При выборе доставки СДЭК прямо на странице корзины открывается официальный виджет СДЭК. Посылка "наложенным платежом" (что, кстати, защитит от недобросовестных покупателей, которые получают одно, а возвращают другое. Покупатель все проверяет при получении, а деньги СДЭК переводит только после подтверждения получения).
- Клиент вводит свои данные (ФИО, пункт выдачи, телефон) напрямую в формы виджета СДЭК.
- Сервер LPON.RU получает от API СДЭК только Трек-номер (Waybill ID).
- На стороне LPON.RU в журнале анонимных транзакций сохраняется лишь минимальная агрегированная запись:
- Идентификатор заказа (
Order Hash); - Состав офферов (
s_offer_code); - Трек-номер СДЭК;
- Статус оплаты/доставки.
- Данные получателя в БД LPON.RU отсутствуют.
- Идентификатор заказа (
Вариант В: Анонимный статус заказа по Токену
- Покупатель получает уникальную ссылку вида
lpon.ru/order/<order_hash>/(или хранит токен в куках/LocalStorage). - По этой ссылке клиент может проверить текущий статус посылки (информация подтягивается из API СДЭК/Почты по трек-номеру в реальном времени) без необходимости авторизации и ввода личных данных.