Appearance
Category Reorganization: Avito Hierarchy Import
Date: 2026-02-25 Status: Approved
Goal
Replace current flat 2-level part categories (12 parents + 82 children) with the full Avito "zapchasti" hierarchy from docs/addons/avito_zapchasti_categories.json. Preserve existing child categories under matched parents. Update all product references.
Current State (dev DB)
- 12 parent categories (
category_type=part,parent_id=NULL) - 82 child categories under those parents
- 40 children have products assigned (~50 test products)
- Tables affected:
categories,product_categories,products.primary_category_id
Current Parents (all match Avito "Для автомобилей" children)
| id | name |
|---|---|
| 1 | Двигатель |
| 12 | Трансмиссия и привод |
| 21 | Подвеска |
| 30 | Тормозная система |
| 37 | Электрооборудование |
| 46 | Кузов |
| 56 | Автосвет |
| 62 | Салон |
| 71 | Система охлаждения |
| 77 | Выхлопная система |
| 83 | Рулевое управление |
| 89 | Топливная система |
Target State
Full Avito hierarchy (up to 4 levels):
L1: Запчасти, Аксессуары, GPS-навигаторы, Масла и автохимия,
Аудио- и видеотехника, Багажники и фаркопы, Инструменты,
Прицепы, Противоугонные устройства, Шины/диски/колёса, Экипировка
L2 (under Запчасти): Для автомобилей, Для мототехники,
Для водного транспорта, Для грузовиков и спецтехники
L3 (under Для автомобилей): Двигатель*, Кузов*, Подвеска*,
Тормозная система*, Электрооборудование*, Автосвет*,
Салон*, Система охлаждения*, Выхлопная система*,
Рулевое управление*, Топливная система*,
Трансмиссия и привод*, Стёкла, Автомобиль на запчасти, Аккумуляторы
L4 (under matched parents): Existing 82 child categories preserved
* = matched with current parent, children migratedAlgorithm
- Insert full Avito hierarchy as new
category_type=partrecords - Match 12 current parents by name to Avito "Для автомобилей" children
- Update 82 children: set
parent_idto new Avito-matched parent ID - Update
product_categories.category_idvia old→new mapping - Update
products.primary_category_idvia old→new mapping - Delete 12 old parent records (replaced by Avito nodes)
- Update
SeedReferenceDataCommandto match new structure
Implementation
Single Doctrine migration + updated seed command.
Name Matching Map
| Current name | Avito path |
|---|---|
| Двигатель | Запчасти > Для автомобилей > Двигатель |
| Трансмиссия и привод | Запчасти > Для автомобилей > Трансмиссия и привод |
| Подвеска | Запчасти > Для автомобилей > Подвеска |
| Тормозная система | Запчасти > Для автомобилей > Тормозная система |
| Электрооборудование | Запчасти > Для автомобилей > Электрооборудование |
| Кузов | Запчасти > Для автомобилей > Кузов |
| Автосвет | Запчасти > Для автомобилей > Автосвет |
| Салон | Запчасти > Для автомобилей > Салон |
| Система охлаждения | Запчасти > Для автомобилей > Система охлаждения |
| Выхлопная система | Запчасти > Для автомобилей > Выхлопная система |
| Рулевое управление | Запчасти > Для автомобилей > Рулевое управление |
| Топливная система | Запчасти > Для автомобилей > Топливная система |