Настройки импорта категорий

Импорт категорий позволяет автоматически создавать иерархическую структуру категорий на основе данных из прайс-листа. Категории могут быть в разных форматах: отдельные столбцы для каждого уровня, одна ячейка с разделителями, отдельные строки перед товарами или вложенная структура с отступами. Правильно настроенные категории позволяют группировать товары, упрощают навигацию и поиск. Следует учесть, что категории в виде группировки эксель поддерживаются частично, полное дерево категорий получено не будет.

Форматы импорта категорий

Формат 1. Отдельные столбцы для категорий (columns)

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

Пример файла:

Категория1;Категория2;Категория3;Артикул;Товар;Цена
Электроинструмент;Дрели;Сетевые;12345;Дрель Bosch GSB 13 RE;4500
Электроинструмент;Дрели;Аккумуляторные;12346;Дрель Makita 18V;6500
Ручной инструмент;Отвертки;Крестовые;54321;Отвертка Kraftool;350
Ручной инструмент;Отвертки;Плоские;54322;Отвертка Stanley;400
Садовая техника;Газонокосилки;;67890;Газонокосилка Bosch;12000

Настройки:

формат = отдельные столбцы
номера столбцов с категориями = [1, 2, 3]
исключаемые столбцы = [] (не исключаем никакие столбцы)

Результат: Создастся иерархия: Электроинструмент → Дрели → Сетевые/Аккумуляторные, Ручной инструмент → Отвертки → Крестовые/Плоские, Садовая техника → Газонокосилки (без третьего уровня).

Формат 2. Одна ячейка с разделителями

Используется когда все уровни категорий находятся в одной ячейке с разделителем.

Пример файла:

Категория;Артикул;Товар;Цена
Электроинструмент > Дрели > Сетевые;12345;Дрель Bosch GSB 13 RE;4500
Электроинструмент > Дрели > Аккумуляторные;12346;Дрель Makita 18V;6500
Ручной инструмент / Отвертки / Крестовые;54321;Отвертка Kraftool;350
Садовая техника - Газонокосилки;67890;Газонокосилка Bosch;12000

Настройки:

формат = одна ячейка

столбец с категориями = [1]

разделитель = " > " (разделитель уровней, можно указать несколько вариантов: " > ", "/", "-")

Результат: Система разделит строку по разделителю и создаст иерархию соответствующей глубины. Например "Электроинструмент > Дрели > Сетевые" создаст три уровня категорий.

Формат 3. Строки с категориями перед товарами

Используется когда категории выводятся отдельными строками перед товарами, часто с визуальным выделением.

Пример файла:

Электроинструмент
 Дрели
Сетевые
12345;Дрель Bosch GSB 13 RE;4500
12346;Дрель Makita HR2470;6500
Аккумуляторные
12347;Дрель Makita 18V;8900
Ручной инструмент
 Отвертки
Крестовые
54321;Отвертка Kraftool;350
54322;Отвертка Stanley;400

Настройки:

формат = строки

столбец где могут быть категории = [1]

столбцы которые не учитывать при определении категорий = []

стиль для распознавания строк категорий = "font-weight: bold"

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

Формат 4. Не импортировать категории
Используется когда категории не нужны или будут проставлены вручную.

Настройки: формат = нет

Дополнительные настройки

Исключенные столбцы

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

Пример: Исключенные столбцы = [1] (первый столбец с артикулом игнорируется при поиске категорий)

Разделитель категорий

Для формата "single_cell" указывает символ или строку, которой разделены уровни категорий. Можно указать несколько вариантов через пробел, система попробует все.

Примеры разделителей:

" > " (Электроинструмент > Дрели > Сетевые)

"/" (Электроинструмент/Дрели/Сетевые)

"-" (Электроинструмент-Дрели-Сетевые)

"|" (Электроинструмент|Дрели|Сетевые)

" → " (Электроинструмент → Дрели → Сетевые)

Стиль строки категории

Для формата "строки" можно указать CSS-подобный стиль, который помогает определить строки категорий. Например, если в Excel строки категорий выделены жирным шрифтом.

Пример: Стиль строки категорий = "font-weight: bold" или "font-weight: 700"

Полные примеры для разных ситуаций

Пример 1. Три уровня категорий

Структура файла:

Категория_1;Категория_2;Категория_3;Артикул;Наименование;Цена
Ноутбуки;Игровые;ASUS;NB001;Ноутбук ASUS ROG Strix;120000
Ноутбуки;Игровые;MSI;NB002;Ноутбук MSI Raider;150000
Ноутбуки;Офисные;HP;NB003;Ноутбук HP ProBook;80000
Смартфоны;Android;Samsung;PH001;Samsung Galaxy S23;90000
Смартфоны;iPhone;Apple;PH002;iPhone 15 Pro;110000
Аксессуары;Наушники;;AC001;Наушники Sony;15000

Настройки:

формат = столбцы

номера столбцов = [1, 2, 3]

исключеенные столбцы = []

Результат: Создадутся категории: Ноутбуки → Игровые → ASUS/MSI, Ноутбуки → Офисные → HP, Смартфоны → Android → Samsung, Смартфоны → iPhone → Apple, Аксессуары → Наушники (без третьего уровня).

Пример 2. Категории в одной ячейке

Структура файла:

Путь_категории;Артикул;Наименование;Цена
Строительные материалы / Сухие смеси / Штукатурка;SM001;Штукатурка гипсовая 30кг;450
Строительные материалы / Сухие смеси / Шпаклевка;SM002;Шпаклевка финишная 20кг;380
Строительные материалы / Кирпич / Облицовочный;KM001;Кирпич облицовочный красный;65
Инструмент / Электроинструмент / Перфораторы;IN001;Перфоратор Makita HR2470;9500
Инструмент / Ручной инструмент / Молотки;IN002;Молоток слесарный 500г;450

Настройки:

формат = одна ячейка

номер столбца = [1]

разделитель = " / "

Результат: Каждая строка создаст полный путь категорий. Например "Строительные материалы / Сухие смеси / Штукатурка" создаст три уровня: Строительные материалы → Сухие смеси → Штукатурка.

Пример 3. Категории отдельными строками

Структура файла:

Молочные продукты
 Сыры
Твердые сыры
001;Сыр Российский 45%;850
002;Сыр Голландский;920
Мягкие сыры
003;Сыр Моцарелла;650
004;Сыр Рикотта;580
 Молоко
005;Молоко 3.2% 1л;75
006;Молоко 2.5% 1л;70
Бакалея
 Крупы
007;Рис круглозерный 900г;120
008;Гречка ядрица 900г;110
 Макароны
009;Спагетти 500г;95
010;Рожки 500г;85

Настройки:

формат = строки

номер столбца = [1] (первый столбец содержит категории)

исключенные столбцы = [] (все столбцы учитываются)

стиль строки с категорией = "" (определяем по логике, не по стилю)

Результат: Система определит, что строки с отступами содержат только категории (нет данных в столбцах артикула, названия, цены), запомнит текущую категорию и будет применять ее к последующим товарам пока не встретит новую категорию.

Пример 4. Смешанный формат с пропусками

Структура файла:

Категория;Подкатегория;Бренд;Артикул;Наименование;Цена
Масла;Моторные;;OIL001;Масло Mobil 5W-40 4л;3500
Масла;Моторные;;OIL002;Масло Shell 5W-30 4л;3400
Масла;Трансмиссионные;;OIL003;Масло Castrol 75W-90;2800
Фильтры;Масляные;MANN;FLT001;Фильтр MANN W 712/92;450
Фильтры;Масляные;BOSCH;FLT002;Фильтр BOSCH 0986 4524;420
Фильтры;Воздушные;MANN;FLT003;Фильтр MANN C 25 113;650
Тормозная система;Колодки;;BRK001;Колодки TRW GDB1554;2500

Настройки:

формат = столбцы

номера столбцов = [1, 2] (только первые два уровня, третий столбец с брендом не включаем в категории)

Исключенные столбцы = []

Результат: Создадутся категории: Масла → Моторные, Масла → Трансмиссионные, Фильтры → Масляные, Фильтры → Воздушные, Тормозная система → Колодки. Бренд останется как поле товара, а не как уровень категории.

Пример 5. Сложная иерархия с пропущенными уровнями

Структура файла:

L1;L2;L3;Артикул;Товар
Мебель;;;F001;Стол письменный
Мебель;Стулья;;F002;Стул офисный
Мебель;Стулья;Кресла;F003;Кресло руководителя
Освещение;Люстры;;L001;Люстра хрустальная
Освещение;Светильники;Настенные;L002;Бра настенное

Настройки:

формат = столбцы

номера столбцов = [1, 2, 3]

исключенные столбцы = []

Результат:

Товар F001 попадет в категорию "Мебель" (второй и третий уровни пустые)

Товар F002 попадет в категорию "Мебель → Стулья"

Товар F003 попадет в категорию "Мебель → Стулья → Кресла"

Товар L001 попадет в категорию "Освещение → Люстры"

Товар L002 попадет в категорию "Освещение → Светильники → Настенные"

Пример 6. Использование пользовательских названий категорий

Иногда нужно переименовать категории из файла в свои названия.

Структура файла:

CatA;CatB;CatB2;Артикул;Наименование
ELEC;DRILL;CORD;12345;Дрель Bosch
ELEC;DRILL;BATT;12346;Дрель Makita
HAND;SCREW;PH;54321;Отвертка

Настройки: В данном случае нельзя переименовать на уровне категорий, но можно после импорта или через правила замены текста заменить значения в столбцах перед созданием категорий.

Правила замены текста перед импортом категорий:

Правило замены текста: source_column = 1, паттерн = "ELEC", замена = "Электроинструмент"

Правило замены текста: source_column = 1, паттерн = "HAND", замена = "Ручной инструмент"

Правило замены текста: source_column = 2, паттерн = "DRILL", замена = "Дрели"

Правило замены текста: source_column = 2, паттерн = "SCREW", замена = "Отвертки"

Правило замены текста: source_column = 3, паттерн = "CORD", замена = "Сетевые"

Правило замены текста: source_column = 3, паттерн = "BATT", замена = "Аккумуляторные"

Правило замены текста: source_column = 3, паттерн = "PH", замена = "Крестовые"

Результат: Перед созданием категорий значения заменятся, и категории создадутся уже с русскими названиями.

Особые случаи и их решения

Категории только для части товаров

Если некоторые товары не имеют категорий, система оставит поле category пустым. Можно потом вручную распределить такие товары или настроить категорию по умолчанию через дополнительные правила.

Очень глубокая иерархия (более 3 уровней)

Система поддерживает любую глубину вложенности. Для формата "columns" просто укажите все столбцы с категориями в level_columns. Для формата "single_cell" разделитель будет создавать столько уровней, сколько частей получится после разделения.

Разная глубина категорий в разных строках

Система корректно обрабатывает разную глубину. Например, одни товары могут быть в категории "Мебель", а другие в "Мебель → Стулья → Кресла". Пустые ячейки для более глубоких уровней игнорируются.

Категории и подкатегории с одинаковыми названиями

Система правильно различает категории по родителю. Например "Стулья" как корневая категория и "Стулья" как подкатегория "Мебель" будут разными категориями, потому что у них разные родители.

Импорт из YML/XML/JSON

В YML категории автоматически импортируются из раздела <categories>, в XML нужно настроить маппинг для поля category, в JSON аналогично через поле category или categoryId. Отдельная настройка импорта категорий для этих форматов обычно не требуется.