Не работает корзина WooCommerce: причины и что проверить

Если товар не добавляется, корзина становится пустой или итоговая сумма не меняется, сначала нужно определить участок сбоя. Ниже — последовательная проверка WooCommerce без предположения, что причина всегда в одном плагине.

Корзина WooCommerce — это не только страница со списком товаров. В сценарии участвуют карточка товара, форма добавления, JavaScript, AJAX, cookies, сессия WooCommerce, кеш и расчёт итогов. Поэтому одинаковая фраза «корзина не работает» может означать несколько разных неисправностей.

Сначала определите, где именно ломается корзина

Зафиксируйте точный сценарий: какой товар выбран, с какой страницы выполняется действие и что происходит после клика.

  • кнопки «В корзину» нет или она недоступна;
  • клик не даёт реакции, страница перезагружается или появляется ошибка;
  • товар визуально добавился, но корзина остаётся пустой;
  • корзина очищается после перехода, обновления или открытия в другой вкладке;
  • количество, скидка, доставка или итоговая сумма не пересчитываются.

Проверьте симптом в другом браузере и в приватном окне. Это только тест для cookies и расширений, а не доказательство исправления.

↑ К оглавлению

Если товар вообще не добавляется

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

Проверьте тип и состояние товара

Для простого товара достаточно корректного идентификатора. Для вариативного товара должны быть выбраны допустимые атрибуты и вариация с доступной ценой и остатком. Отдельно сравните кнопку на странице товара и в архиве: у них могут быть разные шаблоны и обработчики.

Также проверьте, не является ли товар черновиком, недоступным для покупки или ограниченным правилами каталога. Если HTML-кнопка есть, но обработчик не запускается, переходите к консоли браузера и Network.

↑ К оглавлению

Если корзина пустая или очищается

Когда добавление проходит, но следующий запрос не видит товар, обычно нужно проверить сохранение сессии. WooCommerce использует cookies и серверные данные корзины; их потеря выглядит как случайное исчезновение товаров.

  • сравните домен и протокол страницы, AJAX-запроса и cookies;
  • проверьте, не меняются ли www/non-www или HTTP/HTTPS по пути;
  • исключите страницу корзины, fragments и связанные запросы из кеша;
  • проверьте CDN, reverse proxy и правила кеширования cookies;
  • посмотрите PHP- и WooCommerce-логи на ошибки сессии, памяти и базы данных.

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

↑ К оглавлению

Если не меняются количество, сумма или итог

Пересчёт корзины часто выполняется асинхронно. Если запрос обновления не отправляется, возвращает ошибку или его ответ не применяется к DOM, покупатель видит старую сумму.

  • проверьте JavaScript-консоль и Network при изменении количества;
  • посмотрите статус и ответ AJAX-запроса, включая nonce и cookies;
  • сравните стандартные шаблоны корзины с переопределениями темы;
  • проверьте правила скидок, налоги, валюту и пользовательский расчёт итогов;
  • отдельно проверьте, не меняет ли сумму сторонний плагин после ответа WooCommerce.

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

↑ К оглавлению

Кнопка «В корзину»: разные симптомы требуют разных проверок

Отсутствующая кнопка, кнопка без реакции и кнопка с ошибкой в запросе — три разных случая. Сохраните URL, тип товара, выбранные параметры и результат клика.

  1. Если кнопки нет, проверьте статус товара, шаблон и условие доступности покупки.
  2. Если клика нет реакции, откройте Console и проверьте скрипты темы или оптимизатора.
  3. Если происходит перезагрузка, сравните обычную отправку формы и AJAX-сценарий.
  4. Если запрос есть, проверьте его статус, ответ и наличие нужных cookies.
↑ К оглавлению

Что проверить в AJAX-сценарии

Для AJAX добавления и обновления корзины важны URL запроса, данные товара, nonce, cookies и ответ сервера. Ошибка в любом из них может оставить интерфейс в состоянии, которое не совпадает с серверной корзиной.

В DevTools откройте Network, повторите действие и сравните успешный и проблемный сценарии. Ищите HTTP-ошибки, редиректы, PHP warning или JSON, который не может разобрать frontend. Отключение минификации и объединения скриптов используйте только как контролируемый тест.

↑ К оглавлению

Тема, плагины и переопределённые шаблоны

Корзину могут изменять тема, checkout-конструктор, плагины скидок, доставки, валюты, кеша и собственный код сайта. После обновления темы проверьте каталог переопределённых WooCommerce-шаблонов и предупреждения о версиях.

Безопасная проверка — staging или резервная копия, затем последовательное сравнение с базовой темой и минимальным набором расширений. Изменяйте по одному фактору и фиксируйте результат. На production не следует надолго отключать оплату, доставку или другие части магазина ради эксперимента.

↑ К оглавлению

Кеширование динамической корзины

Страница корзины и связанные AJAX-ответы зависят от конкретного посетителя. Ошибочная настройка page cache, object cache, CDN или оптимизации скриптов может отдавать старую HTML-страницу, fragments или заголовки cookies.

Проверьте исключения для корзины, checkout, персональных cookies и динамических запросов. Очистите уровни кеша после фиксации симптома и сравните результат для гостя и авторизованного пользователя. Если очистка помогает временно, ищите правило, которое снова кеширует динамический ответ.

↑ К оглавлению

Если проблема появилась после обновления WooCommerce

Зафиксируйте версии WooCommerce, темы и связанных плагинов, а также время последнего рабочего сценария. Затем проверьте шаблоны, хуки, JavaScript, PHP-логи, кеш и совместимость расширений с текущей версией.

Если проблема затрагивает не только корзину, а также оформление, доставку или оплату, полезно начать с общей страницы диагностики и ремонта WooCommerce.

↑ К оглавлению

Как отличить корзину от checkout

Cart отвечает за добавление товара, сохранение состава, изменение количества и расчёт суммы; checkout начинается после перехода к оформлению, когда проверяются поля, доставка, оплата и создание заказа.

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

↑ К оглавлению

Последовательность диагностики: 10 шагов

  1. Запишите URL, тип товара, выбранные вариации и ожидаемый результат.
  2. Повторите сценарий в приватном окне и другом браузере.
  3. Сравните гостя и авторизованного пользователя.
  4. Откройте Console и Network до клика.
  5. Проверьте статус, ответ, nonce и cookies запроса.
  6. Сравните страницу товара и архив, простой и вариативный товар.
  7. Проверьте сессию WooCommerce, домен, HTTP/HTTPS и www.
  8. Проверьте кеш, CDN, fragments и исключения динамических страниц.
  9. Сопоставьте симптом с обновлениями темы, WooCommerce, плагинов и шаблонов.
  10. Повторите полный путь и проверьте состав, количество, скидку и итог.
↑ К оглавлению

Когда нужна диагностика магазина

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

Для ускорения проверки подготовьте URL, шаги воспроизведения, тип товара, данные о браузере, время ошибки и список последних изменений. Пароли и платёжные данные в заявку передавать не нужно.

↑ К оглавлению

Частые вопросы

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

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

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

Частые причины — потерянная сессия WooCommerce, cookies, кеширование динамической страницы, CDN или прокси, несовпадение домена и протокола HTTP/HTTPS, а также ошибка PHP. Симптом нужно воспроизвести с проверкой сессии и серверных логов.

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

Пересчёт может зависеть от AJAX, JavaScript темы, переопределённых шаблонов, скидок, валюты и пользовательских расчётов. Важно проверить запрос обновления, его ответ и консоль браузера, а затем сравнить расчёт с настройками магазина.

Почему кнопка «В корзину» ничего не делает?

Кнопка может отсутствовать из-за состояния товара, не отправлять запрос из-за JavaScript или возвращать ошибку после отправки. Проверяют DOM, консоль, Network и тип товара отдельно для карточки товара и каталога.

Может ли кеш ломать корзину WooCommerce?

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

Что делать, если корзина сломалась после обновления WooCommerce?

Нужно сопоставить момент сбоя с обновлением, проверить совместимость темы, переопределения шаблонов, хуки, JavaScript и PHP-логи, а затем повторить сценарий на резервной или тестовой копии. На рабочем магазине не стоит сразу обновлять или отключать всё без плана возврата.

Как понять, проблема в корзине или checkout?

Если товар не попадает в корзину, корзина очищается или не меняет количество и сумму, проблема начинается на этапе Cart. Если корзина работает, но не отправляется форма, не появляется оплата или не создаётся заказ, нужен отдельный разбор checkout.

Можно ли диагностировать проблему без отключения всех плагинов?

Да. Безопаснее сначала зафиксировать сценарий, консоль, Network и логи, затем проверять изменения по одному на staging или резервной копии. Полное отключение на production может скрыть взаимосвязь и повлиять на покупателей.

↑ К оглавлению

Нужна помощь с корзиной WooCommerce?

Опишите симптом, шаг воспроизведения и последнее изменение в магазине. Можно начать с конкретной корзины, не переделывая весь WooCommerce.

↑ К оглавлению