Найти в Дзене

Полезные SQL запросы для Opencart 2x

В одной из предыдущих статей, мы разобрались с Вами как русифицировать OpenCart.

В этой статье, я дам вам список полезных SQL запросов для Opencart, все запросы из данной статьи тестировались только на версии Opencart 2x.

Иногда при работе с интернет-магазином на Opencart возникает необходимость быстро очистить какие либо данные в админке, это могут быть: товары, категории, производители, опции, атрибуты и прочая информация.

Делать это через админку, стандартным функционалом движка, не всегда удобно, и если количество ваших товаров давно перевалило за несколько тысяч, то единственным быстрым, удобным и бесплатным вариантом остаётся очистка нужных данных с помощью специальных SQL запросов.

Это совсем несложно и безопасно, если придерживаться нескольких правил:

  • Всегда делать бэкап базы данных MYSQL, перед выполнением любых запросов;
  • Если префикс вашей базы данных отличается от стандартного "oc_" перед выполнением запроса необходимо изменить префикс на ваш;
  • После выполнения запроса проверять работу магазина, в случае каких либо ошибок делать откат базы данных.

Итак давайте рассмотрим по шагам данный процесс, покажу на примере хостинга Beget

Шаг 1 Заходим а раздел MYSQL

Ищем в панели вашего хостинга раздел MYSQL (иногда он ещё называется Базы данных)

-2

Перейдя в раздел MYSQL ищем имя нужной нам базы данных (БД).

Если вы не знаете имя вашей БД, его можно посмотреть в файле config.php, который лежит в корне вашего магазина. Для этого подключитесь к вашему FTP серверу и откройте с помощью редактора NotePad++ файл config.php 

-3

В нижней части файла config.php Вы найдёте значения в строках с DB_DATABASE и DB_PASSWORD, это логин и пароль к нашей базе данных они нам понадобятся далее.

-4

!Так же обязательно проверьте значение строки содержащей DB_PREFIX, если он стандартный то есть используется oc_ то вы можете использовать SQL команды указанные в данной статье без изменений.

Если же ваш префикс отличается, то вам необходимо заменить в SQL запросах префикс oc_ на тот что указан у вас в строке с DB_PREFIX.

Шаг 2 Входим в интерфейс phpMyAdmin

Для этого жмём на иконку phpMyAdmin напротив нужной базы данных

-5

Шаг 3 Вводим логин и пароль от нашей базы данных

-6

Шаг 4 Переходим в раздел SQL в phpMyAdmin

Попав в phpMyAdmin заходим во вкладку SQL

-7

Шаг 5 Выполняем SQL запрос

Копируем нужный нам SQL запрос из перечня в конце статьи и жмём кнопку Вперёд

-8

Далее подтверждаем выполнение действия нажав кнопку Ок

-9

В случае успешного выполнения

Вы увидите строку с результатом запроса на зеленом фоне

-10

В случае ошибки 

Вы увидите текст об ошибке на красном фоне и запрос который вызвал ошибку

-11

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

Шаг 6 Проверяем результат выполнения запроса в админке

В данном примере я выполнил SQL запрос на удаление всех опций товаров, поэтому идём в админку в раздел Каталог-Опции и проверяем наличие опций.

-12

Все опции были успешно удалены!

Ну а теперь я приведу Вам сам список полезных SQL запросов для Opencart:

Отключает товары у которых цена = 0

UPDATE oc_product SET oc_product.status = 0 WHERE price = 0

Установить кол-во бонусных баллов для покупки товара равное цене

UPDATE `product` SET points = round(price);

Массовое изменение цены в Opencart
Этот пример разделит все цены на 66.28, так мы можем перевести цены в рублях на доллары.

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

Удаление всех товаров

SET foreign_key_checks = 0;
TRUNCATE TABLE oc_product;
TRUNCATE TABLE oc_product_attribute;
TRUNCATE TABLE oc_product_description;
TRUNCATE TABLE oc_product_discount;
TRUNCATE TABLE oc_product_image;
TRUNCATE TABLE oc_product_option;
TRUNCATE TABLE oc_product_option_value;
TRUNCATE TABLE oc_product_related;
TRUNCATE TABLE oc_product_related;
TRUNCATE TABLE oc_product_reward;
TRUNCATE TABLE oc_product_special;
TRUNCATE TABLE oc_product_to_category;
TRUNCATE TABLE oc_product_to_download;
TRUNCATE TABLE oc_product_to_layout;
TRUNCATE TABLE oc_product_to_store;
TRUNCATE TABLE oc_review;
DELETE FROM oc_url_alias WHERE query LIKE 'product_id=%';

Удаление всех атрибутов и групп атрибутов

TRUNCATE TABLE oc_attribute;
TRUNCATE TABLE oc_attribute_group;
TRUNCATE TABLE oc_attribute_group_description

Удаление всех опций

TRUNCATE TABLE oc_option

Удаление всех категорий

TRUNCATE oc_category;
TRUNCATE oc_category_description;
TRUNCATE oc_category_path;
TRUNCAte oc_product_to_category;
TRUNCATE oc_category_to_store;
TRUNCATE oc_category_to_layout;
TRUNCATE oc_category_filter;
TRUNCATe oc_coupon_category;

Удаление всех производителей

TRUNCATE TABLE oc_manufacturer

Удаление всех заказов

TRUNCATE TABLE oc_order;
TRUNCATE TABLE oc_order_history;
TRUNCATE TABLE oc_order_option;
TRUNCATE TABLE oc_order_product;
TRUNCATE TABLE oc_order_recurring;
TRUNCATE TABLE oc_order_recurring_transaction;
TRUNCATE TABLE oc_order_total;
TRUNCATE TABLE oc_order_voucher;

Удаление всех покупателей

TRUNCATE oc_customer;
TRUNCATE oc_customer_activity;
TRUNCATE oc_customer_history;
TRUNCATE oc_customer_login;
TRUNCATE oc_customer_ip;
TRUNCATE oc_customer_online;
TRUNCATE oc_customer_reward;
TRUNCATE oc_customer_transaction;
TRUNCATE oc_customer_search;
TRUNCATE oc_customer_wishlist;
TRUNCATE oc_custom_field;
TRUNCATE oc_custom_field_customer_group;
TRUNCATE oc_custom_field_description;
TRUNCATE oc_custom_field_value;
TRUNCATE oc_custom_field_value_description;

Если у Вас есть свои полезные SQL запросы, которыми вы хотели бы поделиться с остальными подписчиками, пишите их в комментариях и я обязательно добавлю их в эту статью!

Понравилась статья? Поставьте лайк, и напишите Ваш комментарий!

Так же делитесь статьёй со своими друзьями и знакомыми в соц. сетях!

Остались вопросы? Задайте их в комментариях, и я обязательно отвечу.

Хотите узнать больше об OpenCart? Подписывайтесь на мой Youtube канал!
Хотите узнать больше об OpenCart? Подписывайтесь на мой Youtube канал!