SPB Git forge

spb/food-ka

Public

Food-Ka — agrégateur de produits d'épicerie du Québec — www.food-ka.com

55commits 1branches 0releases
10.2 MBsize
maindefault branch
9 days agolast push
Python 53.9% TypeScript 24% CSS 14.9% JavaScript 5.8% HTML 1.4%
5.0 KB

# Famille html — Catalogues HTML rendus serveur ou API directe — requests

Généré automatiquement par scripts/gen_connector_docs.py — ne pas éditer à la main.

# Vue d'ensemble

  • Sources membres : 6
  • Produits actifs (BD) : 5 177

# Sources membres (BD live)

Source Nom Tech Région Produits actifs En rabais Dernier sync Statut
aubut Aubut Site sur mesure — HTML avec prix sans connexion Montréal et Laval 476 35 2026-08-18 02:42 OK (476 trouvés)
avril Avril Supermarché Santé Magento 2 — prix rendus serveur Québec, Montréal, Estrie… 396 84 2026-08-18 02:42 OK (376 trouvés)
maturin Maturin SSR sur mesure — HTML avec prix Tout le Québec (producteurs d'ici) 393 0 2026-08-18 02:56 OK (381 trouvés)
mayrand Mayrand HubSpot CMS — HTML statique avec prix Grand Montréal 450 55 2026-08-18 03:01 OK (450 trouvés)
saq SAQ (Société des alcools du Québec) Magento 2 + Adobe Live Search — API GraphQL catalog-service.adobe.io en direct (clé publique du storefront, sans anti-bot) Tout le Québec 3282 22 2026-08-18 05:56 OK (3282 trouvés)
tau Marché Tau k-eCommerce — fiches produit rendues serveur (sitemap) Grand Montréal 180 0 2026-08-18 03:19 OK (180 trouvés)

# Complétude des champs (produits actifs, N = 5 177)

Champ % rempli
Prix 100.0 %
Prix régulier 3.8 %
Format (size_label) 99.3 %
Prix unitaire 97.8 %
Marque 97.4 %
Images 93.6 %
Nutrition OFF (details.off) 0.0 %

# Gotchas

  • Sites sans anti-bot : parsing HTML/sitemap direct (HubSpot, Magento 2, k-eCommerce, SSR maison).
  • SAQ : API GraphQL Adobe Live Search (catalog-service.adobe.io) appelée en direct avec la clé publique du storefront — tout est dans la réponse liste, aucune page détail ; catégorie unique « Alcool », exclue du matching (matching.EXCLUDED_SOURCES).

# Mécanique par source (en-têtes des modules)

# aubut — Aubut

Plafonds/env : —

Site maison (Vue.js) : les grilles de catégories (/produits/?p=N, 32 tuiles/page) embarquent un composant dont l'attribut :product contient TOUT le produit en JSON (prix, format, solde, inventaire, image) — parsing trivial et fiable.

# avril — Avril Supermarché Santé

Plafonds/env : —

Magento 2 (thème Hyvä/Alpine) : les sous-catégories d'épicerie (/fr/epicerie/.html?p=N, 24 cartes/page) sont rendues côté serveur. Cloudflare en façade mais le GET direct passe ; repli Scrapfly (ASP) si 403. NB : dans le balisage Avril, .price = prix courant et .special-price = prix régulier barré (nommage inversé).

# maturin — Maturin

Plafonds/env : —

Site maison rendu côté serveur : /categorie/?page=N (24 cartes/page, défilement infini côté client = simple paramètre page). Cartes .masonry-product : titre, producteur (marque), prix « À partir de X$ / fmt », image /image/crop/....

# mayrand — Mayrand

Plafonds/env : —

HubSpot CMS : chaque page de rayon (/fr/nos-produits/) rend TOUS les produits côté serveur (la pagination est purement JavaScript) — un seul GET par rayon suffit. Cartes : .product-card-wrapper (prix, format, image, SKU).

# saq — SAQ (Société des alcools du Québec)

Plafonds/env : FOODKA_SAQ_MAX_PRODUCTS

Prix officiels UNIFORMES dans toute la province (monopole d'État) : une seule « succursale » suffit. Magento 2 + Adobe Live Search : la grille produit est montée côté client, mais l'API GraphQL du catalogue (catalog-service.adobe.io/graphql) répond en DIRECT — clé publique du storefront (X-Api-Key: search_gql + Magento-Environment-Id lu sur la page). productSearch paginé 200/page, TOUT dans la réponse liste (prix final et régulier, format ml, pays, cépages, pastille de goût, dispo en ligne, image) : zéro Scrapfly, zéro page détail. ~22 requêtes/sync. Cap ~3 300 produits : premières pages de chaque catégorie dans l'ordre de pertinence du site (produits mis en avant = les plus populaires) ; le vin (20 000+ réfs) et les spiritueux (3 300) sont plafonnés, les petites catégories (bière, cidre…) sont couvertes en entier. Catégorie canonique unique « Alcool » (exclue du matching inter-bannières — voir matching.EXCLUDED_SOURCES).

# tau — Marché Tau

Plafonds/env : —

k-eCommerce : les grilles de catégories sont chargées en AJAX (aucun prix dans le HTML), mais les FICHES produit sont rendues côté serveur (« 16,99$ CAD », fil d'Ariane, marque, image). Stratégie : sitemap kSitemap-1.xml (~14 000 URLs), filtrage des slugs produit (suffixe de format « -227gr »), échantillon réparti sur tout le catalogue, puis une requête par fiche (throttling de BaseConnector).

# Erreurs de synchronisation récentes

Aucune erreur dans le sync_log pour les sources de cette famille.