Aller au contenu

Incident — Modèles sans projection de spécifications

Constat

Après reconstruction de la verticale smartphone, les projections observées étaient :

ccx_product_models_v1 : 11 modèles
ccx_product_specs_v1  : 10 lignes

Le modèle sans spécification identifié était :

Samsung Galaxy A16
model_key: smartphone|samsung|galaxy a16
offers_count: 2

Interprétation

Un modèle présent dans ccx_product_models_v1 mais absent de ccx_product_specs_v1 n’implique pas automatiquement un défaut de ccx_product_specs_build_row().

La reconstruction des spécifications repart des offres normalisées actuelles et applique les critères suivants :

vertical_id = <verticale>
AND review_required = 0
AND status = 'ok'
AND COALESCE(brand_norm, '') <> ''
AND COALESCE(title_clean, '') <> ''

Un modèle peut donc rester sans spécification lorsque :

  • ses offres ne sont plus présentes dans ccx_offers_norm_v2 ;
  • ses offres sont présentes sous une autre normalisation ;
  • elles sont en revue ou rejetées ;
  • la projection des modèles est plus ancienne que les offres normalisées ;
  • les regroupements d’identité ont changé ;
  • la reconstruction des modèles n’a pas précédé celle des specs.

Requête de détection

SELECT m.*
FROM wp_3888956ccx_product_models_v1 m
LEFT JOIN wp_3888956ccx_product_specs_v1 s
  ON s.model_key = m.model_key
 AND s.vertical_id = m.vertical_id
WHERE m.vertical_id = 'smartphone'
  AND s.model_key IS NULL;

Recherche correcte dans les offres

ccx_offers_norm_v2 ne contient pas de colonne model_key. La recherche doit utiliser les colonnes réelles :

SELECT
  offer_id,
  source_feed,
  brand_norm,
  model_norm,
  title_clean,
  vertical_id,
  spec_type_final,
  review_required,
  status,
  reject_code
FROM wp_3888956ccx_offers_norm_v2
WHERE title_clean LIKE '%Galaxy A16%'
   OR model_norm LIKE '%Galaxy A16%';

Procédure recommandée

  1. confirmer le schéma avec SHOW COLUMNS ;
  2. rechercher les offres sans filtrer immédiatement sur source_feed ;
  3. contrôler leur éligibilité ;
  4. reconstruire les modèles si la projection est ancienne ;
  5. reconstruire les spécifications ;
  6. comparer à nouveau les deux projections ;
  7. ne supprimer un modèle qu’après confirmation qu’il est réellement orphelin.

Statut

Le cas Galaxy A16 reste un point d’investigation tant que les offres normalisées correspondantes et leur état exact n’ont pas été confirmés avec les colonnes réelles du schéma.