Импорт каталога из iiko
Импорт — основная функция Woo2iiko. Плагин выгружает номенклатуру из iiko и создаёт товары в WooCommerce.
Источники номенклатуры
iiko может отдавать меню двумя способами (настройка menu_source):
| Источник | Настройка | Описание |
|---|---|---|
| Office nomenclature | menu_source = office | Номенклатура организации (по умолчанию). |
| External menu | menu_source = external | Внешнее меню iiko. Нормализуется в формат office через ExternalMenuNormalizer. |
Режимы импорта
Smart-импорт (cron)
Включён по расписанию iiko_import_products (интервал iiko_import_time, по умолчанию 5 минут):
- Перед импортом сверяется revision номенклатуры.
- Если revision не изменился — импорт пропускается (экономия запросов).
- Если изменился — импортируются только изменения.
Smart-импорт для актуальности
После первичного импорта оставьте smart-импорт включённым — каталог будет автоматически актуальным.
Пошаговый импорт (mode=default)
- Импортирует по 1 товару за AJAX-запрос.
- Continuation через счётчик
import_counter. - Подходит для небольших каталогов и отладки.
Фоновый импорт (mode=background)
- Ставит товары в очередь
BackgroundImport. - Обрабатывает в фоне через WP Background Processing.
- Рекомендуется для больших каталогов — нет таймаутов PHP.
Полный импорт (run_full_import)
- Обновляет номенклатуру и ставит ВСЕ товары в очередь.
- Используется для полной пересборки каталога.
Что происходит при импорте одного товара
- Получение данных товара из iiko (через
Api::get_nomenclature()). - Поиск существующего товара WC (по
iiko_id, по SKU, или по title еслиcheck_product_by_title = yes). - Создание или обновление товара:
- Название, описание (полное/краткое).
- Цена, регулярная цена.
- Категория (привязка
product_cat_iiko). - Изображения (через
ImageManager, с дедупликацией по хешу). - Модификаторы (см. Модификаторы).
- Meta
iiko_id,allow_terminalsи др.
- Создание вариаций (размеров) если не отключено (
disable_variations). - Сохранение meta iiko (
update_meta).
Настройки импорта
Полный список настроек импорта
См. Справочник настроек импорта. Здесь — основные.
| Настройка | Назначение | По умолчанию |
|---|---|---|
import_time | Интервал smart-импорта (cron) | 5min |
types_for_download | Типы продуктов для импорта | ['service','dish','good'] |
menu_source | Источник меню | office |
disable_variations | Отключить вариации (размеры) | no |
update_only_price | Обновлять только цену | no |
update_meta | Обновлять iiko meta | yes |
check_product_by_title | Искать дубликаты по title | no |
no_import_update | Не обновлять существующие товары | no |
last_img_only | Только последнее изображение | yes |
exclude_group_mod | Исключить модификатор группы | '' (выкл) |
Фильтрация модификаторов
Модуль ModifiersFilter позволяет исключить один системный модификатор (например, «Стандартная порция») из всех товаров при импорте:
- Настройка
exclude_group_mod— ID модификатора. - Пусто = фильтрация отключена.
Дедупликация изображений
ImageManager дедуплицирует изображения по хешу:
- Если изображение с таким хешем уже есть в медиатеке — оно переиспользуется.
- При
last_img_only = yesсохраняется только последнее изображение из списка.
WP-CLI для аудита изображений
bash
wp woo2iiko check_image_hashes # проверить хеши
wp woo2iiko cleanup_images # удалить потерянные изображенияСтатус импорта
- Виджет ImportWidget на дашборде — последний запуск, прогресс.
- Счётчик завершённых импортов:
counter_uploads. - Счётчик текущего шага:
import_counter. - Логи: см. Логи.
Расширение (для разработчиков)
Импорт эмитит фильтры и действия для кастомизации:
iiko_product— модификация объекта товара (используетModifiersFilter).iiko_product_args— аргументы создания товара WC.iiko_create_wc_product— после создания товара.iiko_variation_args— аргументы вариации.iiko_img_upload— загрузка изображения.iiko_after_product_import— после импорта товара (используетWpML).
Типичные проблемы
| Симптом | Решение |
|---|---|
| Импорт зависает | Используйте фоновый режим; увеличьте memory_limit. |
| Товары дублируются | Включите check_product_by_title или проверьте SKU/iiko_id. |
| Изображения не грузятся | Проверьте доступ к URL изображений iiko; права на uploads. |
| Smart-импорт не обновляет | Проверьте, что cron работает (см. Фоновые процессы). |