Agrégateur de produits québécois — www.fabri-ka.com
Python 38.4%
HTML 30.3%
TypeScript 17.2%
CSS 11%
JavaScript 3.2%
-
Tue, Aug 25, 2026 26
-
KA Tabbar : sync canonique ka-ui (prop onClick sur les onglets-liens)
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Barre de navigation mobile commune Groupe KA (KA Tabbar v1)
…
La tab bar maison migre vers la pilule flottante du standard ka-ui/nav : Accueil · Produits · Boutiques · Recherche, thème sombre vert masthead, actif ambre, safe-area iOS. L overlay de recherche plein écran est conservé. Sur les fiches produit/boutique, le CTA sticky prend le bas (pilule effacée). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Major upgrade fabri-ka: connecteurs enrichis + refonte fiches produit/boutique
…
Backend — 6 connecteurs enrichis (details JSON par produit): - shopify: compare_at_price/image/requires_shipping par variante, sku, weight_grams, on_sale - woocommerce: on_sale, categories, variations + variants (attributs), fallback HTML enrichi (sku, notes, images, price_max) - wix: on_sale (V1 et V3) — fix 428 CATALOG_V1 intact - squarespace: parsing variantes réécrit (prix solde/barré, options agrégées, sku, stock par variante) - square: sku, review_count - generic (JSON-LD): brand, sku, gtin, aggregateRating, price_max, multi-images API /api/products: filtre on_sale=1 + tri discount, avec garde-fou rabais >90 % (prix barrés aberrants saisis en cents chez certains marchands, ex. okocreations.ca — 411 produits exclus) Frontend: - ProductDetail réécrit: lightbox plein écran (clavier, compteur), zoom, partage (Web Share/clipboard), étoiles de notation, badge −X %, notes de stock, options en chips, liste des déclinaisons (prix/barré/épuisé), fiche technique (SKU/GTIN/poids/dimensions), accordéons infos additionnelles, rail « Dans la catégorie » - StoreDetail: rail « En promotion », tri « Meilleures promos », stat prix moyen, réseaux sociaux étendus (TikTok/YouTube/Pinterest/LinkedIn/X + détection par domaine pour les socials en liste, ex. borealait.com qui n'affichait rien) - ProductCard: badge promo −X % + voile « Épuisé », prix barré masqué si aberrant - Icons: étoile, partage, chevrons, zoom, tiktok, youtube, pinterest, linkedin, X, globe - styles.css: ~400 lignes (badges, lightbox, variantes, specs, accordéons, rating) Validé: sync réel 6 boutiques (Shopify/Woo/Wix/Square/Generic) 0 erreur, test synthétique Squarespace OK, build tsc+vite OK, pm2 restart + healthchecks 8097 (promos assainies, fiches 200) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
Revert "[ka6] fix connecteur gruo.ca (1/2): ré-application (3e fois) du fix 401 Shopify perdu — aa2e926 (_StorefrontLockedError sur HTTP 401 direct et « upstream 401 » Scrapfly, catalogue vide fidèle à la source pour les storefronts verrouillés) annulé par le revert 28491c6 de la vague de Reverts des sessions concurrentes; shopify.py re-patché à l'identique via git apply --3way de aa2e926. Requis pour gruo.ca qui vient de migrer WooCommerce → Shopify en mode « Launching soon » (storefront password)"
…
This reverts commit d1889604891180ec3b5f8535daa87874b4387661.
-
Revert "[ka6] suppression (2e fois) de l'artefact fabrika.db 0 octet à la racine — re-créé par un sqlite3 au mauvais chemin et re-committé par le snapshot b9ca246; la vraie base est data/fabrika.db"
…
This reverts commit b5acd1d3ef1f73c4863927de7695831d9cab1d44.
-
-
Mon, Aug 24, 2026 14
-
Revert "[ka6] snapshot pré-mission fr.lescoconuts.ca"
…
This reverts commit b9ca2467180906821e42fdcf892ecb251f241972.
-
Revert "[ka6] suppression (2e fois) de l'artefact fabrika.db 0 octet à la racine — re-créé par un sqlite3 au mauvais chemin et re-committé par le snapshot b9ca246; la vraie base est data/fabrika.db"
…
This reverts commit b5acd1d3ef1f73c4863927de7695831d9cab1d44.
-
Revert "[ka6] fix connecteur immunotec.com: retry (4 essais, backoff 5s/10s/15s) sur le POST product-wall Scrapfly — Cloudflare renvoie par intermittence un 200 au corps vide/non-JSON selon l'IP Scrapfly du moment (historique sync_log: ~2 succès sur 12, erreur « Expecting value: line 1 column 1 »), l'API et le parsing sont inchangés (6/6 sondes JSON valides); erreur désormais explicite (statut + extrait du corps) au lieu du json.loads brut. Sync réel: 49 produits / statut ok (= médiane 49.0)"
…
This reverts commit 95d90c7abee7b808e351e2fd87804292c0fe82ff.
-
Revert "[ka6] ré-application: /fabrika.db dans .gitignore (378d62d perdu par réécriture d'historique) — empêche l'artefact sqlite3 0 octet à la racine de revenir"
…
This reverts commit 6a53847360273e8e61eaee629fbcf9b3ef548806.
-
Reapply "fix classification boutiques: ecksand.com est un joaillier (art → bijoux), galerieiris.com est une galerie d'art (epicerie → art) — corrigé dans stores.json et la table stores de fabrika.db"
…
This reverts commit f9008c5affb97b89d4080cb746c5f892f6e52bfc.
-
Reapply "connecteur Immunotec branché : registre plateforme + scrapfly_post + platform du store"
…
This reverts commit d489330fe1fb653cda954309c9a02bba26d46238.