Checkout — самое опасное место для быстрых правок
Оформление заказа в интернет-магазине нельзя дорабатывать “на глаз”. Если сломать карточку товара, это неприятно. Но если сломать checkout, магазин может просто перестать получать заказы.
В miniShop2 оформление заказа часто связано сразу с несколькими вещами: корзиной, доставкой, оплатой, промокодами, полями покупателя, статусами заказа, письмами и внешними сервисами.
Что обычно хотят изменить
- добавить новые поля в заказ;
- изменить список доставок;
- подключить СДЭК, курьера или самовывоз;
- добавить онлайн-оплату;
- изменить расчет стоимости доставки;
- добавить промокоды или скидки;
- поменять внешний вид шагов оформления;
- сделать подтверждение выбранного пункта выдачи;
- добавить логи, чтобы видеть, где заказ ломается.
Почему возникают ошибки
Проблемы появляются, когда правка делается только в шаблоне, а backend-логика не учитывается. Например, поле появилось на странице, но не сохраняется в заказ. Или доставка выбрана на фронте, но не попадает в обработчик. Или оплата прошла, но статус заказа не изменился.
Пользователь при этом видит обычную страницу, нажимает кнопку, а менеджер потом не понимает, почему заказ пустой, без доставки или без нужного комментария.
Как я подхожу к доработке
Сначала я смотрю текущую схему оформления заказа: какие поля уже есть, какие доставки подключены, как создается заказ, какие события miniShop2 используются, есть ли кастомные сниппеты и плагины.
Потом я определяю, где должна жить новая логика: в чанке, сниппете, плагине, процессоре, JS или отдельном компоненте. Это важно, потому что не всякую задачу правильно решать только версткой.
Почему нужны логи
Для checkout я очень люблю добавлять логирование. Лог помогает понять, что пользователь выбрал, какие данные пришли на сервер, какой способ доставки был указан, какой промокод применился и на каком шаге произошла ошибка.
Без логов часто приходится гадать. С логами можно открыть запись и увидеть реальную картину.
Что нужно тестировать
- заказ без авторизации;
- заказ авторизованного пользователя;
- каждый способ доставки;
- каждый способ оплаты;
- промокод;
- ошибочный ввод телефона или email;
- пустую корзину;
- товар с ограниченным остатком;
- письма клиенту и менеджеру;
- статусы после оплаты.
Главное правило
Я не советую править checkout на боевом сайте без резервной копии и проверки. Лучше сначала сделать тестовую копию или хотя бы сохранить текущие чанки, сниппеты и плагины.
Оформление заказа — это место, где маленькая ошибка может стоить реальных продаж.
Нужно доработать miniShop2?
Создайте заявку и опишите, что именно нужно изменить в оформлении заказа. Я посмотрю текущую логику и предложу безопасный план доработки.
Нужен похожий функционал?
Создайте заявку, приложите ТЗ или описание задачи. Я изучу проект и укажу стоимость.