Модуль позволяет массово изменять цены товаров, с учетом необходимых фильтров.
Работает на Opencart 2.x.
New! Возможность создавать Акции/Скидки для товаров соответствующих фильтру, если они ещё не созданы; возможность удалять Акции/Скидки для товаров по выбранным параметрам фильтра.
Модуль разработан для Opencart 2.x. Демо:
efremovav.16mb.com/ocstore2/admin/index.php?route=module/price_control (логин\пароль: demo\demo)
Как установить:
вариант 1. Через админ-панель: Установка расширений->Загрузить файл (Extension Installer->Upload File) - загружаете архив с модулем
p.s.: Если вы используете модификатор Local copy OCMOD by iSenseLabs загружайте содержимое папки upload из архива в корень сайта!
вариант 2. Распаковываете архив в корень сайта.
-в настройках системы устанавливаете модуль (в списке модулей - Price Control - Групповое управление ценами);
-заходите в редактирование модуля и начинаете творить)
P.S.: Стандартные файлы движка не заменяются, файлы vqmod(ocmod) не используются. Модуль не позволяет изменять цены на выборочные товары, только на список товаров отвечающих параметрам фильтрации.
Как пользоваться:
-выбираете необходимые параметры фильтрации;
-выбираете типы цен, которые нужно будет изменить (Основная\Опции\Скидки\Акции);
-выбираете необходимое действие (прибавить\вычесть\умножить на\разделить на);
-вводите число, которое будет использоваться для обновления цен (допускаются целые и дробные числа);
-выбираете % или число (если выберете %, то будет использоваться N процентов от цены товара, где N - введенное число).
-нажимаете Выполнить - цены обновятся.
-нажимаете "Восстановить предыдущие значения" - вернутся предыдущие значения.
Техподдержка:
Проблемы типа "модуль установил, но его нет в списке" решаются корректной настройкой FTP, в частности поля "FTP Домашняя директория" (путь до папки с opencart). Это проблема не модуля, а некорректных настроек магазина, настраиваете сами или обращаетесь за помощью за доп. плату, если сами не знаете как это сделать.
Для тех, у кого Ocstore 2.1.0.2:
Для корректной работы фильтра по производителям в этой версии OC необходимо внести изменения в модель, поскольку в стандартном методе получения производителей в этой версии ocstore есть баг. В файле "/admin/model/catalog/manufacturer.php" найти следующее:
public function getManufacturers($data = array()) { $sql = "SELECT * FROM " . DB_PREFIX . "manufacturer"; $sql = "SELECT c.manufacturer_id, c.name, c.sort_order FROM " . DB_PREFIX . "manufacturer c LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (c.manufacturer_id = md.manufacturer_id) WHERE md.language_id = '" . (int)$this->config->get('config_language_id') . "'"; if (!empty($data['filter_name'])) { $sql .= " AND name LIKE '" . $this->db->escape($data['filter_name']) . "%'"; } $sort_data = array( 'name', 'sort_order' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; }
и заменить на это:
public function getManufacturers($data = array()) { $sql = "SELECT * FROM " . DB_PREFIX . "manufacturer"; $sql = "SELECT c.manufacturer_id, c.name, c.sort_order FROM " . DB_PREFIX . "manufacturer c LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (c.manufacturer_id = md.manufacturer_id) WHERE md.language_id = '" . (int)$this->config->get('config_language_id') . "'"; if (!empty($data['filter_name'])) { $sql .= " AND c.name LIKE '" . $this->db->escape($data['filter_name']) . "%'"; } $sort_data = array( 'name', 'sort_order' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY c.name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; }
P.S.: Для понимающих - заменить в функции getManufacturers() " name" на " с.name"
Например, имеется товар у которого есть 15 размеров с разной ценой (задано при
помощи опций) и на него нужно поднять цену допустим на 20% и чтобы не
пересчитывать в ручную все значения опций, а просто изменить начальную
стоимость от которой идет расчет других размеров, данный модуль может
автоматически пересчитать не только начальную стоимость, но все
остальные опции.
Заранее спасибо.
Да, модуль может такое.
Единственное - по опциям никаких фильтраций не предусмотрено, т.е. вы не сможете указать критерии для изменения лишь некоторых опций товара - будут изменены все опции для конкретного товара.
Спасибо автору!
за секунду, 500 позиций, опа и всё готово!
а у меня их тысячи...