EditorFastFix: массовое редактирование товаров, категорий и заказов с откатом
Удобная таблица товаров прямо в админке OpenCart 3 и ocStore 3. Перед любым массовым изменением видно, что было и что станет, а готовая операция отменяется одной кнопкой.
Проблема
Массовая правка опасна: одна ошибка в цене меняет тысячи товаров, а вернуть их обычно нечем, кроме резервной копии всей базы. Заказы, категории и обновление прайсов при этом делаются в разных модулях, и у каждого свой интерфейс.
Решение
EditorFastFix объединяет товары, категории, заказы, импорт и проверку каталога в одном окне. Каждое изменение проходит через предпросмотр и записывается в журнал, поэтому правки можно делать смело.
————————————————————————————————
Чем отличается от обычных массовых редакторов
| Предпросмотр «было → стало» | До запуска видно точное число затронутых товаров и примеры изменений. Модуль предупредит о нулевой цене, изменении больше чем на 50% и дублях. |
| Откат одной кнопкой | В журнале записано, кто, когда и что изменил. Операция откатывается целиком, включая удаление и импорт прайса. |
| Обрыв связи не страшен | Большие операции идут очередью в базе данных. Есть пауза и остановка, а после сбоя работа продолжается с места остановки. |
| Чужие правки не затираются | Если значение уже изменил другой сотрудник, модуль предупредит, а не перезапишет его молча. |
| Всё в одном окне | Товары, дерево категорий, заказы, импорт и экспорт, проверка каталога. Отдельные модули для каждой задачи не нужны. |
| Поля других модулей | Любую колонку из таблиц других модулей можно вывести в редактор через настройки, без программиста. |
————————————————————————————————
Товары: удобная таблица
- Нажали на ячейку и правите. Колонки с карандашом можно менять, а строка и панель внизу показывают, что идёт правка.
- Tab, Enter и стрелки, вставка диапазона из Excel, заполнение выделенных строк, отмена.
- Фильтры прямо в колонках: текст, диапазон 100-500, больше или меньше, несколько ID.
- Колонки на выбор, порядок перетаскиванием, сортировка, в том числе справочников по названию, сохранённые виды, до 500 строк на странице.
- Цена со скидкой и процент видны под обычной ценой.
- Карточка товара открывается сбоку, без перехода на другую страницу.
- Данные загружаются постранично, проверено на каталоге из 5000 товаров.
Фото в один клик
- Перетащите файл на миниатюру в таблице, и фото заменится сразу. Отменяется одной кнопкой.
- Окно фото: загрузка с компьютера, по ссылке, из буфера и из менеджера файлов, главное фото, порядок, удаление.
- Файлы получают понятные имена по названию товара, WebP преобразуется в JPG.
Всё редактируется из таблицы
- Акции, скидки, атрибуты по языкам с подбором значений, опции с ценами и остатками, рекомендуемые, фильтры, магазины, макеты, баллы, загрузки.
- Описание в HTML-редакторе, языки в одном окне.
- Категории товара с выбором главной.
Фильтры по любым параметрам
Любое поле, атрибуты и их значения, опции, акции, скидки, фильтры, рекомендуемые, загрузки, магазины, подписки, дополнительные фото, дубли, наличие или отсутствие связи. Массовое действие запускается сразу на всех найденных товарах.
Массовые действия
- Цены: проценты, сумма, умножение, расчёт из другого поля с наценкой, округление вверх и вниз, окончание цены (.99), акции и скидки с датами и группами покупателей, пересчёт действующих акций.
- Тексты: шаблоны {name}, {category}, {manufacturer}, {price}, {attr:ID}, варианты {купить|заказать}, поиск и замена, замена списком, регулярные выражения, синонимы.
- Несколько полей сразу: одно действие на Meta Title, H1, описание и другие тексты, откат одной кнопкой.
- Шаблоны действий: сохраните настройку под именем и повторяйте в один клик.
- SEO: SEO URL из названий с проверкой уникальности, Meta Title и описания по шаблону.
- Связи: категории, атрибуты, опции и их цены, рекомендуемые, загрузки, магазины, баллы, схемы, подписки, фото.
- Добавление и копирование товаров, в том числе по несколько копий, перенос данных с другого товара.
- Удаление идёт в корзину: товары и категории восстанавливаются со всеми связями.
Категории: дерево вместо списка
- Перетаскивание с пересчётом вложенности, поиск и счётчики товаров.
- Действия над веткой: включить, выключить, изменить всё сразу, скопировать.
- Объединение категорий, перенос товаров мышью.
- Списки пустых, выключенных и незаполненных категорий.
Заказы
- Вкладки по статусам, быстрый просмотр сбоку, фильтры и сохранённые виды.
- Массовая смена статуса с уведомлением покупателя. Статус меняется штатным способом OpenCart, поэтому срабатывают остатки, письма и баллы.
- Трек-номера и вставка треков списком, печать счетов и накладных.
Импорт и экспорт
CSV и Excel с сопоставлением колонок и предпросмотром. Обновление цен и остатков по артикулу, создание новых товаров, откат импорта целиком.
Здоровье каталога
Товары без фото, описания, категории и SEO URL, нулевые цены, дубли, битые картинки, истёкшие акции. Каждая строка открывает готовый отфильтрованный список для массовой правки.
————————————————————————————————
Технические детали
| Проверено | OpenCart 3.0.3.7, PHP 7.4 и 8.1, MySQL 8.4. Для ocStore 3 поддерживаются его поля meta_h1, main_category и noindex, схема проверена на ocStore 3.0.4.1. |
| Требования | PHP 7.3–8.1 с расширениями curl и openssl, для Excel также zip. Запись в system/storage/cache. ionCube не нужен, CRON не нужен. |
| Файлы ядра | Не изменяются. Модуль подключается событиями OpenCart, OCMOD-правок нет. |
| Шаблоны | Работает в админке, поэтому шаблон витрины значения не имеет: Unishop, Mango, Prostore и другие на него не влияют. Модули, заменяющие админку целиком, не проверялись. |
| Simple | Оформление заказа модуль не затрагивает. Работа с заказами из Simple отдельно не проверялась. |
| Языки | Русский, украинский, английский. |
| Права | Настраиваются группами пользователей, доступ к заказам проверяется отдельно. |
————————————————————————————————
Частые вопросы
Можно ли отменить массовое изменение?
Да. Откройте журнал и нажмите «Откатить». Вернётся всё, что изменила операция. Если значение после этого успел изменить кто-то другой, модуль покажет это.
Нужна ли резервная копия, если есть откат?
Да. Журнал отменяет операции самого модуля, но не заменяет резервные копии базы.
Поддерживаются ли поля других модулей?
Да. В настройках выберите таблицу и колонку. Поле появится в таблице, карточке, фильтрах, массовых действиях и журнале, для товаров и для категорий.
Узнают ли другие модули о правках, например обмен с 1С?
В настройках можно включить оповещение: модуль сообщит о сохранении товара и категории через штатные события OpenCart.
Замедлит ли модуль сайт?
Витрину модуль не нагружает: он работает только в админке.
Что будет после удаления?
Пункт меню исчезнет, журнал и настройки останутся на случай повторной установки. Для полной очистки в комплекте есть SQL-файл.