Путь к заказу

Не работает корзина на сайте

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

Состояние покупки

Где прерывается
сценарий

Корзина связывает интерфейс, каталог, остатки, цены, сессию и оформление. Сообщение в браузере не доказывает изменение серверного состояния, поэтому проверяем запрос и итоговый расчёт на стороне магазина.

01

Карточка товара

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

02

API и обработчик

Фиксируем адрес, метод, статус, ответ сервера, идентификатор товара и причину отказа без изменения рабочих данных.

03

Cookie и сессия

Сравниваем гостя и пользователя, домен, HTTPS, срок cookie, кэш и сохранение между страницами и устройствами.

04

Цена и остатки

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

05

Скидки и доставка

Тестируем промокоды, пороги, несовместимые акции, способы доставки и изменение суммы при смене региона.

06

Оформление

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

Результат

Покупатель доходит до оформления

Стабильное состояние

Состав корзины сохраняется между страницами и пересчитывается предсказуемо.

Верная сумма

Цена, скидка, количество и доставка подтверждаются сервером.

Измеряемый путь

Добавление, начало оформления и заказ фиксируются без ложных событий.

Контрольные сценарии

Проверяем больше одной кнопки

Ошибка может зависеть от варианта товара, промокода, мобильного браузера или авторизации. Тестовая матрица строится по реальным правилам магазина.

01

Гость

Добавляет товары и сохраняет корзину без учётной записи.

02

Пользователь

Входит в аккаунт без потери или неожиданного удвоения позиций.

03

Изменение состава

Количество, удаление и варианты корректно меняют итог.

04

Ограничения

Недоступный остаток и неверный промокод объясняются до оплаты.

Важно

Отключение кэша целиком не заменяет диагностику

Кэш действительно может смешивать персональное состояние, но полное отключение ухудшит скорость. Исключаем только динамические ответы и исправляем конкретный конфликт сессии.

Для диагностики подготовьте

  • URL товара и вариант;
  • устройство и браузер;
  • точные шаги до ошибки;
  • промокод или регион, если важны;
  • время последней попытки.

Тестовые заказы и оплату проводим только в безопасном режиме и без реального списания средств.

Путь товара

От кнопки до оформления

Корзина хранит вариант товара, количество, цену, скидку и связь с пользователем. Сбой одного поля проявляется по-разному на гостевом и авторизованном сеансе, поэтому проверяем весь маршрут.

01

Добавление

Смотрим обработчик кнопки, сетевой запрос и ответ сервера. Проверяем ID товара и варианта, остаток, минимальное количество и сообщение об ошибке. Кнопка не должна молча игнорировать отказ.

02

Хранение

Сверяем cookie, сессию и серверное хранилище. Корзина не должна очищаться при переходе между HTTP и HTTPS, www и основным доменом либо после входа в аккаунт.

03

Пересчёт

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

04

Заказ

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

Матрица проверки

Гость, пользователь и мобильный браузер

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

После восстановления

Следим за потерянными корзинами

Сравниваем добавления товаров, открытия корзины и переходы к оформлению. Рост добавлений без просмотров корзины указывает на интерфейсный сбой; просмотры без оформления требуют проверки пересчёта, доставки и сообщений об остатках.

В журнал не записываем персональное содержимое корзины целиком. Достаточно технического ID сеанса, кода ошибки и состава правил расчёта. После обновления CMS повторяем контрольную матрицу для гостя и пользователя, потому что изменения cookie и кэша часто возвращают проблему.

Пограничные случаи

Корзина ломается на исключениях

Обычный товар с количеством один проходит даже при неполной реализации. Ошибки проявляются на вариантах, остатках, скидках и изменении данных между двумя запросами.

01

Нет в наличии

Если остаток закончился после добавления, корзина показывает позицию и предлагает изменить количество либо удалить её. Оформление не должно уходить в бесконечную загрузку.

02

Цена изменилась

Сервер пересчитывает итог перед заказом и сообщает об изменении. Цена из localStorage или скрытого поля не используется как источник истины.

03

Скидка конфликтует

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

Для диагностики подготовьте тестовый товар с вариантами, промокод и правила доставки. Не очищайте все кэши одновременно: это скрывает источник и создаёт нагрузку. Мы сбрасываем только слой, который содержит устаревшее состояние, и записываем способ повторения ошибки.

Вопросы

Перед исправлением

Почему товар не добавляется?

Проверяем JavaScript, запрос API, вариант, остаток, сессию и серверный обработчик.

Почему корзина очищается?

Причиной может быть cookie, смена домена или HTTPS, кэш либо конфликт авторизации.

Где должна считаться сумма?

Окончательный расчёт выполняется сервером по актуальным ценам, остаткам и правилам.

Что тестируется после ремонта?

Гость, пользователь, мобильная версия, варианты, промокоды, количество и оформление.

Первый шаг

Покажите проблемный товар

Пришлите URL, устройство и последовательность действий. Определим, какой этап корзины нужно проверить первым.