Архив

Полезные SQL запросы в OPENCART

полезные SQL запросы opencart

В этой статье мы рассмотрим полезные SQL запросы, который могут нам помочь в рутинной работе: изменение текста, добавление к тексту, изменение цен. Пример рассмотрим на популярном движке для интернет-магазина Opencart. Структуру таблиц базы будет использовать от 2й версии Опенката. Перейдем сразу к конкретике.
SQL запрос к базе можно сделать 2-мя основными способами:

  1. Через phpMyAdmin или другое подобное приложение для работы с MySQL. Обычно в phpMyAdmin можно зайти через панель управления хостингом. Нужно выбрать нужную Вам базу и зайти во вкладку SQL b вставить приведенный ниже запросы, заранее подправив под свои нужды.
  2. Через систему восстановления Opencart. Для этого перейдите Система — Инструменты — Бэкап / Восстановление. Далее выберите заранее подготовленный файл с SQL запросом (создайте в текстовом редакторе файл с расширением sql и в него добавьте код) нажмите кнопку (вверху справа) восстановить.sql запрос в opencart

Теперь к самим примерам. Я привожу те случаи, с которыми я сталкивался, с моими цифрами, названиями таблиц и префиксами. Вы же должны подправить под свои данные!

Рекомендуем VPS и хостинг для интернет-магазина с функцией «Все включено» (бекап, администрирование, панель управления, DNS). Активация в течении 1 мин — https://adminvps.ru/host/hosting_internet_magazin.php

1. Массовое изменение цены в Opencart

UPDATE `oc_product` SET `price` = `price` / 65.99;

Этот пример разделит все цены на 65.99, так мы можем перевести цены в рублях на доллары.
P.S позже опишу, как сделать цены в админке в валюте, а для пользователей в рублях.

Немного усложним, добавим условие

UPDATE `oc_product` SET `price` = `price` / 65.99 WHERE `oc_product`.`price` > 1;

Так мы сделаем те же действий, но для тех товаров, у которых цена больше 1
Аналогично, Вы можете добавить свои условия, по другим полям.

Допустим, Вам нужно увеличить цену на 7%

UPDATE `oc_product` SET `price` = `price` + (`price`/100*7) WHERE `oc_product`.`price` > 1;

Т.е в рамках запроса, мы можем производить математические действия +-*/.

Вычитаем 8% от товаров определенного производителя

UPDATE `oc_product` SET `price` = `price` - (`price`/100*8) WHERE `oc_product`.`manufacturer_id` = 54;

Сам manufacturer_id можете узнать в админке, зайдя в производители и наведя курсор на «Изменить». Там в ссылке Вы его и увидите. Или же посмотрите в базе oc_manufacturer.

2. Массовое изменение мета тегов в Opencart

Рассмотрим на таком примере, Вы собрали базу, импортировали, но в ней есть наименование Вашего поставщика. И нужно заменить его на Ваше название.

Изменяем метатег title

UPDATE `oc_product_description` SET `seo_title` = REPLACE(`seo_title`, 'Фирма поставщика', 'Ваша фирма');

Изменяем метатег description

UPDATE `oc_product_description` SET `meta_description` = REPLACE(`meta_description`, 'Фирма поставщика', 'Ваша фирма');

Изменяем метатег description

UPDATE `oc_product_description` SET `seo_h1` = REPLACE(`seo_h1`, 'Фирма поставщика', 'Ваша фирма');

Также можно добавить приставку Вашей фирмы в конце мет тегов, например тайтла. Для остальных по аналогии с вышеприведенными примерами.

UPDATE `oc_product_description` SET `seo_title` = CONCAT(`seo_title`, 'Ваша фирма');

Это основные примеры, которыми я пользуюсь. Они хорошо тем, что можно не использовать сторонние модули и тем более их покупать, если Вам это нужно проделывать не так часто. Или Вы часто создаете интернет магазины.

P.S Вы также можете использовать сразу несколько команд, каждая с новой строки и обязательно в конце каждой команты точка с запятой.

P.P.S Эти примеры касаются не только Opencart, Вы их можете использовать и на других сайтах, например, на Joomla, WordPress …

Нужна доработка или готовое решение?

Опишите задачу — отвечу в течение дня и назову сроки и стоимость.

Комментарии: 0

  1. Здравствуйте, подскажите, как сделать запрос SQL по опциям? Нужно опцию, применить ко всем товарам.

    1. Однозначн оне скажу. Но это не так просто. Вам нужно сначала создать у одного товара нужные опции. Затем посмотреть в базе, как это все прописалось и затем сделать так для каждого product_id
      Опции в нескольких таблицах oc_product_option, oc_product_option_value
      Проще использовать какойто из модулей импорта/экспорта и добавить всем товарам опции.

  2. Спасибо вам за полезные sql-запросы!!!
    Подскажите, как составить sql запрос для вот такой штуки?:
    Если у созданного товара отсутствует meta_title, то берём содержимое из name этого же товара и вставляем в meta_title.

    1. Попробуйте так:
      UPDATE `oc_product_description` SET `seo_title` = `name` WHERE `seo_title` IS NULL OR `seo_title` = '';

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