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

Таблица oc_product_to_download

Таблица oc_product_to_download является промежуточной таблицей многие-ко-многим, которая связывает товары из таблицы oc_product с цифровыми товарами (файлами для скачивания) из таблицы oc_download. Эта связь позволяет одному товару иметь несколько файлов для скачивания, а одному файлу быть привязанным к нескольким товарам.

Поля

Поле Тип данных Описание
product_id int Идентификатор товара. Внешний ключ, ссылается на oc_product.
download_id int Идентификатор цифрового товара (файла). Внешний ключ, ссылается на oc_download.

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

В админ-панели OpenCart при редактировании товара существует вкладка "Ссылки". В этой вкладке есть раздел "Файлы для скачивания", где администратор может привязать к товару один или несколько цифровых товаров.

Когда покупатель приобретает товар, к которому привязаны файлы для скачивания, эти файлы становятся доступными в его личном кабинете в разделе "История заказов" → "Загрузки". Покупатель может скачать файл ограниченное количество раз и в течение определенного срока, который настраивается для каждого файла отдельно.

Таблица oc_product_to_download не хранит информацию о самих файлах или товарах - она содержит только связи между ними. Данные о файлах (название, маска, дата добавления) хранятся в таблице oc_download, а информация о товарах - в таблице oc_product.

Один товар может иметь несколько привязанных файлов для скачивания. Это полезно, когда цифровой товар состоит из нескольких файлов (например, основная программа, документация и патч). Также один файл может быть привязан к нескольким товарам, что позволяет переиспользовать цифровые товары без их дублирования.

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

Получить все файлы для скачивания для конкретного товара:

SELECT d.download_id, d.filename, dd.name FROM oc_product_to_download p2d LEFT JOIN oc_download d ON (p2d.download_id = d.download_id) LEFT JOIN oc_download_description dd ON (d.download_id = dd.download_id) WHERE p2d.product_id = 42 AND dd.language_id = 1;

Проверить, какие товары используют определенный файл для скачивания:

SELECT p.product_id, pd.name FROM oc_product_to_download p2d LEFT JOIN oc_product p ON (p2d.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) WHERE p2d.download_id = 15 AND pd.language_id = 1;

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

  • таблицу oc_download,
    которая хранит информацию о файлах для скачивания
  • таблицу oc_download_description,
    которая содержит описания файлов на разных языках
  • таблицу oc_product,
    которая содержит основную информацию о товарах
  • таблицу oc_order_download,
    которая отслеживает историю скачиваний покупателями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить