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.9 KB

# Famille flipp-proximite — Circulaires Flipp — épiceries de proximité (catalogue = circulaire)

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

# Vue d'ensemble

  • Sources membres : 23
  • Produits actifs (BD) : 2 669
  • Socle commun : foodka/connectors/_flipp.py

# Mécanique du socle (_flipp.py)

connectors/_flipp.py : socle commun des bannières « circulaire seulement » Beaucoup d'épiceries de proximité (affiliés Metro et Sobeys) n'ont aucun catalogue en ligne : leur seule donnée de prix est la circulaire hebdo, hébergée sur Flipp. Le backend Flipp (backflipp.wishabi.com) est une API JSON publique sans clé ni anti-bot :

  1. /flipp/flyers?locale=fr-ca&postal_code=… -> circulaires de la zone (filtrer côté client sur merchant_id — le paramètre d'URL ne filtre pas)
  2. /flipp/flyers/{flyer_id}?locale=fr-ca -> items avec prix Une seule circulaire provinciale par bannière par semaine (vérifié sur 4 codes postaux) : un poste montréalais suffit. Le flyer_id change chaque semaine — toujours résolu dynamiquement via l'étape 1. Les items n'ont ni SKU ni catégorie ni unité (« /lb ») : external_id = slug stable marque+nom+format (continuité du price_log d'une semaine à l'autre), catégorie déduite du nom du produit.

# Sources membres (BD live)

Source Nom merchant_id flyer_name_filter Région Produits actifs En rabais Dernier sync Statut
aliments_mm Les Aliments M&M 2024 — Tout le Québec (spécialiste du surgelé) 70 70 2026-08-18 02:41 OK (73 trouvés)
aures Supermarché Aurès 6798 — Montréal (épiceries maghrébines/méditerranéennes) 92 92 2026-08-18 02:42 OK (93 trouvés)
axep Axep 3488 — Régions du Québec (proximité, affilié Metro) 92 92 2026-08-18 02:42 OK (92 trouvés)
bonanza Marché Bonanza 3292 — Montréal (épiceries indépendantes) 82 82 2026-08-18 02:42 OK (82 trouvés)
bonichoix Marché Bonichoix 3566 — Québec (épiceries de village, bannière Sobeys) 213 213 2026-08-18 02:42 OK (217 trouvés)
brunet Brunet 3753 circulaire Tout le Québec 65 65 2026-08-18 05:56 OK (67 trouvés)
euro_marche Euro Marché 3300 — Montréal (épiceries européennes) 71 71 2026-08-18 02:48 OK (71 trouvés)
fu_tai Marché Fu Tai 5719 — Grand Montréal (supermarché asiatique) 79 79 2026-08-18 02:48 OK (79 trouvés)
inter_marche L'Inter-Marché 3293 — Québec, Saguenay, Mauricie, Estrie, Outaouais (affilié Loblaw) 92 92 2026-08-18 02:51 OK (92 trouvés)
inter_marche_intl L'Inter-Marché International 4642 — Grand Montréal (volet international) 102 102 2026-08-18 02:51 OK (102 trouvés)
jean_coutu Jean Coutu 2521 hebdomadaire Tout le Québec 44 44 2026-08-18 05:56 OK (46 trouvés)
kim_phat Kim Phat 3290 — Grand Montréal 143 143 2026-08-18 02:51 OK (163 trouvés)
marche_ami Marché Ami 3761 — Québec (villages et quartiers, affiliés Metro) 174 174 2026-08-18 02:53 OK (178 trouvés)
marche_ct Marché C&T 3288 — Grand Montréal (supermarchés asiatiques) 99 99 2026-08-18 02:55 OK (204 trouvés)
marche_vegetarien Le Marché Végétarien 4795 — Mauricie et Centre-du-Québec (épiceries santé) 51 51 2026-08-18 02:55 OK (51 trouvés)
pa_nature PA Nature 3287 nature Montréal (volet bio/santé du Supermarché PA) 60 60 2026-08-18 03:03 OK (60 trouvés)
pasquier Pasquier 3791 — Saint-Jean-sur-Richelieu et Montérégie 327 327 2026-08-18 03:07 OK (332 trouvés)
pharmaprix Pharmaprix 2170 circulaire Tout le Québec 127 127 2026-08-18 05:56 OK (127 trouvés)
rachelle_bery Rachelle-Béry 3295 — Montréal et environs 122 122 2026-08-18 03:12 OK (144 trouvés)
richelieu Marché Richelieu 3372 — Québec (épiceries de proximité affiliées Metro) 227 227 2026-08-18 03:14 OK (232 trouvés)
tradition Les Marchés Tradition 4780 — Québec (épiceries de quartier, bannière Sobeys) 261 261 2026-08-18 03:21 OK (267 trouvés)
uniprix Uniprix 3467 hebdomadaire Tout le Québec 25 25 2026-08-18 05:56 OK (25 trouvés)
val_mont Marché Val-Mont 3296 — Rive-Nord de Montréal (fruiteries-épiceries) 51 51 2026-08-18 03:22 OK (51 trouvés)

# Complétude des champs (produits actifs, N = 2 669)

Champ % rempli
Prix 100.0 %
Prix régulier 32.0 %
Format (size_label) 10.0 %
Prix unitaire 10.0 %
Marque 69.0 %
Images 100.0 %
Nutrition OFF (details.off) 2.7 %

# Gotchas

  • Le paramètre d'URL de l'API backflipp ne filtre PAS par marchand : filtrer côté client sur merchant_id.
  • flyer_name_filter écarte les cahiers parasites du même merchant (ex. Supermarché PA : « Weekly Flyer » vs « Nature Flyer »).
  • Tri des circulaires candidates par valid_from croissant : en cas de chevauchement (semaine courante + semaine à venir), on prend la courante.
  • Les items Flipp n'ont ni SKU, ni catégorie, ni unité : external_id = slug stable marque+nom+format (continuité du price_log d'une semaine à l'autre), catégorie déduite du nom.
  • Le flyer_id change chaque semaine — toujours résolu dynamiquement via /flipp/flyers (une circulaire provinciale par bannière : un poste montréalais suffit).

# Erreurs de synchronisation récentes (sync_log, ok = 0)

Source Quand Message
pa_nature 2026-08-18 01:37 FlippConnector._fine_print() takes 1 positional argument but 2 were given
rachelle_bery 2026-08-18 01:37 FlippConnector._fine_print() takes 1 positional argument but 2 were given