# Sélecteurs CSS/XPath pour AliExpress.com
# Mis à jour le 2026-01-13 après analyse du HTML réel

# ⚠️ IMPORTANT: AliExpress utilise un rendu client-side (SPA React/Vue)
# - HTTP fonctionne mais retourne un HTML minimal (75KB)
# - Playwright OBLIGATOIRE pour obtenir le contenu rendu
# - Attendre le sélecteur '.product-title' ou ajouter un délai (~3s)
# - Les données sont chargées dynamiquement via AJAX

# ⚠️ Extraction prioritaire:
# 1. Titre: h1 ou meta[property="og:title"]
# 2. Prix: Regex dans le HTML (aucun sélecteur stable)
# 3. Images: window._d_c_.DCData.imagePathList (JSON embarqué)
# 4. SKU: Depuis l'URL /item/{ID}.html

# Titre du produit
# Le h1 apparaît après chargement AJAX
title:
  - "h1"
  - "meta[property='og:title']"  # Fallback dans meta tags

# Prix principal
# ⚠️ AUCUN SÉLECTEUR STABLE - Utiliser regex sur le HTML
# Pattern: ([0-9]+[.,][0-9]{2})\s*€ ou €\s*([0-9]+[.,][0-9]{2})
price:
  - "span[class*='price']"
  - "div[class*='price']"
  - "span.product-price"
  # Ces sélecteurs ne fonctionnent PAS - prix extrait par regex

# Devise
# Toujours EUR pour fr.aliexpress.com
currency:
  - "meta[property='og:price:currency']"
  # Fallback: détecter depuis l'URL (fr = EUR)

# Images produit
# ⚠️ Les images sont dans window._d_c_.DCData.imagePathList
# Format: https://ae01.alicdn.com/kf/{hash}.jpg
images:
  - "img[alt]"
  # Extraction depuis DCData JSON plus fiable

# Catégorie / breadcrumb
category:
  - "nav[aria-label='breadcrumb'] a"
  - ".breadcrumb a"

# Caractéristiques techniques
# Peuvent être dans des onglets ou sections dépliables
specs_table:
  - "div[class*='specification']"
  - "div[class*='properties']"
  - "dl"

# SKU / référence produit
# Extraction depuis l'URL plus fiable
# URL pattern: /item/{ID}.html
# SKU = ID (10 chiffres)
sku:
  - "meta[property='product:retailer_item_id']"
  - "span[data-spm-anchor-id]"

# Stock / Disponibilité
stock_status:
  - "button[class*='add-to-cart']"
  - "button[class*='addtocart']"
  - "div[class*='availability']"

# Notes importantes:
# 1. ⚠️ Playwright OBLIGATOIRE avec wait - HTML minimal sinon
# 2. Attendre le sélecteur '.product-title' avant de parser
# 3. Prix: REGEX obligatoire - aucun sélecteur CSS stable
# 4. Images: Extraire depuis window._d_c_.DCData (JSON)
# 5. SKU: Extraire depuis URL /item/{ID}.html → ID = SKU
# 6. Devise: EUR pour France (fr.aliexpress.com)
# 7. Classes CSS générées aléatoirement (hachées) - TRÈS INSTABLES
# 8. Pas de JSON-LD schema.org disponible
# 9. Temps de chargement: ~3-5s avec Playwright + wait
