Задача
Компания «КОНКОРДИЯ» специализируется на производстве и продаже электромобилей и гольфкаров по всей России обратились ко мне со следующей задачей.
Доработать каталог интернет-магазина, т.к. товары содержат атрибуты влияющие на изменение цен, атрибуты однотипные, но менять их нужно у каждого товара отдельно. Так же атрибуты принадлежат определенным типам товаров. Товаров в магазине более 50 штук, атрибутов у каждого товара, примерно столько же, в итоге на простое изменение цен уходит значительное время 50 товаров * 50 атрибутов = 2500 правок, вместо 50. Согласитесь, не логично каждый раз менять их в ручную.
Решение
Вник в задачу более детально, каталог состоит из 4х основных категорий:
- Гольфкары
- Электромобили
- Грузовые электромобили
- Коммунальная техника
В прайсе товары разбиты на другие 4 типа и у каждого были свои атрибуты, в общей сложности 59 атрибутов:
- Открытые (16 атрибутов);
- Закрытые (18 атрибутов);
- Грузовые (10 атрибутов);
- Коммунальные (15 атрибутов).
Именно эти категории я добавил как дополнительные без вывода их на фронте сайта, чтоб можно было отсортировать товары и удобнее с ними работать.
Дальше у меня было 2 варианта решения:
- SQL-запросы к бд на удаление, изменение и добавление атрибутов;
- Сделать кастомный плагин для автоматического добавления атрибутов.
Получив доступ к БД, вник в ее структуру, разобрался с принципом работы плагина joomshopping и его атрибутами, понял, что структура там слишком замудренная. Создание плагина может занять значительное время, к тому же работа плагина будет основываться на sql-запросах, а значит их в любом случае нужно создать. Именно поэтому я остановился на варианте с sql-запросами.
SQL-запросы
- Я получил id всех категорий, атрибутов, опций атрибутов и их значений, т.к. именно такая структура работы плагина joomshopping с БД.
- Сделал бэкап сайта и его БД, т.к. всегда, что-то может пойти не по плану, нужно быть осторожным.
- Создал тестовые товары в двух категориях и тестовые атрибуты, чтоб не нарушать работу основного сайта.
- После всех тестов (не сразу все пошло гладко, т.к. версия БД не из последних), я получил нужный скрипт.
- Сделал генератор SQL по Excel и размножил его на все товары и категории.

Результат
В итоге на сайте появился новый инструмент по массовому изменению цен атрибутов товара. В админке товары рассортированы по дополнительным категориям, что упрощает работу с ними администраторам сайта. Заказчик остался доволен, работаем…