Таблица oc_store
Таблица oc_store является центральной для реализации функции мультимагазина (Multi-Store) в OpenCart. Она позволяет управлять несколькими витринами из одной админ-панели, используя общие товары, категории, клиентов и заказы, но с разными настройками, темами, языками и валютой для каждого магазина.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
store_id |
int |
Уникальный идентификатор магазина. Главный магазин всегда имеет ID = 0.
|
name |
varchar(64) |
Название магазина, которое отображается в заголовке браузера и в других мета-данных. |
url |
varchar(255) |
Полный URL-адрес магазина (например, https://example.com/store2/). Это основа для генерации всех ссылок в данном магазине.
|
ssl |
varchar(255) |
Полный HTTPS URL-адрес магазина (например, https://example.com/store2/). Используется для безопасного соединения. Если не указан, будет использоваться значение из поля url.
|
Как это работает
Функция мультимагазина позволяет создать сеть магазинов, которые могут быть привязаны к разным доменам, поддоменам или даже подпапкам основного домена. Например:
https://shop.com(главный магазин)https://fr.shop.com(магазин для французских клиентов)https://shop.com/wholesale(магазин для оптовых покупателей в подпапке)
Каждому магазину в системе можно назначить свои собственные настройки через админ-панель в разделе "Система → Настройки → [Магазин]". Это включает валюту, язык, шаблон, мета-теги, параметры сложения и многое другое. При этом такие сущности, как товары, категории, производители, клиенты и заказы, являются общими для всех магазинов.
Связь между общими данными и конкретными магазинами осуществляется через дополнительные связующие таблицы. Например, таблица oc_product_to_store определяет, в каких магазинах отображается тот или иной товар. Аналогичные таблицы существуют для категорий, производителей и других сущностей.
При посещении пользователем определенного URL система определяет, к какому store_id относится запрос, и загружает соответствующие настройки. Все дальнейшие операции (отображение товаров, корзина, оформление заказа) происходят в контексте этого магазина.
Пример SQL-запроса
Получить список всех магазинов можно простым запросом:
SELECT * FROM oc_store ORDER BY store_id;
Проверить, в каких магазинах отображается товар с ID 42:
SELECT s.name, s.url
FROM oc_product_to_store p2s
LEFT JOIN oc_store s ON (p2s.store_id = s.store_id)
WHERE p2s.product_id = 42;
Смотрите также
-
таблицу
oc_setting,
которая хранит все настройки для каждого магазина -
таблицу
oc_product_to_store,
которая связывает товары с магазинами -
таблицу
oc_category_to_store,
которая связывает категории с магазинами