НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
86 of 152 menu

Таблица oc_seo_url

Таблица oc_seo_url является ключевым элементом системы управления ЧПУ (человеко-понятными урлами) в OpenCart. Она хранит соответствия между стандартными системными запросами (например, index.php?route=product/product&product_id=42) и их SEO-версиями (например, /smartphone/samsung-galaxy-s23). Это улучшает индексацию сайта поисковыми системами и повышает удобство для пользователей.

Поля

Поле Тип данных Описание
seo_url_id int Уникальный идентификатор записи SEO URL. Автоинкрементное поле.
store_id int Идентификатор магазина, для которого действует данный SEO URL. Ссылается на таблицу oc_store. Для мультимагазинных конфигураций позволяет иметь разные ЧПУ для одного и того же товара в разных магазинах.
language_id int Идентификатор языка, для которого действует данный SEO URL. Ссылается на таблицу oc_language. Позволяет создавать уникальные ЧПУ для одного и того же товара на разных языках в мультиязычных магазинах.
query varchar(255) Оригинальный системный запрос, для которого создан SEO URL. Имеет строгий формат: route=path/to/controller&entity_id=ID (например, route=product/product&product_id=42, route=product/category&path=20_27).
keyword varchar(255) Собственно, сам SEO URL (ключевое слово). Это читаемая часть адреса, которая будет отображаться в браузерной строке. Должен быть уникальным в рамках комбинации store_id и language_id.

Как это работает

Когда пользователь или поисковый бот запрашивает страницу по её SEO URL (например, /electronics/phones/smartphone), система ищет этот keyword в таблице oc_seo_url. Найдя совпадение, система извлекает соответствующий query (например, route=product/category&path=20_25) и использует его для загрузки правильного контроллера и передачи ему необходимых параметров.

Обратный процесс происходит при генерации ссылок на сайте. Система, формируя меню или ссылку на товар, ищет в таблице oc_seo_url запись с query, соответствующим данной сущности, и подставляет найденный keyword в HTML-код.

В админ-панели OpenCart (Система → Настройки → Сервер) есть глобальная настройка "Использовать SEO URL", которая включает или отключает весь этот механизм. Для его работы также требуется корректная настройка файла .htaccess на сервере.

SEO URL можно генерировать автоматически через админ-панель (Менеджер SEO URL) или вручную для каждого товара, категории и т.д. на страницах их редактирования. Ручное указание позволяет создать максимально релевантный и читаемый URL.

Пример SQL-запроса

Получить все SEO URL для товаров на основном магазине (store_id=0) и русском языке (language_id=1) можно следующим запросом:

SELECT su.keyword, su.query, pd.name FROM oc_seo_url su LEFT JOIN oc_product_description pd ON ( su.query = CONCAT('product_id=', pd.product_id) AND pd.language_id = su.language_id ) WHERE su.store_id = 0 AND su.language_id = 1 AND su.query LIKE 'product_id=%';

Важные примечания

Производительность: Большие таблицы oc_seo_url (десятки тысяч записей) могут создавать нагрузку, так как поиск по ней происходит при каждом запросе. Рекомендуется использовать индексы на полях keyword, query, store_id и language_id.

Конфликты: Ключевые слова (keyword) должны быть уникальными в рамках одного магазина и языка. Попытка создать дубликат приведет к ошибке. Некоторые SEO-модули автоматически добавляют числовой суффикс (например, product-name-2) в случае конфликта.

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

Смотрите также

  • таблицу oc_product,
    которая содержит основные данные о товарах
  • таблицу oc_product_description,
    которая хранит текстовые описания товаров
  • таблицу oc_category,
    которая хранит информацию о категориях
  • таблицу oc_url_alias,
    которая выполняла аналогичную функцию в старых версиях OpenCart (v2.x и ранее)
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить