# Higiene del catálogo — Bicicletas Maino

Última actualización: 2026-08-11

Barrido sistemático de duplicados cruzando tres señales: **hash sha1 de imagen**, **SKU repetido** y
**similitud de título** por palabras significativas. 37 de 169 productos resultaron implicados en algo.

## Hallazgos

### 1 · Foto de otra marca (crítico)
La ficha **Zapatillas Shimano RC3 SH-RC300 Black** incluye una foto de una zapatilla **Giro** — se lee
«GIRO» impreso en la suela. El mismo archivo está en la ficha de las Giro Apeckx II Black Red, que es su
dueña legítima. Verificado por sha1 y visualmente. Hay que eliminar esa imagen de la ficha de Shimano.

### 2 · Duplicados reales — 9 fichas que son 4 productos
- **CS-HG61-9 11-28T ×3.** Confirmado contra catálogo Shimano: no existe variante fuera de la serie Deore.
- **Campagnolo Veloce 12-23T ×2.** Mismo código CS9-VLX23. «Ultra-Drive» no es variante, es la construcción
  de todos los Veloce de 10v.
- **Trek Marlin 5 Gen 3 ×2** y **Trek Émonda SL6 ×2.** Título idéntico, misma foto, ninguna con SKU.
  Puede que sean dos tallas: hay que revisar en bodega.

### 3 · Colores como productos separados con el MISMO SKU (6 fichas)
`APECKX-II`, `FLR-F22-II` y `F-65 III` están cada uno en dos fichas que solo cambian de color.
**Con SKU repetido el inventario no distingue cuál se vendió.** Deben modelarse como variantes —
la colección `variants` de PocketBase ya existe y es el mismo patrón que se usó para las tallas.

### 4 · Misma foto para productos con specs distintas (17 productos, 7 grupos)
Los tres CS-R7000 (11-28, 11-32, 12-25), los dos CS-HG500-10, los dos CS-HG400-9, tres CS-HG50-9,
los dos CS-9000, los dos adaptadores SRAM (68/73 vs 83 mm) y dos SunRace de gama distinta.

No son duplicados: son fotos de catálogo reutilizadas. Pero **el comprador no ve qué está comprando**, y
entre un 11-28 y un 11-32 la diferencia se nota a simple vista y decide la compra.

## Error propio detectado y corregido
El mismo barrido destapó que **al reescribir los títulos había perdido el color en seis productos**,
dejando pares con nombre idéntico: dos PD-5700, dos PD-R550 y dos SH-RC300. Ya corregido —
`scripts/fix_variantes.py` restaura la variante desde el título original.

Lección para el generador de fichas: **al normalizar un título nunca se descarta el sufijo de variante**
(color, talla, acabado), porque es lo único que distingue dos SKU.

## Entregado
`higiene_catalogo.html` · `out/duplicados.json` · `scripts/duplicados.py` (barrido reutilizable)
