Incident — Samsung Smartphone Hard Lock¶
Symptôme¶
Des offres Samsung Galaxy étaient reconnues comme smartphones par le classifieur probable, puis rejetées par la projection finale :
spec_type_probable = smartphone
spec_type_final = unknown
vertical_id = unknown
status = review
reject_code = unknown_vertical
Aucune spécification smartphone n’était alors générée pour ces offres.
Cause¶
Dans :
plugins/ccx-feeds-industrial/includes/pipeline/90-offers-norm.php
la règle :
CCX_SMARTPHONE_HARD_LOCK_V1
contenait un comportement de repli qui remplaçait une classification smartphone déjà établie par unknown lorsque les conditions spécifiques du hard lock ne correspondaient pas.
Le comportement concernait les calculs de :
vertical_id;spec_type_final.
Correctif¶
Dans les deux branches concernées :
- ELSE 'unknown'
+ ELSE 'smartphone'
Le hard lock conserve ainsi la verticale déjà reconnue au lieu de dégrader l’offre en unknown.
Validation¶
Validation syntaxique :
php -l plugins/ccx-feeds-industrial/includes/pipeline/90-offers-norm.php
Reconstruction du flux Samsung :
docker exec -it ccx-wordpress php \
/var/www/html/wp-content/plugins/ccx-feeds-industrial/includes/pipeline/90-offers-norm.php \
samsung
Après reconstruction, 71 offres Galaxy observées présentaient :
vertical_id = smartphone
spec_type_final = smartphone
status = ok
Impact¶
- restauration de l’éligibilité des offres Samsung Galaxy ;
- restauration de la construction des modèles smartphone ;
- restauration de la génération des spécifications ;
- disparition du faux rejet
unknown_verticalpour ces offres.
Prévention¶
Toute règle de verrouillage de verticale doit respecter ce principe :
une règle spécialisée ne doit pas dégrader une classification probable cohérente vers
unknownsans conflit explicite et traçable.
Ajouter des tests de non-régression couvrant au minimum :
- smartphone reconnu + catégorie compatible ;
- smartphone reconnu + catégorie marchande incomplète ;
- véritable accessoire ;
- véritable conflit de verticale.