RustaMechanic
@RustaMechanic
Разработчик, студент, кодер

Как правильно реализовать оформление заказа на нескольких страницах?

Добрый день!

Сейчас делаю интернет-магазин на Laravel - суть следующая:
Нужно реализовать оформление заказа на нескольких страницах (разные этапы оформления - Контакты/Доставка/Оплата).

Назовем эти этапы step1, step2, step3.
Проблема - есть таблица заказов в бд (orders), которая хранит в себе данные со всех трех этапов оформления заказа.
Всю валидацию провожу на бэкенде стандартными средствами Laravel.

Вопрос: как правильно передавать данные между этапами оформления заказа. То есть на каждой странице есть форма -> юзер заполнил форму -> данные провалидировались -> как только "все ок" переходим на step2, step3. И в конечном итоге, в конце step3 нужно записать данные заказа в таблицу orders.
Не понимаю как правильно хранить данные так, чтобы если клиент вернулся на любой предыдущий этап - данные "подтянулись" и он мог их изменить и в конце концов на step3 записать данные в бд.
Как это делать безопасно, чтобы данные были защищены и, допустим, злоумышленник не смог обойти валидацию.

Буду очень признателен за помощь!
  • Вопрос задан
  • 800 просмотров
Решения вопроса 1
pxz
@pxz
✔ Совет: Вам помогли? Отметьте ответы решением.
Есть два пути:
1. Записывать данные в таблицу orders каждом шаге и отдельно валидировать каждый шаг, но установить у заказа статус "черновик". Переводить в активный статус, только если отправлен третий шаг и валидны все три (надо проверить)
2. Писать состояние заказа в сессию и валидировать все данные один раз на последнем шаге.

Первый вариант позволит продолжить оформление заказа в другой сессии + вы будете видеть так называемые "брошенные корзины", менеджеры потом смогут связаться с клиентом и узнать что не так и, может быть, повысить продажи.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
vollthegreat
@vollthegreat
Laravel back-end outsource
Я решил записыванием данных в корзину заказа. Или в сессию( если не зарегистрирован). Поскольку корзина для каждого пользователя по факту одна, как и "шаги заказа".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы