НАЗНАЧЕНИЕ
Специализированный плагин импорта и экспорта каталога ZipTrading в формате XLSX. Добавляет в административный каталог товаров отдельные разделы «Экспорт» и «Импорт» для типа записи zt_product.
ЭКСПОРТ XLSX
- Позволяет выбирать, какие категории и товары выгружать.
- Поддерживает выбор статусов товаров.
- Можно выбрать отдельные поля вместо фиксированного полного набора.
- Можно отдельно выбирать технические характеристики; доступные характеристики фильтруются по выбранным категориям с учётом общих/наследуемых параметров.
- Поддерживаются товары без категории.
- Два режима структуры XLSX:
- «По листам» — основные категории первого уровня выгружаются на отдельные листы;
- «Одним листом» — выбранные товары объединяются на листе «Все товары».
- Есть режим выгрузки/пропуска полностью пустых выбранных столбцов.
- Экспорт читает данные каждого товара в единый снимок, после чего XLSX собирается из временных данных пакетно.
- В файл могут попадать WordPress ID, основные поля записи, данные товара, артикулы, цены, наличие, бренд, категории, фотографии, галерея, сертификаты, файлы, связанные товары, SEO и характеристики — в зависимости от выбранных полей.
- Внутри XLSX создаётся скрытый лист _meta с технической картой полей, характеристик, категорий, листов и параметров экспорта.
- Готовые XLSX сохраняются постоянно, отображаются в истории и имеют прямые ссылки на скачивание.
- История поддерживает одиночное и массовое удаление файлов.
- Готовый XLSX проходит проверку безопасности: отклоняются формулы, макросы, ActiveX, OLE, внешние Excel-связи и запрещённые relationship.
ИМПОРТ XLSX
- Перед фактическим импортом выполняется анализ файла и обязательное сопоставление столбцов.
- Известные столбцы распознаются автоматически; неизвестные требуют ручного выбора поля или явного «Не импортировать».
- Для XLSX, созданных этим же экспортёром, технические ключи читаются из скрытого _meta отдельно по листу и позиции колонки.
- Это позволяет различать характеристики с одинаковыми видимыми названиями.
- Для многолистового файла сопоставление показывается по отдельным вкладкам листов.
- Главный идентификатор товара — WordPress ID.
- Если товар с таким ID существует, обновляется он.
- Если ID свободен, новый товар может быть создан с этим ID через штатный import_id WordPress.
- Если ID занят записью другого типа, чужая запись не изменяется; товар создаётся с другим свободным ID.
- Если WordPress ID пуст, создаётся новый товар с автоматическим ID.
- Импортируются только столбцы, присутствующие в XLSX. Пустая ячейка очищает соответствующее импортируемое поле; отсутствующий столбец не затрагивает данные.
- Поддерживаются название, slug, статус, HTML-описания, артикулы, цены, наличие, бренд, категории, SEO, изображения, файлы, сертификаты, связанные товары и технические характеристики.
- Категории/бренд ищутся по ID, затем по slug/названию; отсутствующая иерархия категорий может восстанавливаться по полному пути.
- Изображения и сертификаты привязываются к существующим вложениям WordPress по URL без обязательной повторной загрузки.
- Повторяющиеся WordPress ID на разных листах импортируются один раз.
- Импорт выполняется пакетами через AJAX с отображением прогресса и возможностью безопасного прерывания.
- XLSX с формулами, макросами, ActiveX, OLE/вложениями или внешними Excel-связями отклоняются до импорта.
РЕЗЕРВНОЕ КОПИРОВАНИЕ В ЭТОЙ ВЕРСИИ
В версии из предоставленного бэкапа перед изменением первого товара импортёр автоматически создаёт обязательный ПОЛНЫЙ дамп текущей базы данных.
- Импорт не начинает изменять товары, пока дамп не завершён.
- Для дампа вычисляется и проверяется SHA-256.
- Незавершённые копии очищаются и не попадают в историю.
- Дампы сохраняются в защищённом каталоге и не удаляются обычной очисткой временных заданий.
- В административной истории доступны скачивание, восстановление, одиночное и массовое удаление.
- Восстановление выполняется пакетами через AJAX, чтобы уменьшить риск таймаута.
ВАЖНО
Этот текст описывает именно код версии 0.3.10 из предоставленного бэкапа. В нём резервная копия перед импортом является полным обязательным дампом БД.
ХРАНЕНИЕ И БЕЗОПАСНОСТЬ
- Временные задания хранятся в защищённом системном каталоге.
- Постоянные экспортированные XLSX хранятся отдельно от временных заданий.
- Каталоги экспорта и резервных копий получают защитные серверные файлы/правила.
- Имена листов нормализуются под ограничения Excel, включая 31 Unicode-символ.
- Прямые ссылки на XLSX принудительно формируются через HTTPS.
ТЕХНИЧЕСКИЕ ЗАВИСИМОСТИ
Плагин рассчитан на структуру каталога ZipTrading и тип записи zt_product. Для работы с импортом используется собственный класс ZT_XLSX_Importer.