Ошибка 404 при добавлении товара в OpenCart обычно означает, что система не может найти запрошенный ресурс (страницу, скрипт, файл). Разберём основные причины и способы решения.
Основные причины
Некорректные URL‑правила (htaccess)
Система не перенаправляет запросы должным образом из‑за ошибок в .htaccess.
Проблемы с ЧПУ (SEO‑URL)
Неправильные настройки SEO‑URL в админ‑панели или базе данных.
Ошибки кэша
OpenCart хранит кешированные маршруты, и устаревшие данные мешают корректной работе.
Конфликт модулей/тем
Сторонние расширения или шаблон нарушают маршрутизацию.
Неправильные права доступа
Файлы/папки имеют некорректные chmod, блокирующие доступ.
Ошибки в базе данных
Нарушены связи между таблицами url_alias, product и др.
Проблемы сервера
Нехватка памяти, тайм‑ауты, ограничения PHP.
Пошаговая диагностика и решение
1. Проверьте файл .htaccess
Убедитесь, что файл находится в корневой директории OpenCart.
Сравните его с шаблоном из дистрибутива OpenCart (ищите htaccess.txt в архиве).
Проверьте, активен ли модуль mod_rewrite на сервере (можно уточнить у хостинга).
2. Сброс SEO‑URL
В админ‑панели: Система → Настройки → Ваша настройка → Вкладка «Сервер».
Включите «SEO URL» и сохраните.
Если уже включено — отключите, сохраните, затем снова включите.
3. Очистите кэш
В админ‑панели: Расширения → Модули → SEO URL → Кнопка «Очистить кэш».
Вручную удалите файлы из папок:
/cache/
/image/cache/
/system/cache/
4. Проверьте URL товара
В админ‑панели откройте товар → вкладка «Данные» → поле «SEO URL».
Убедитесь, что URL уникален и не содержит запрещённых символов (пробелы, спецсимволы).
Пример корректного URL: my-new-product.
5. Отключите сторонние модули
В админ‑панели: Расширения → Модули.
Отключите все нештатные модули (особенно SEO‑плагины).
Проверьте, исчезла ли ошибка.
6. Проверьте права доступа
Установите корректные chmod:
Файлы: 644
Папки: 755
Команды для терминала (если есть доступ):
bash
find /путь/к/opencart -type f -exec chmod 644 {} \;
find /путь/к/opencart -type d -exec chmod 755 {} \;
7. Проверьте базу данных
Войдите в phpMyAdmin или аналогичный инструмент.
Найдите таблицу oc_url_alias (префикс может отличаться).
Убедитесь, что для товара есть запись с правильным query (например, product_id=123) и keyword (ваш SEO‑URL).
Если записей нет — добавьте вручную или пересохраните товар в админ‑панели.
8. Проверьте логи сервера
Найдите файлы error_log в корневой папке или у хостинга.
Ищите строки с 404, Not Found, PHP Warning.
9. Временное переключение на стандартный шаблон
В админ‑панели: Дизайн → Темы.
Выберите «Default» или «Classic».
Сохраните и проверьте работу.
10. Проверьте PHP‑настройки
В php.ini или .htaccess убедитесь, что:
memory_limit ≥ 128M
max_execution_time ≥ 180
post_max_size ≥ 16M