Услуги Создание магазина Доработка Интеграция 1С О компании FAQ Блог Кейсы Отзывы Контакты
А
Автор статьи

Товары не добавляются в корзину OpenCart: что проверить

Да, товары могут не добавляться в корзину OpenCart по множеству причин — от банального конфликта JavaScript до проблем с сессиями на сервере. За 17 лет разработки я OpenCart видел десятки таких кейсов. Разберу причины от самых частых к редким — чтобы вы могли починить корзину за 15 минут, а не гадать неделями.

Шаг 1. Проверьте консоль браузера на ошибки JavaScript

А что делать, если кнопка «В корзину» не реагирует на нажатие? Первым делом откройте консоль браузера (F12 → Console) и нажмите «В корзину». Если там красные ошибки — проблема в JavaScript.

Частая ситуация: после установки модуля «Быстрый просмотр» кнопка в корзину перестала работать. Модуль подгружает товар через AJAX, но обработчик корзины не перевешивается на динамически добавленные элементы. Решение: отключите модуль или доработайте скрипт.

Подробнее про конфликты — в статье про почему не стоит ставить много модулей.

Шаг 2. Проверьте AJAX-запросы во вкладке Network

А что делать, если в консоли ошибок нет, но товар всё равно не добавляется? Откройте вкладку Network → XHR и снова нажмите «В корзину». Должен появиться POST-запрос к index.php?route=checkout/cart/add. Если нет — JS не отправляет запрос.

Если запрос есть, но возвращает ошибку — проверьте тело ответа. Часто там написано: «Product not found» (товар не найден) или «Option required» (не выбрана обязательная опция).

Шаг 3. Проблемы с сессиями

А что делать, если товар добавляется, но после перехода на другую страницу корзина пуста? Это проблема сессий.

OpenCart хранит корзину в сессии. Если сессия не сохраняется между страницами — корзина теряется. Проверьте настройки сессий в PHP, включите Redis для хранения или используйте файловое хранилище.

Подробнее — в статье про настройку сервера для OpenCart.

Шаг 4. Кэш страниц

А что делать, если кнопка работает, но товар не добавляется только на закэшированных страницах? Полный кэш страниц может не отправлять AJAX-запросы.

Исключите страницу товара и корзины из кэширования. Если используется Varnish — настройте исключение по URL.

Шаг 5. Проверьте совместимость PHP

А что делать, если корзина перестала работать после обновления PHP с 7.4 на 8.x? Типичная ситуация: старые модули используют функции, удалённые в PHP 8 (eregi, mysql_).

Проверьте логи PHP — там будут строки с ошибками. Решение: обновите модули до версий, совместимых с PHP 8, или замените устаревшие вызовы.

Подробнее — в статье про безопасное обновление OpenCart.

Кейс из практики: корзина не работала только в Chrome на мобильных

Расскажу реальный случай. Клиент жалуется: товары не добавляются в корзину в Chrome на мобильных, в Safari всё работает.

Оказалось, модуль «Быстрый просмотр» конфликтовал с темой: он подгружал товар в модальное окно через AJAX, и в мобильной теме скрипт корзины не инициализировался после подгрузки. Решение: отключили быстрый просмотр на мобильных.

Второй кейс: товары перестали добавляться после установки модуля «Рекомендуемые товары». Отключили — корзина заработала. Заменили на совместимый модуль.

Шаг 6. Отключите недавно установленные модули

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

Кастомные модули корзины, модули быстрого просмотра, модули рекомендованных товаров — главные подозреваемые.

Если модуль нужен — ищите совместимую версию. Подробнее — на странице доработки OpenCart.

Шаг 7. Проверьте CSRF-токен

А что делать, если AJAX-запрос уходит, но сервер отвечает 403? OpenCart 3+ использует CSRF-защиту. Если токен не передаётся в POST-запросе — запрос блокируется.

Решение: обновите страницу и попробуйте снова. Если проблема повторяется — проверьте, не истекла ли сессия.

Часто задаваемые вопросы

Товар добавляется, но после перехода на другую страницу корзина пуста

Проблема с сессиями. Проверьте настройки PHP и включите Redis для хранения сессий.

Кнопка не работает только на одной странице?

Конфликт JavaScript. Откройте консоль и смотрите ошибки.

Товар добавляется, но количество всегда 1?

Проверьте, передаётся ли параметр quantity в POST-запросе. Кастомные модули могут его игнорировать.

После обновления PHP корзина перестала работать

Типично при переходе с PHP 7 на 8. Обновите модули до совместимых версий.

Корзина не работает на всех устройствах — что делать?

Проверьте консоль, AJAX-запросы, логи PHP. Пройдите все шаги диагностики. Если не помогло — обращайтесь за помощью.

Об авторе

Мой опыт с OpenCart: с 2009 года я разрабатываю магазины на OpenCart. Если корзина не работает и нужна помощь — пишите.

Антон Баринов — разработчик интернет-магазинов на OpenCart с 2009 года, основатель opencart-cms.ru.

← Предыдущая Управление ассортиментом: ABC-XYZ анализ для e-commerce Следующая → Дропшиппинг в 2026: схемы, риски, платформы для поиска поставщиков

Комментарии (0)

Пока нет комментариев. Будьте первым!

Оставить комментарий

Ваш комментарий появится после проверки модератором.