2.4 KiB
2.4 KiB
F-114 — Import legacy OpenCart categories into the catalog without duplicates
Backend
src/modules/categories/legacy/legacy-catalog.ts: helper puro con la lista de las 76 entradas legacy, su clasificación (categoría / marca / excluido) y elparentSlugpara cada categoría. ExponenormalizeName,decodeHtmlEntities,slugify,uniqueSlugybuildImportPlan(existingCategories, existingBrands, existingSlugs).src/modules/categories/tests/legacy-catalog.test.ts: 15 tests cubriendo normalización, slugify, uniqueSlug, dedup, mapeo, exclusión y clasificación.scripts/seed-legacy-categories.mjs: CLI idempotente que carga el helper, sondea la base, genera el plan y aplica inserts conON CONFLICT (slug) DO NOTHING. Acepta--dry-run.
Mapping (resumen)
- Marcas (32): PROVEEDORES, BIOSPIRIT, SALUD VIVA, GLOBO NATURA, SOLGAR, VITAFOOD, EL GRANERO INTEGRAL, A.VOGEL, BIOCOP, QBIO, LA FINESTRA SUL CIELO, CADIDIET, COMPLEMENTOS Y NUTRICIÓN, CHISVERT, SUPERFOOD, DIETISUR, GOURMET BIO, NATURALMENTE MEDITERRANEO, NATURAL, GOURMET CASH, NUTRINAT, COMERCIAL GARZA, ARTESANÍA AGRÍCOLA, DAS BROT, DULCES LISSEN, LEMONPHARMA, VEKINE, NAAY BOTANICALS, LAMBERTS, YODETIENDAS, NATURCOSMETIKA, TONGIL.
- Categorías (39): HERBALIST, FOOD, COSMETICS, DIET AND NUTRITION, NUTS & SEEDS, BREAD & PASTRIES, LEGUMES, FLOUR & CEREALS, PASTA & RICE, CREAMS & JAMS, FRUTAS Y VERDURAS, SUGAR & SWEETENERS, BEVERAGES, OIL AND VINEGAR, RAW FOOD, HIERBAS MEDICINALES, SUPLEMENTS, OILS & EXTRACTS, FACIAL, CORPORAL, ASEO PERSONAL, HOME, MACROBIOTIC, SNACKS, BOOKS, FRESH PRODUCTS, WINE, BEER, VEGETAL MILKS, JUICES, SODAS, CHILDREN, BABYS & KIDS, TEA & INFUSIONS, SPICE & CONDIMENTS, CHOCOLATE & SWEETS, CLEANING, PROVEEDORES, GRANOLA.
- Excluidos (5): 00 - SIN CODIGO, 01 - PRODUCTOS DESCATALOGADOS, 02 - PRODUCTOS RAPIDOS, SUPLEMENTS (id 96 — duplicado del 85), PROVEEDORES no-marca.
Evidencia
npm run typecheckOK.npm test: 160 passed / 0 failed (15 nuevos del helper).npm run build(backend) OK.node scripts/seed-legacy-categories.mjs --dry-run: plan de 39 categorías + 32 marcas.node scripts/seed-legacy-categories.mjs: ejecuta inserts. Re-ejecutado: 0 inserts (idempotente).- DB antes: 12 categorías, 5 marcas. Después: 51 categorías (+39), 37 marcas (+32).
- Sub-árbol ALIMENTACIÓN antes: 3 hijos. Ahora: 24 (incluye BEVERAGES, BEER, WINE, JUICES, etc.).