Когда покупатель возвращается за вторым заказом, форма оформления с нуля - лишний барьер, из-за которого часть клиентов просто уходит туда, где корзина заполняется быстрее. Интернет магазин с личным кабинетом снимает эту проблему: покупатель видит историю заказов, сохранённые адреса доставки и может повторить покупку за пару кликов вместо повторного ввода ФИО, телефона и адреса. Ниже - что реально должно быть в разделе «Мои заказы», как хранить адреса и куда встраивать кнопку повтора заказа, без лишних абстракций.
Зачем покупателю личный кабинет с историей заказов
Без кабинета покупатель либо ищет письмо с подтверждением заказа в почте, либо пишет в поддержку с вопросом «а где мой заказ». Это лишняя нагрузка на менеджера и потерянное доверие клиента, если ответ приходит не сразу. С кабинетом статус заказа виден сразу: оплачен, передан в доставку, приехал в пункт выдачи.
Для повторных покупок это ещё важнее. Если у магазина подключена оплата через Т‑Банк с сохранением карты, повторная оплата занимает один клик без ввода реквизитов заново - но это работает только вместе с кабинетом, где покупатель видит, что именно он заказывает повторно, а не просто платит вслепую.
По моей практике доля повторных покупок у клиентов с расходным товаром (косметика, зоотовары, БАДы) заметно выше именно у тех магазинов, где есть история заказов и кнопка «Повторить» - людям проще нажать кнопку, чем вспоминать, что они брали в прошлый раз.
Раздел «Мои заказы»: что должно быть внутри
Минимальный набор полей на странице списка заказов:
- номер заказа и дата оформления
- статус: в обработке, оплачен, передан в доставку, доставлен, отменён
- состав заказа - фото товара, название, количество, цена на момент покупки
- итоговая сумма и способ оплаты
- трек-номер и ссылка на отслеживание, если доставка через СДЭК или другую службу с API статусов
- кнопка «Повторить заказ»
Цену фиксирую именно на момент покупки, а не подтягиваю текущую - иначе покупатель откроет старый заказ и увидит другую сумму, что выглядит как ошибка. Статусы синхронизирую двумя источниками: вебхуком от эквайринга при оплате и опросом API службы доставки при смене статуса посылки.
Историю заказов храню минимум за 12 месяцев в основной таблице, к которой обращается интерфейс кабинета. Более старые заказы можно переносить в архивную таблицу и не показывать в интерфейсе по умолчанию, чтобы список не разрастался и не тормозил у клиентов с большим количеством покупок.
Адреса доставки: сохранение и повторное использование
Один адрес в профиле - это минимум, а не решение. У покупателя обычно есть дом, работа и иногда адрес родителей, куда он тоже заказывает подарки. В базе это отдельная таблица адресов, привязанная к пользователю, с флагом адреса по умолчанию, а не одно текстовое поле в профиле.
Обязательные поля адреса для доставки:
- ФИО получателя и телефон - не обязательно совпадают с владельцем аккаунта
- город и индекс
- адрес или пункт выдачи (ПВЗ)
- комментарий курьеру
Если проект собран на Tilda, для расчёта стоимости по зонам не нужно городить отдельный скрипт - в настройках доставки есть встроенный калькулятор СДЭК, который считает тариф по индексу получателя прямо из интерфейса конструктора. Отдельная доработка там нужна не для самого расчёта, а для сохранения адреса в личном кабинете покупателя между заказами, потому что это уже не доставка, а профиль пользователя.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
В самописном магазине адрес привязывается к заказу отдельной записью, даже если он выбран из сохранённых - так при изменении сохранённого адреса в профиле старые заказы не задним числом меняют историю доставки.
Повтор покупки в один клик: механика и подводные камни
Кнопка «Повторить заказ» на странице истории копирует позиции из старого заказа в корзину. На этом этапе есть два момента, которые ломают доверие, если их пропустить:
- остаток товара - если позиции нет в наличии, её нельзя молча добавить в корзину, нужно предупредить и либо убрать, либо предложить замену
- изменение цены - если цена выросла или снизилась с момента прошлого заказа, показываю разницу явно, а не списываю по старой цене без объяснения
По моей практике постоянный клиент оформляет повторный заказ за 20-30 секунд вместо пары минут, которые уходят на повторный подбор товаров и ввод адреса заново - и это разница, которая напрямую влияет на то, вернётся ли человек в третий раз.
Для магазинов с регулярными расходниками полезно не просто ждать, пока клиент сам зайдёт в кабинет, а напоминать о повторной покупке. Это уже не про сам кабинет, а про автоматизацию вокруг него: сценарий в n8n может раз в сутки выбирать заказы, по которым прошло, скажем, 25-30 дней с момента покупки расходного товара, и отправлять клиенту напоминание в Telegram или на почту со ссылкой на повтор заказа.
Личный кабинет в WooCommerce, на Tilda и в самописном магазине
Реализация кабинета сильно зависит от платформы, на которой стоит магазин.
| Платформа | Где хранится история заказов и адреса | Как устроен повтор покупки |
|---|---|---|
| WooCommerce | штатная страница «Мой аккаунт»: заказы, адреса, данные аккаунта из коробки | через хук на странице заказа или отдельный плагин повторного заказа |
| Tilda + внешняя CRM | Tilda ориентирована на приём заказов и синхронизацию с 1С через CommerceML, поэтому историю по конкретному покупателю обычно веду во внешней CRM или в отдельном личном кабинете, который подключаю к формам Tilda через API | кастомная кнопка в личном кабинете, которая обращается к API магазина |
| Самописный магазин | своя база данных, таблицы заказов и адресов проектируются под задачу | серверный обработчик копирует позиции заказа в корзину с проверкой остатков |
Если нужен интернет-магазин под ключ с личным кабинетом сразу под задачу, а не поверх готового конструктора, обычно беру такой проект целиком: интернет-магазин под ключ закрывает и корзину, и кабинет, и интеграции с оплатой и доставкой в одном бэкенде, без склейки разных сервисов между собой.
Безопасность данных клиентов и где их хранить
Адреса и телефоны покупателей - персональные данные, и по 152-ФЗ их нужно хранить на серверах на территории России. Это значит, что список клиентов с адресами не стоит держать в Google Таблицах или Airtable, даже для внутренней аналитики - эти сервисы физически хранят данные за рубежом.
Пароли в кабинете храню только в виде хэша, номер карты и CVV на своей стороне вообще не сохраняю - это зона ответственности эквайринга, который отдаёт токен для повторных списаний, а не сами реквизиты карты. Доступ к базе с адресами и историей заказов ограничиваю ролями: обычному менеджеру не нужен экспорт всей базы клиентов, ему хватает поиска по конкретному заказу.
Частые вопросы
Нужен ли личный кабинет маленькому интернет-магазину на старте?
Если бюджет и сроки поджимают, можно запуститься без полноценного кабинета - только с поиском заказа по номеру телефона и номеру заказа, без регистрации. Полноценную историю и сохранённые адреса добавляю уже вторым этапом, когда видно, что доля повторных покупок растёт и клиентам реально нужно быстрее оформлять заказ.
Как хранить несколько адресов доставки одного покупателя?
Отдельной таблицей, привязанной к пользователю по id, с флагом адреса по умолчанию. Одно текстовое поле в профиле для этого не подходит - как только у клиента появляется второй адрес, начинаются костыли с разделителями внутри строки.
Что делать, если товара из прошлого заказа больше нет в наличии, а клиент нажал «Повторить заказ»?
Перед добавлением в корзину проверяю остаток по каждой позиции. Если товара нет, показываю предупреждение и убираю позицию из корзины либо предлагаю похожий товар - молча пропускать проверку нельзя, иначе клиент увидит расхождение уже на этапе оплаты.
Можно ли сделать личный кабинет без регистрации, по номеру телефона?
Да, вход по номеру телефона и коду из смс вместо email и пароля - рабочий вариант, особенно для мобильной аудитории. На структуру хранения истории заказов и адресов это не влияет, меняется только способ входа в аккаунт.