Market Mass Edit — массовое редактирование товаров модуля Market

Предоставляет удобный интерфейс для быстрого просмотра и массового редактирования товаров. Позволяет изменять заголовки, алиасы, мета-теги, категории, цены, статусы, арти

Опубликовано в: Модули и Плагины для Cotonti

Market Mass Edit — массовое редактирование товаров модуля Market 

Плагин для Cotonti v1.+ 
Предоставляет удобный интерфейс для быстрого просмотра и массового редактирования товаров. 
Позволяет изменять заголовки, алиасы, мета-теги, категории, цены, статусы, артикулы, даты и любые дополнительные поля (экстраполя) одновременно для нескольких товаров.


Оглавление

  • История создания и решаемая проблема
  • Возможности
  • Требования
  • Структура плагина
  • Установка
  • Настройка плагина в админке
  • Использование
  • Административная панель (две вкладки)
  • Подробное описание каждого файла
  • Пример использования
  • Устранение неполадок
  • Лицензия
  • Ссылки

История создания и решаемая проблема

Управление большим каталогом товаров в Cotonti требует частого обновления мета‑тегов, цен, статусов и других полей сразу у многих позиций. Штатные средства редактирования позволяют изменять только по одному товару за раз, что замедляет работу администратора.

Market Mass Edit решает эту задачу: он выводит все товары в единой таблице с фильтрацией и поиском, а затем позволяет массово вносить изменения. Интерфейс настраивается — можно скрыть ненужные колонки и сосредоточиться только на тех полях, которые требуется обновить.

Плагин работает строго через стандартное API модуля market, не нарушая целостность данных и проверки прав доступа.


Возможности

  • Две вкладки администрирования:
    • «Список товаров» — просмотр товаров с поиском и фильтрацией.
    • «Массовое редактирование» — таблица с возможностью одновременного изменения полей.
  • Мощный поиск и фильтрация:
    • Поиск по заголовку, тексту, артикулу.
    • Фильтр по точному ID товара.
    • Выбор категории через выпадающий список с поддержкой Select2 (включая вложенность).
    • Фильтр по статусу (все / на рассмотрении / опубликованы / черновики).
  • Гибкая настройка отображаемых колонок — администратор выбирает, какие поля показывать в таблице редактирования:
    • ID, Заголовок, Алиас, Meta Title, Meta Description, Категория, Цена (осн.), Цена (USD), Статус, Артикул, Обновить дату, Изменён, Удалить.
    • Отдельная опция включает/отключает экстраполя.
  • Массовое редактирование — изменения применяются только к тем полям, значения которых действительно изменились (сравнение с текущими данными), что исключает ложные обновления.
  • Массовое удаление — возможность пометить товары на удаление прямо из таблицы массового редактирования.
  • Пагинация — на обеих вкладках, с сохранением параметров фильтра при переходах.
  • Настройки плагина — количество элементов на странице.
  • Полная локализация — русский и английский языки из коробки.

Требования

  • Cotonti v1.+ (актуальная ветка)
  • Модуль market (должен быть установлен и активен)
  • PHP 8.5+
  • MySQL 8.4+
  • Права администратора для доступа к панели управления плагином.

Структура плагина

marketmassedit/
├── marketmassedit.setup.php # Регистрация плагина и описание настроек
├── marketmassedit.admin.php # Административная панель (хук tools)
├── lang/
│ ├── marketmassedit.ru.lang.php # Русский языковой файл
│ └── marketmassedit.en.lang.php # Английский языковой файл
└── tpl/
 └── marketmassedit.admin.tpl # Шаблон админ‑панели

Установка

  1. Скачайте ZIP‑архив плагина из официального репозитория.
  2. Распакуйте архив в папку plugins/ вашего сайта.
  3. Зайдите в админ‑панель Cotonti → Расширения.
  4. Найдите «Market Mass Edit» и нажмите «Установить».

Плагин сразу готов к работе — перейдите в Инструменты → Market Mass Edit.


Настройка плагина в админке

Все параметры доступны по пути Расширения → Market Mass Edit → Конфигурация.

Параметр Тип По умолчанию Описание perpage string 20 Количество товаров, отображаемых на одной странице списка/таблицы. show_id radio 1 Показывать колонку «ID». show_title radio 1 Показывать колонку «Заголовок». show_alias radio 1 Показывать колонку «Алиас». show_metatitle radio 1 Показывать колонку «Meta Title». show_metadesc radio 1 Показывать колонку «Meta Description». show_cat radio 1 Показывать колонку «Категория». show_costdflt radio 1 Показывать колонку «Цена (осн.)». show_cost_usd radio 1 Показывать колонку «Цена (USD)». show_state radio 1 Показывать колонку «Статус». show_pcod radio 1 Показывать колонку «Артикул». show_datenow radio 1 Показывать колонку «Обновить дату». show_updated radio 1 Показывать колонку «Изменён». show_delete radio 1 Показывать колонку «Удалить». show_extrafields radio 1 Показывать колонки дополнительных полей (экстраполя).

Изменение любой из этих опций мгновенно влияет на отображение таблицы массового редактирования.


Использование

Просмотр и поиск товаров

  1. Перейдите в Инструменты → Market Mass Edit.
  2. Откроется вкладка «Список товаров».
  3. Вы можете:
    • Ввести поисковый запрос в поле «Поиск».
    • Выбрать категорию из выпадающего списка.
    • Указать точный ID товара.
    • Выбрать область поиска: заголовок, заголовок+описание, артикул.
  4. Нажмите «Фильтр» — таблица обновится в соответствии с критериями.

Результаты отображаются в таблице с колонками: ID, Заголовок (ссылка на товар), Категория, Цена (осн.), Цена (USD), Статус. Предусмотрена пагинация с подсветкой найденных слов.

Массовое редактирование товаров

  1. Перейдите на вкладку «Массовое редактирование».
  2. При необходимости используйте фильтры (поиск, категория, ID, статус), чтобы сузить список товаров.
  3. Настройте видимость колонок в конфигурации плагина (см. выше) — скройте те поля, которые не собираетесь менять.
  4. Внесите изменения прямо в поля таблицы. Каждое поле можно редактировать независимо.
  5. Нажмите «Сохранить изменения».

Важно: Плагин обновляет только те поля, значение которых действительно отличается от текущего. Это экономит ресурсы и предотвращает ложные срабатывания триггеров (например, обновление даты изменения).

Массовое удаление: в столбце «Удалить» переключите радиокнопку в «Да» для товаров, которые нужно удалить. При сохранении они будут удалены через стандартную процедуру модуля market (с очисткой кеша, обработкой файлов и т.д.).


Административная панель (две вкладки)

Панель доступна через Админка → Инструменты → Market Mass Edit.

Вкладка «Список товаров»

  • Форма поиска с возможностью фильтрации по фразе, категории и ID.
  • Таблица со ссылками на товары, категориями, ценами и статусами.
  • Пагинация с сохранением параметров поиска.
  • Подсветка найденных слов в заголовках и тексте (при включённом поиске).

Вкладка «Массовое редактирование»

  • Аналогичная форма поиска и фильтрации (включая фильтр по статусу).
  • Таблица с выбранными администратором колонками.
  • Поля для редактирования: текстовые поля, выпадающие списки (категория, статус), чекбоксы, селекторы дат.
  • Экстраполя автоматически подгружаются и отображаются в соответствии с их типом.
  • Кнопка «Сохранить изменения» применяет все сделанные правки.
  • Пагинация сохраняет фильтры и номер страницы после сохранения.

Подробное описание каждого файла

marketmassedit.setup.php

Регистрирует плагин в Cotonti и описывает его настройки.

  • Секция [BEGIN_COT_EXT] содержит метаданные: код, имя, категорию, версию, зависимости (market), права доступа.
  • Секция [BEGIN_COT_EXT_CONFIG] перечисляет все параметры конфигурации с указанием порядка, типа, значения по умолчанию и описания. Эти параметры автоматически появляются в форме настроек плагина.

marketmassedit.admin.php

Главный файл, подключаемый через хук tools. Реализует всю логику админ‑панели:

  1. Подключает необходимые зависимости (marketmassedit, market).
  2. Определяет текущую вкладку и обрабатывает POST‑запросы сохранения.
  3. Вкладка «Список товаров»: формирует SQL‑запрос с динамическим WHERE в зависимости от фильтров, получает данные, строит таблицу, генерирует пагинацию, подсветку слов, передаёт переменные в шаблон.
  4. Вкладка «Массовое редактирование»:
    • При POST с a=update запускает цикл обработки: загружает текущие данные для переданных ID, сравнивает каждое поле и записывает только изменившиеся. Обрабатывает удаление через MarketControlService.
    • При обычном отображении строит таблицу, учитывая настройки видимости колонок. Для каждой колонки создаётся соответствующее поле ввода (текст, select, дата, чекбокс).
    • Поддерживает экстраполя через вызов cot_build_extrafields().

marketmassedit.functions.php

В плагине не используется отдельный файл функций. Категории отображаются стандартной функцией модуля marketcot_market_selectcat_select2(), которая поддерживает Select2 и черный список категорий, заданный в настройках модуля market.

Языковые файлы

marketmassedit.ru.lang.php и marketmassedit.en.lang.php содержат все текстовые строки интерфейса: названия плагина, вкладок, подписи полей, сообщения, описания настроек.

Шаблон marketmassedit.admin.tpl

HTML‑шаблон с блоками XTemplate, использующий Bootstrap 5 (встроен в Cotonti). Включает:

  • Переключение вкладок через nav-tabs.
  • Формы поиска с скрытыми полями для сохранения параметров админки.
  • Таблицы данных с условными блоками для каждой колонки (IF {SHOW_...}).
  • Блоки пагинации.
  • JavaScript для подсветки поисковых слов.

Пример использования

Задача: необходимо обновить цены и статус у 50 товаров из категории «Электросамокаты», а также исправить артикулы.

  1. Откройте панель «Market Mass Edit», вкладка «Массовое редактирование».
  2. В фильтре выберите категорию «Электросамокаты», статус «Все».
  3. В настройках плагина включите показ колонок «Цена (осн.)», «Цена (USD)», «Статус», «Артикул»; остальные можно временно скрыть для удобства.
  4. Внесите нужные изменения в ячейках таблицы.
  5. Нажмите «Сохранить изменения». Плагин обработает только те поля, которые были изменены, и выведет сообщение «Обновлено товаров: 50».

Устранение неполадок

  • Фильтр не находит товары. Убедитесь, что критерии поиска заданы корректно. Проверьте, не активен ли фильтр по статусу, скрывающий нужные товары.
  • После сохранения изменений не видно результата. Возможно, вы изменили поле, значение которого совпадает с текущим — в этом случае плагин специально не выполняет запрос к базе. Проверьте сообщение о количестве обновлённых записей.
  • Не отображаются экстраполя. Включите опцию «Показывать экстраполя» в настройках плагина. Убедитесь, что в модуле market действительно зарегистрированы дополнительные поля.
  • Выпадающий список категорий пуст. Проверьте права администратора на чтение категорий. Возможно, в настройках модуля market задан черный список категорий (marketblacktreecatspage), который исключает все видимые категории.
  • После фильтрации сбивается адресная строка. Используйте кнопку «Фильтр» вместо прямого ввода URL. Плагин корректно обрабатывает скрытые поля формы.
  • Некорректная работа выпадающего списка категорий (Select2).
    Выбор категорий в формах поиска и редактирования реализован через штатную функцию cot_market_selectcat_select2(), использующую библиотеку Select2, которая уже включена в Cotonti. Для корректного отображения и функционирования в теме вашей админки должны быть определены стили и скрипты, аналогичные приведённым ниже.

    Необходимые стили (добавьте в CSS вашей админ-темы):

    /* Основной контейнер для одиночного select2 (не multiple) */
    .select2-container--default .select2-selection--single {
     background-color: var(--bs-body-bg, #fff);
     border: 1px solid var(--bs-border-color, #ced4da);
     border-radius: 0.375rem;
     padding: 0.375rem 0.75rem;
     font-size: 1rem;
     line-height: 1.5;
     height: 38px;
     display: flex;
     align-items: center;
     transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    }
    .select2-container--default .select2-selection--single:focus {
     border-color: #86b7fe;
     box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
     outline: 0;
    }
    .select2-container--default .select2-selection--single .select2-selection__rendered {
     color: var(--bs-body-color, #212529);
     line-height: 1.5;
     padding-left: 0;
     padding-right: 0;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
    }
    .select2-container--default .select2-selection--single .select2-selection__arrow {
     height: 100%;
     right: 0.75rem;
    }
    .select2-container--default .select2-results__options {
     max-height: 50vh !important;
     overflow-y: auto;
     background-color: var(--bs-body-bg, #fff);
     color: var(--bs-body-color, #212529);
    }
    .select2-container--default .select2-results__option--highlighted[aria-selected] {
     background-color: var(--bs-link-hover-color, #FF5722);
     color: #fff;
    }
    .select2-container--default .select2-results__group {
     font-weight: bold;
     padding: 0.375rem 0.75rem;
     color: var(--bs-body-color, #212529);
     background-color: var(--bs-sidebar-bg, #f8f9fa);
    }
    /* Тёмная тема */
    [data-bs-theme="dark"] .select2-container--default .select2-selection--single {
     background-color: var(--bs-body-bg, #212529);
     border-color: var(--bs-sidebar-border, #444);
    }
    [data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered {
     color: var(--bs-body-color, #e9ecef);
    }
    [data-bs-theme="dark"] .select2-container--default .select2-results__options {
     background-color: var(--bs-body-bg, #212529);
     color: var(--bs-body-color, #e9ecef);
    }
    [data-bs-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected] {
     background-color: #343a40 !important;
     color: #fff;
    }
    [data-bs-theme="dark"] .select2-container--default .select2-results__group {
     color: var(--bs-body-color, #e9ecef);
    }

     

    Необходимый JavaScript (подключите в админ-теме):

    $(document).ready(function () {
     const selectName = 'c';
     const selectSelector = 'select[name="' + selectName + '"]';
     $(selectSelector).select2({
     placeholder: "---",
     width: '100%',
     templateResult: function (state) {
     if (!state.id) return state.text;
     const depth = parseInt(state.element?.dataset?.depth || '0', 10);
     const text = state.text.trim();
     const indent = '\u00A0'.repeat(depth * 3);
     return depth === 0 ? $('<span><strong>' + text + '</strong></span>') : $('<span>' + indent + text + '</span>');
     },
     templateSelection: function (state) {
     return state.id ? state.text : state.text;
     }
     });
     $(selectSelector).on('select2:select', function (e) {
     const selectedText = e.params.data.text.trim();
     const containerId = $(this).attr('name');
     const renderedSelector = '#select2-' + containerId + '-container';
     $(renderedSelector).attr('title', selectedText);
     });
     const selectedOption = $(selectSelector).find(':selected');
     if (selectedOption.length) {
     const cleanTitle = selectedOption.text().trim();
     const containerId = $(selectSelector).attr('name');
     const renderedSelector = '#select2-' + containerId + '-container';
     $(renderedSelector).attr('title', cleanTitle);
     }
    });

     

    Если после добавления стилей и скриптов список всё ещё отображается некорректно, проверьте, что в вашей админ-теме не используются другие стили для Select2, которые могут переопределять данные. Перепроверьте, что jQuery и Select2 загружаются до выполнения приведённого кода.


Лицензия

BSD. Свободное использование и модификация при сохранении авторских прав.


Ссылки

  • Официальный репозиторий GitHub
  • Страница плагина на Cotonti Marketplace
  • Поддержка на форуме
Купить Market Mass Edit — массовое редактирование товаров модуля Market по низким ценам. Интернет-магазин предлагает заказать Market Mass Edit — массовое редактирование товаров модуля Market, просмотреть полное описание, детальные характеристики, фото товара и актуальные цены со скидками


Рейтинг на основе отзывов:
Звезд получено: 0
Oтзывов всего: 0
Средняя оценка: 0
8 минут чтения
Владелец: Carbonate Sodium

Отзывы к товарам

Отзывов пока нет


Добавить в корзину

Товар без файла для загрузки

 

Обсуждение страницы в Telegram

Автор контента

webitproff

Оффлайн

webitproff

Последняя авторизация: 14.09.2026 12:32

Обо мне кратко
Поддержка и разработка веб-проектов на CMF Cotonti: приватные мессенджеры через сайт, открытые и закрытые небольшие социальные сети, торговые площадки и маркетплейсы, портал биржи фриланса и услуг, каталоги товаров оптовых поставщиков, дропшиппинг-платформы, интернет-магазины и многое другое.
Смотреть разработки и скачать
Публичное портфолио моих работ и разработок
Телеграм для сообщений
@webitproff
Телеграм-канал
@s/aBuyFILE
  • 14.09.2026 11:45
  • 14.09.2026 12:28

Витрина Market PRO

CMS, Скрипт и Движок - веб сайта онлайн-витрины, интернет магазина инфопродуктов и цифровых товаров. Разные цены в разных валютах на товар. Онлайн-оплата в криптовалюте за товары и услуги.