# Архитектурные решения: Анонимные Заказы (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) 1. **Хранение состава корзины:** - Состав корзины хранится исключительно на стороне клиента: в `Session Cookies` или `LocalStorage`. - В БД LPON.RU записи корзины пользователей НЕ создаются. 2. **Идентификация товаров:** - В корзине сохраняется список уникальных кодов офферов (`s_offer_code`, сгенерированных через Hashids) и их количество: `{"codes": {"4gfFCJ": 1, "9xK2Lm": 2}}`. - Все данные о цене, названии и наличии запрашиваются у сервера динамически по списку `s_offer_code`. 3. **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//` (или хранит токен в куках/LocalStorage). - По этой ссылке клиент может проверить текущий статус посылки (информация подтягивается из API СДЭК/Почты по трек-номеру в реальном времени) без необходимости авторизации и ввода личных данных.