Checkout — самое опасное место для быстрых правок

Оформление заказа в интернет-магазине нельзя дорабатывать “на глаз”. Если сломать карточку товара, это неприятно. Но если сломать checkout, магазин может просто перестать получать заказы.

В miniShop2 оформление заказа часто связано сразу с несколькими вещами: корзиной, доставкой, оплатой, промокодами, полями покупателя, статусами заказа, письмами и внешними сервисами.

Что обычно хотят изменить

  • добавить новые поля в заказ;
  • изменить список доставок;
  • подключить СДЭК, курьера или самовывоз;
  • добавить онлайн-оплату;
  • изменить расчет стоимости доставки;
  • добавить промокоды или скидки;
  • поменять внешний вид шагов оформления;
  • сделать подтверждение выбранного пункта выдачи;
  • добавить логи, чтобы видеть, где заказ ломается.

Почему возникают ошибки

Проблемы появляются, когда правка делается только в шаблоне, а backend-логика не учитывается. Например, поле появилось на странице, но не сохраняется в заказ. Или доставка выбрана на фронте, но не попадает в обработчик. Или оплата прошла, но статус заказа не изменился.

Пользователь при этом видит обычную страницу, нажимает кнопку, а менеджер потом не понимает, почему заказ пустой, без доставки или без нужного комментария.

Как я подхожу к доработке

Сначала я смотрю текущую схему оформления заказа: какие поля уже есть, какие доставки подключены, как создается заказ, какие события miniShop2 используются, есть ли кастомные сниппеты и плагины.

Потом я определяю, где должна жить новая логика: в чанке, сниппете, плагине, процессоре, JS или отдельном компоненте. Это важно, потому что не всякую задачу правильно решать только версткой.

Почему нужны логи

Для checkout я очень люблю добавлять логирование. Лог помогает понять, что пользователь выбрал, какие данные пришли на сервер, какой способ доставки был указан, какой промокод применился и на каком шаге произошла ошибка.

Без логов часто приходится гадать. С логами можно открыть запись и увидеть реальную картину.

Что нужно тестировать

  • заказ без авторизации;
  • заказ авторизованного пользователя;
  • каждый способ доставки;
  • каждый способ оплаты;
  • промокод;
  • ошибочный ввод телефона или email;
  • пустую корзину;
  • товар с ограниченным остатком;
  • письма клиенту и менеджеру;
  • статусы после оплаты.

Главное правило

Я не советую править checkout на боевом сайте без резервной копии и проверки. Лучше сначала сделать тестовую копию или хотя бы сохранить текущие чанки, сниппеты и плагины.

Оформление заказа — это место, где маленькая ошибка может стоить реальных продаж.

Нужно доработать miniShop2?

Создайте заявку и опишите, что именно нужно изменить в оформлении заказа. Я посмотрю текущую логику и предложу безопасный план доработки.

Создать заявку

Нужен похожий функционал?

Создайте заявку, приложите ТЗ или описание задачи. Я изучу проект и укажу стоимость.

Обсудить задачу