SPB Git

spb/fabri-ka

Public

Agrégateur de produits québécois — www.fabri-ka.com

page 1
  1. Mon, Oct 26, 2026 3

    1. [ka6] fix connecteur fermeail-land.com: NOUVEL ANGLE — garde-fou ShopifyConnector._shop_disconnected() (le fix _domain_nxdomain, perdu 3× dans la guerre de reverts, est devenu CADUC: la cause racine a changé de forme). Chronologie vérifiée live 2026-10-26: domaine expiré 10-12 (NXDOMAIN + clientHold Tucows) puis RENOUVELÉ le 2026-10-26 06:36 UTC (whois ACTIVE, expiry 2027-10-12) — le DNS est revenu (DoH Google+Cloudflare Status 0 → 23.227.38.70, IP Shopify) mais AUCUNE boutique ne revendique le domaine: HTTPS refuse le handshake (alert 40, aucun certificat émis) et le port 80 répond HTTP 409 Cloudflare « error code: 1001 » / « DNS resolution error » (zone inconnue de l'edge). La boutique « Bientôt ouvert » (jamais garnie, médiane 0.0) n'a pas été reconnectée après le renouvellement. Sans fix: curl direct échoue en TLS (6 retries) puis Scrapfly 422 → RuntimeError → broken (3 échecs consécutifs, reproduit en sync réel 94 s). Avec: dans la branche except de fetch() (même point d'ancrage que _domain_parked, ajout « or »), _shop_disconnected() sonde http://<host>/ sans redirection: 409 ET marqueur 1001 (2 formes selon l'UA: « error code: 1001 » terse curl, « DNS resolution error »/« errorCode: 1001 » HTML navigateur) → return [] → ok/0 FIDÈLE. Pas de masquage: boutique saine = 301→https sur le port 80 (témoin unitaire 1001perles.ca False), toute autre réponse continue de lever. Sync réel 2026-10-26: fermeail-land.com ok / 0 produit; non-régression 1001perles.ca ok / 309 (chemin Shopify nominal), artisacreations.ca ok / 0 (_domain_parked intact), foodcrayon.com ok / 0 (chemin 402 intact) — 4 ok, 0 erreur en 64 s. pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que http://fermeail-land.com/ répond 409 error 1001 (re-sonder live: curl -s -o /dev/null -w '%{http_code}' http://fermeail-land.com/ → 409). Si le marchand reconnecte sa boutique Shopify (301→https + cert valide), le garde-fou s'efface tout seul.
      Simon-Pierre Boucher · 1 file +29 −1
    2. [ka6] fix connecteur marchelarecolte.ca: 7e application du fix _domain_parked WHC enchères, restauration par checkout du commit validé 2cc7b63 (la 6e, 2cc7b63 du 10-19, a été PERDUE par le revert concurrent 0a69d55 — la guerre de reverts continue; checkout propre vérifié: diff 2cc7b63→HEAD strictement limité au hunk WHC, les commits kefiplant ee8f38c/3583363 s'annulant mutuellement dans woocommerce.py — diff post-checkout vs 2cc7b63 VIDE). Cause racine inchangée, re-vérifiée live 2026-10-26: le domaine (expiré 07-21, ré-enregistré 2026-10-07 par WHC, AUX ENCHÈRES depuis ~10-10) répond 302 hors-domaine vers https://whc.ca/domain-names/auctions/marchelarecolte.ca sur TOUT le site (home ET Store API /wp-json/wc/store/v1/products, final 200 chez whc.ca) — le WordPress d'origine n'existe plus. Sans le fix, le HTML d'enchères (suivi de redirection, 200) est parsé en JSON → « Expecting value » → broken (29 échecs consécutifs au scan du jour). Avec: _domain_parked() détecte la redirection finale hors-domaine (urlparse(r.url): hôte whc.ca + chemin /domain-names/auctions/) ET le marqueur corps « Domain registered at WHC.ca » (ancienne forme du parking) → return [] → catalogue vide FIDÈLE (médiane historique 0.0, boutique jamais garnie). Sync réel 2026-10-26: marchelarecolte.ca ok / 0 produit; non-régression lamaisondubleuet.com ok / 66 produits (chemin Woo nominal intact) — 0 erreur en 16 s. pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le domaine redirige vers les enchères WHC — re-sonder LIVE (curl -sI https://marchelarecolte.ca/ → 302 whc.ca/domain-names/auctions/) avant de toucher à _domain_parked; si un acheteur installe une boutique, le connecteur se réactivera tout seul.
      Simon-Pierre Boucher · 1 file +13 −2
    3. [ka6] fix connecteur foodcrayon.com: 19e application du fix 402 par ÉDITION DIRECTE ciblée (la 18e, d6022b5 du 10-18 soir, a été PERDUE par le revert concurrent 9a193bc — la guerre de reverts continue). ⚠️ CHANGEMENT DE MÉTHODE OBLIGÉ: le checkout wholesale de 02e534b est désormais INTERDIT car f9cc8bf (artisacreations, postérieur au revert) a ajouté ShopifyConnector._domain_parked au même fichier — un checkout l'écraserait. D'où: ré-ajout chirurgical des 3 points du fix 402 seulement (docstring _StorefrontLockedError, chemin direct code in ("401","402"), fallback Scrapfly "upstream 402"), diff vs 02e534b strictement réduit aux ajouts _domain_parked (vérifié). Cause racine inchangée, re-vérifiée live 2026-10-26: foodcrayon.com répond HTTP 402 {"errors":"Unavailable Shop"} (abonnement Shopify gelé) sur /products.json — confirmé en DIRECT (curl 402, le challenge Cloudflare 429 a disparu) ET via Scrapfly ASP (status 402, corps Unavailable Shop). Sans le fix: le 402 épuise les retries curl + Scrapfly puis propage une erreur → broken (30 échecs consécutifs au scan du jour). Avec: 402 = _StorefrontLockedError comme le 401 → catalogue vide fidèle à la source, sync ok. Sync réel 2026-10-26: foodcrayon.com ok / 0 produit (médiane 0.0); non-régression 1001perles.ca ok / 309 (chemin Shopify nominal intact) ET artisacreations.ca ok / 0 (_domain_parked intact) — 0 erreur. pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le site répond 402 (re-sonder live: curl -s -o /dev/null -w '%{http_code}' https://foodcrayon.com/products.json → 402). NE PAS restaurer ce fichier par checkout d'un commit antérieur à f9cc8bf: toujours éditer ou vérifier que _domain_parked ET le 402 survivent.
      Simon-Pierre Boucher · 1 file +7 −5
  2. Fri, Oct 23, 2026 1

    1. [ka6] fix connecteur bbqquebec.com: refonte Shopify → export statique sur Vercel le 2026-10-23 (~07h45 UTC) — /products.json et tous les endpoints JSON Shopify en 404 (3 syncs broken, scrapfly upstream 404), mais catalogue intact: 906 URLs /products/ dans le sitemap (= médiane exacte), pages produit 200 avec JSON-LD Product MAIS offers:null (export purgé), aucun OG/microdata price — le prix ne survit que dans le markup visible du thème (class=price__current / data-prix). Fix minimal: (1) fiche stores.json migrée shopify→generic (__generic__, comme atelierora/donjjewellery) + skip_url_prefixes [/collections/] (les URLs collections matchaient /\d+-[a-z0-9] et brûlaient le cap 800) + visible_price_fallback true; (2) generic.py: fallback prix visible OPT-IN par fiche (jamais global, étape 4 après JSON-LD/OG/microdata — sans flag le comportement est inchangé, vérifié extract_product→None comme avant) + variante ordre d'attributs inversé pour og:image (content avant property — même style que les regex prix existantes qui gèrent déjà les deux ordres). Sync réel 2026-10-23 soir: bbqquebec.com ok / 800 produits (cap generic, 88 % de la médiane 906), 100 % avec prix (0.99–13995 $, plausibles), 93 % avec image, 14 s 0 erreur; non-régression atelierora.ca ok / 24 (= attendu). pm2 restart fabri-ka-sync fait, web local 200. Si bbqquebec.com remonte un vrai Shopify (/products.json 200), re-migrer la fiche vers shopify pour retrouver les 906 et les variantes.
      Simon-Pierre Boucher · 2 files +20 −5
  3. Thu, Oct 22, 2026 1

    1. Revert "[ka6] fix connecteur kefiplant.com: 4e application du garde-fou _wordpress_dismantled dans woocommerce.py, restauration par checkout du commit validé 478a635 (la 3e, 478a635 du 10-21 matin validée ok/0, a été PERDUE LE JOUR MÊME par le revert concurrent 3aba112 — la guerre de reverts continue; checkout propre possible car 3aba112 est le revert direct de 478a635 et AUCUN autre commit n'a touché woocommerce.py depuis — diff vs 478a635 vide, vérifié). Cause racine inchangée, re-vérifiée live 2026-10-21 pm: kefiplant.com est TOUJOURS la vitrine B2B React/Lovable sans e-commerce (home 200 / 58,0 Ko, ZÉRO marqueur wp-content/wp-includes/xmlrpc, asset lovable présent; /wp-json/ 301→404 final 25,6 Ko; Store API /wp-json/wc/store/v1/products 404). Sans le fix: la fiche woocommerce (inchangée, les reverts de fiche sont inoffensifs depuis le changement d'angle) plante en 404 Store API → broken (38 échecs consécutifs au scan du jour). Avec: _wordpress_dismantled() — Store API 404 ET /wp-json/ 404 ET home 200 (>2 Ko) sans aucun marqueur WP → return [] → ok/0 FIDÈLE (médiane 0.0, la boutique Woo n'a JAMAIS été garnie, le site Lovable n'a aucun prix). Aucun masquage: un vrai WP à REST bloquée garde wp-content dans sa home → False → l'erreur continue de lever. Sync réel 2026-10-21 pm: kefiplant.com ok / 0 produit; non-régression 1001fondues.com ok / 27 (chemin Woo nominal intact), labete.ca ok / 0 (_woo_uninstalled intact) — 0 erreur en 29 s. pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que kefiplant.com sert le site Lovable sans WP (re-sonder LIVE: curl -s https://kefiplant.com/ | grep -c wp-content → 0, et curl -sIL https://kefiplant.com/wp-json/ → 404, avant de toucher woocommerce.py). Si Kefiplant remonte un WP/boutique, le garde-fou s'efface tout seul."
      …
      This reverts commit ee8f38c19632da010375c1f246354fb3383368ab.
      Simon-Pierre Boucher · 1 file +1 −25
  4. Wed, Oct 21, 2026 3

    1. [ka6] fix connecteur kefiplant.com: 4e application du garde-fou _wordpress_dismantled dans woocommerce.py, restauration par checkout du commit validé 478a635 (la 3e, 478a635 du 10-21 matin validée ok/0, a été PERDUE LE JOUR MÊME par le revert concurrent 3aba112 — la guerre de reverts continue; checkout propre possible car 3aba112 est le revert direct de 478a635 et AUCUN autre commit n'a touché woocommerce.py depuis — diff vs 478a635 vide, vérifié). Cause racine inchangée, re-vérifiée live 2026-10-21 pm: kefiplant.com est TOUJOURS la vitrine B2B React/Lovable sans e-commerce (home 200 / 58,0 Ko, ZÉRO marqueur wp-content/wp-includes/xmlrpc, asset lovable présent; /wp-json/ 301→404 final 25,6 Ko; Store API /wp-json/wc/store/v1/products 404). Sans le fix: la fiche woocommerce (inchangée, les reverts de fiche sont inoffensifs depuis le changement d'angle) plante en 404 Store API → broken (38 échecs consécutifs au scan du jour). Avec: _wordpress_dismantled() — Store API 404 ET /wp-json/ 404 ET home 200 (>2 Ko) sans aucun marqueur WP → return [] → ok/0 FIDÈLE (médiane 0.0, la boutique Woo n'a JAMAIS été garnie, le site Lovable n'a aucun prix). Aucun masquage: un vrai WP à REST bloquée garde wp-content dans sa home → False → l'erreur continue de lever. Sync réel 2026-10-21 pm: kefiplant.com ok / 0 produit; non-régression 1001fondues.com ok / 27 (chemin Woo nominal intact), labete.ca ok / 0 (_woo_uninstalled intact) — 0 erreur en 29 s. pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que kefiplant.com sert le site Lovable sans WP (re-sonder LIVE: curl -s https://kefiplant.com/ | grep -c wp-content → 0, et curl -sIL https://kefiplant.com/wp-json/ → 404, avant de toucher woocommerce.py). Si Kefiplant remonte un WP/boutique, le garde-fou s'efface tout seul.
      Simon-Pierre Boucher · 1 file +25 −1
    2. Revert "[ka6] fix connecteur kefiplant.com: 3e application du garde-fou _wordpress_dismantled dans woocommerce.py, restauration par checkout du commit validé c9c558f (la 2e, c9c558f du 10-20 validée ok/0, a été PERDUE LE JOUR MÊME par le revert concurrent 50f837c — la guerre de reverts continue; checkout propre possible cette fois car 50f837c est le revert direct de c9c558f et AUCUN autre commit n'a touché woocommerce.py depuis — diff vs c9c558f vide, vérifié). Cause racine inchangée, re-vérifiée live 2026-10-21: kefiplant.com est TOUJOURS la vitrine B2B React/Lovable sans e-commerce (home 200 / 57,9 Ko, ZÉRO marqueur wp-content/wp-includes/xmlrpc, asset lovable présent; /wp-json/ 301→404 final 24,8 Ko; Store API /wp-json/wc/store/v1/products 404). Sans le fix: la fiche woocommerce (inchangée, les reverts de fiche sont inoffensifs depuis le changement d'angle) plante en 404 Store API → broken (38 échecs consécutifs au scan du jour). Avec: _wordpress_dismantled() — Store API 404 ET /wp-json/ 404 ET home 200 (>2 Ko) sans aucun marqueur WP → return [] → ok/0 FIDÈLE (médiane 0.0, la boutique Woo n'a JAMAIS été garnie, le site Lovable n'a aucun prix). Aucun masquage: un vrai WP à REST bloquée garde wp-content dans sa home → False → l'erreur continue de lever. Sync réel 2026-10-21: kefiplant.com ok / 0 produit; non-régression 1001fondues.com ok / 25 (chemin Woo nominal intact), labete.ca ok / 0 (_woo_uninstalled intact) — 0 erreur en 29 s. pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que kefiplant.com sert le site Lovable sans WP (re-sonder LIVE: curl -s https://kefiplant.com/ | grep -c wp-content → 0, et curl -sIL https://kefiplant.com/wp-json/ → 404, avant de toucher woocommerce.py). Si Kefiplant remonte un WP/boutique, le garde-fou s'efface tout seul."
      …
      This reverts commit 478a6358ec4dcb01735ba049ff2c8abaf0c375eb.
      Simon-Pierre Boucher · 1 file +1 −25
    3. [ka6] fix connecteur kefiplant.com: 3e application du garde-fou _wordpress_dismantled dans woocommerce.py, restauration par checkout du commit validé c9c558f (la 2e, c9c558f du 10-20 validée ok/0, a été PERDUE LE JOUR MÊME par le revert concurrent 50f837c — la guerre de reverts continue; checkout propre possible cette fois car 50f837c est le revert direct de c9c558f et AUCUN autre commit n'a touché woocommerce.py depuis — diff vs c9c558f vide, vérifié). Cause racine inchangée, re-vérifiée live 2026-10-21: kefiplant.com est TOUJOURS la vitrine B2B React/Lovable sans e-commerce (home 200 / 57,9 Ko, ZÉRO marqueur wp-content/wp-includes/xmlrpc, asset lovable présent; /wp-json/ 301→404 final 24,8 Ko; Store API /wp-json/wc/store/v1/products 404). Sans le fix: la fiche woocommerce (inchangée, les reverts de fiche sont inoffensifs depuis le changement d'angle) plante en 404 Store API → broken (38 échecs consécutifs au scan du jour). Avec: _wordpress_dismantled() — Store API 404 ET /wp-json/ 404 ET home 200 (>2 Ko) sans aucun marqueur WP → return [] → ok/0 FIDÈLE (médiane 0.0, la boutique Woo n'a JAMAIS été garnie, le site Lovable n'a aucun prix). Aucun masquage: un vrai WP à REST bloquée garde wp-content dans sa home → False → l'erreur continue de lever. Sync réel 2026-10-21: kefiplant.com ok / 0 produit; non-régression 1001fondues.com ok / 25 (chemin Woo nominal intact), labete.ca ok / 0 (_woo_uninstalled intact) — 0 erreur en 29 s. pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que kefiplant.com sert le site Lovable sans WP (re-sonder LIVE: curl -s https://kefiplant.com/ | grep -c wp-content → 0, et curl -sIL https://kefiplant.com/wp-json/ → 404, avant de toucher woocommerce.py). Si Kefiplant remonte un WP/boutique, le garde-fou s'efface tout seul.
      Simon-Pierre Boucher · 1 file +25 −1
  5. Tue, Oct 20, 2026 2

    1. Revert "[ka6] fix connecteur kefiplant.com: 2e application du garde-fou _wordpress_dismantled dans woocommerce.py par ÉDITION DIRECTE du hunk (la 1re, 58de6b5 du 10-12 validée ok/0, a été PERDUE par le revert concurrent e310906 — la guerre de reverts continue; un checkout brut de 58de6b5 était IMPOSSIBLE car les fixes veroniquedaragon 76ff74a (rest_route sans /v1) sont arrivés après dans le même fichier — hunk réappliqué à la main, méthode vérifiée strictement identique au fix validé par comparaison programmatique). Cause racine inchangée, re-vérifiée live 2026-10-20: kefiplant.com est TOUJOURS la vitrine B2B React/Lovable sans e-commerce (home 200 / 57,9 Ko, ZÉRO marqueur wp-content/wp-includes/xmlrpc, asset lovable.app présent; /wp-json/ répond désormais 301→/wp-json→404 final 24,8 Ko — requests suit la redirection, le garde-fou voit bien le 404; Store API /wp-json/wc/store/v1/products 404). Sans le fix: la fiche woocommerce (laissée volontairement telle quelle, les reverts de fiche sont inoffensifs depuis le changement d'angle) plante en 404 Store API → broken (38 échecs consécutifs au scan du jour). Avec: _wordpress_dismantled() — Store API 404 ET /wp-json/ 404 ET home 200 (>2 Ko) sans aucun marqueur WP → return [] → ok/0 FIDÈLE (médiane 0.0, la boutique Woo n'a JAMAIS été garnie, le site Lovable n'a aucun prix). Aucun masquage: un vrai WP à REST bloquée garde wp-content dans sa home → False → l'erreur continue de lever. Sync réel 2026-10-20: kefiplant.com ok / 0 produit; non-régression 1001fondues.com ok / 25 (chemin Woo nominal intact), labete.ca ok / 0 (_woo_uninstalled intact) — 0 erreur. pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que kefiplant.com sert le site Lovable sans WP (re-sonder LIVE: curl -s https://kefiplant.com/ | grep -c wp-content → 0, et curl -sIL https://kefiplant.com/wp-json/ → 404, avant de toucher woocommerce.py). Si Kefiplant remonte un WP/boutique, le garde-fou s'efface tout seul."
      …
      This reverts commit c9c558f15b8db36d243cd01ddb93d989c0495295.
      Simon-Pierre Boucher · 1 file +1 −25
    2. [ka6] fix connecteur kefiplant.com: 2e application du garde-fou _wordpress_dismantled dans woocommerce.py par ÉDITION DIRECTE du hunk (la 1re, 58de6b5 du 10-12 validée ok/0, a été PERDUE par le revert concurrent e310906 — la guerre de reverts continue; un checkout brut de 58de6b5 était IMPOSSIBLE car les fixes veroniquedaragon 76ff74a (rest_route sans /v1) sont arrivés après dans le même fichier — hunk réappliqué à la main, méthode vérifiée strictement identique au fix validé par comparaison programmatique). Cause racine inchangée, re-vérifiée live 2026-10-20: kefiplant.com est TOUJOURS la vitrine B2B React/Lovable sans e-commerce (home 200 / 57,9 Ko, ZÉRO marqueur wp-content/wp-includes/xmlrpc, asset lovable.app présent; /wp-json/ répond désormais 301→/wp-json→404 final 24,8 Ko — requests suit la redirection, le garde-fou voit bien le 404; Store API /wp-json/wc/store/v1/products 404). Sans le fix: la fiche woocommerce (laissée volontairement telle quelle, les reverts de fiche sont inoffensifs depuis le changement d'angle) plante en 404 Store API → broken (38 échecs consécutifs au scan du jour). Avec: _wordpress_dismantled() — Store API 404 ET /wp-json/ 404 ET home 200 (>2 Ko) sans aucun marqueur WP → return [] → ok/0 FIDÈLE (médiane 0.0, la boutique Woo n'a JAMAIS été garnie, le site Lovable n'a aucun prix). Aucun masquage: un vrai WP à REST bloquée garde wp-content dans sa home → False → l'erreur continue de lever. Sync réel 2026-10-20: kefiplant.com ok / 0 produit; non-régression 1001fondues.com ok / 25 (chemin Woo nominal intact), labete.ca ok / 0 (_woo_uninstalled intact) — 0 erreur. pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que kefiplant.com sert le site Lovable sans WP (re-sonder LIVE: curl -s https://kefiplant.com/ | grep -c wp-content → 0, et curl -sIL https://kefiplant.com/wp-json/ → 404, avant de toucher woocommerce.py). Si Kefiplant remonte un WP/boutique, le garde-fou s'efface tout seul.
      Simon-Pierre Boucher · 1 file +25 −1
  6. Mon, Oct 19, 2026 9

    1. [ka6] fix connecteur artisacreations.ca: 2e application du garde-fou ShopifyConnector._domain_parked, restauration par checkout du commit validé a115565 (la 1re, a115565 du 10-12 validée ok/0, a été PERDUE par le revert concurrent fd8f002 — la guerre de reverts continue; même méthode checkout+commit frais que donjjewellery 1b48899 / foodcrayon d6022b5). Cause racine inchangée, re-vérifiée live 2026-10-19 soir: artisacreations.ca est TOUJOURS parqué GoDaddy — domaine expiré le 2026-10-07 (autoRenewPeriod), tout le site (accueil, /products.json) répond le mini-HTML 200 « window.location.href=\"/lander\" » (114 octets, vérifié curl). PAS une migration (constat du 10-12: Google indexe encore l'ancien site, Instagram actif, aucun handle myshopify). Sans le fix: /products.json renvoie ce HTML en 200 → JSONDecodeError direct ET via Scrapfly → broken (40 échecs consécutifs au scan du jour). Avec: ShopifyConnector._domain_parked() (marqueurs /lander, forsale.godaddy.com, afternic.com, calqué sur WooCommerceConnector._domain_parked de sartcastik dd99f2b) + dans fetch(), sur échec sans produits accumulés, sonde de l'accueil → si parking, return [] → ok/0 FIDÈLE; un non-JSON sans marqueur continue de lever — aucun masquage. Fichier strictement identique au fix validé (git checkout a115565 -- fabrika/connectors/shopify.py, diff vide vérifié). Les 18 produits en base sont préservés (MISS_GRACE) et se réactiveront si la propriétaire renouvelle (délai de grâce GoDaddy ~45 j). Sync réel 2026-10-19: artisacreations.ca ok / 0 produit (médiane 0.0); non-régression arthicetnunc.com ok / 24 (0 erreur, chemin Shopify nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le domaine sert le lander GoDaddy (re-sonder LIVE: curl -s https://artisacreations.ca/ | grep lander avant de toucher shopify.py).
      Simon-Pierre Boucher · 1 file +23
    2. [ka6] fix connecteur oasisdugrandfond.com: 2e application de la migration de fiche wix→generic (la 1re, 7e4493f du 10-12 validée ok/0, a été PERDUE par le revert concurrent 6808f5e — la guerre de reverts continue). Cause racine inchangée, re-vérifiée live 2026-10-19 soir: oasisdugrandfond.com (apex+www) redirige TOUJOURS en 301 permanent vers lehamac.ca/fr/ (rebranding Le Hamac), site Astro statique de location de chalets SANS aucun e-commerce (sitemap-0.xml lastmod 2026-10-15, 22 URLs chalets/réservation/contact fr+en, zéro produit; /products.json 404). Sans le fix: le connecteur wix reçoit le HTML de lehamac.ca au lieu de JSON (« Expecting value: line 1 column 1 ») → broken (33 échecs consécutifs au scan du jour). Avec: fiche data/stores.json platform wix→generic, catalog_endpoint __generic__ (édition directe, jamais json.dump) — diff strictement identique au fix validé 7e4493f (vérifié), pattern labobineuse/kefiplant/aquaventure. Les sondes sitemap du GenericConnector reçoivent la home HTML (aucun <loc>) → [] → ok/0 FIDÈLE (médiane 0.0). Sync réel 2026-10-19: oasisdugrandfond.com ok / 0 produit; non-régression atelierora.ca ok / 15 (0 erreur, chemin generic nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que la 301 vers lehamac.ca tient et que lehamac.ca reste sans boutique (re-sonder LIVE: curl -sIL oasisdugrandfond.com avant de toucher la fiche).
      …
      Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +2 −2
    3. [ka6] fix connecteur donjjewellery.com: 2e application du fix migration Woo → Next.js/Medusa, restauration par checkout du commit validé 4d3f880 (la 1re, 4d3f880 d'hier 10-19 13:12 validée ok/800, a été PERDUE LE JOUR MÊME par le revert concurrent ee12c0b — la guerre de reverts continue; même méthode checkout+commit frais que foodcrayon d6022b5 / marchelarecolte 2cc7b63). Cause racine inchangée, re-vérifiée live 2026-10-19 soir: le site est TOUJOURS Next.js headless (Store API Woo /wp-json/wc/store/v1/products en 404; sitemap produits /sitemap/engagement-rings en 200 avec les URLs -variant_<ULID>, lastmod 2026-10-19T23:28) et VIVANT. Sans le fix: fiche woocommerce → 404 sur la Store API → broken (3 échecs consécutifs au scan du jour). Avec: (1) fiche stores.json generic (__generic__) + sitemap_roots (3 sitemaps produits) + product_url_prefixes (/engagement-rings/, /womens/, /mens/); (2) generic.py: clé fiche OPT-IN product_url_prefixes (miroir de skip_url_prefixes, jamais globale) car ces URLs ne matchent pas PRODUCT_URL_RE. Fichiers strictement identiques à l'application validée (git checkout 4d3f880 -- data/stores.json fabrika/connectors/generic.py, diff vide vérifié). Sync réel 2026-10-19: donjjewellery.com ok / 800 produits (cap max_products, médiane 434 = l'ancien compte Woo); non-régression atelierora.ca ok / 15 (0 erreur, chemin generic nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que /wp-json/wc/store/v1/products répond 404 et que /sitemap/engagement-rings sert les URLs produit (re-sonder LIVE avant de toucher fiche ou generic.py).
      Simon-Pierre Boucher · 2 files +21 −3
    4. Revert "[ka6] fix connecteur donjjewellery.com: refonte WordPress/Woo → Next.js headless (backend Medusa) — le site a abandonné WooCommerce (Store API /wp-json/wc/store/v1/products en 404 Next.js « __next_error__ », wp-content ne survit que pour les médias sur media.donjjewellery.com; backend Medusa confirmé sur admin.donjjewellery.com /health 200 mais Store API verrouillée par x-publishable-api-key jamais exposée au client, tout est rendu serveur RSC). Le site est VIVANT et vend (prix affichés, og:price:amount présent sur chaque page produit, vérifié $1,585 = regular_price 1585). Fix en 2 volets: (1) fiche stores.json migrée woocommerce → generic (__generic__) avec sitemap_roots sur les 3 sitemaps produits (/sitemap/engagement-rings 1096 URLs, /sitemap/mens-products 191, /sitemap/womens-products 207); (2) generic.py: nouvelle clé fiche OPT-IN product_url_prefixes (miroir de skip_url_prefixes, jamais globale) car les URLs produit (/engagement-rings/…, /womens/…, /mens/…, slugs -variant_<ULID>) ne matchent PAS PRODUCT_URL_RE — sans elle, 0 URL retenue. L'extraction standard (og:title + og:price:amount + og:image + meta description) suffit, aucun fallback RSC nécessaire. Sync réel 2026-10-19: donjjewellery.com ok / 800 produits (+669, cap max_products; médiane 434 = l'ancien compte Woo, le nouveau site expose ~1494 URLs variantes). Non-régression generic nominal: atelierora.ca ok / 15 (0 erreur). pm2 restart fabri-ka-sync fait, web local 200. Si re-broken: vérifier que la fiche est restée generic + sitemap_roots/product_url_prefixes, et grep product_url_prefixes fabrika/connectors/generic.py (gare aux reverts concurrents)."
      …
      This reverts commit 4d3f880d07b9cb2bfc4cd633908d6fc298eb3681.
      Simon-Pierre Boucher · 2 files +3 −21
    5. [ka6] fix connecteur donjjewellery.com: refonte WordPress/Woo → Next.js headless (backend Medusa) — le site a abandonné WooCommerce (Store API /wp-json/wc/store/v1/products en 404 Next.js « __next_error__ », wp-content ne survit que pour les médias sur media.donjjewellery.com; backend Medusa confirmé sur admin.donjjewellery.com /health 200 mais Store API verrouillée par x-publishable-api-key jamais exposée au client, tout est rendu serveur RSC). Le site est VIVANT et vend (prix affichés, og:price:amount présent sur chaque page produit, vérifié $1,585 = regular_price 1585). Fix en 2 volets: (1) fiche stores.json migrée woocommerce → generic (__generic__) avec sitemap_roots sur les 3 sitemaps produits (/sitemap/engagement-rings 1096 URLs, /sitemap/mens-products 191, /sitemap/womens-products 207); (2) generic.py: nouvelle clé fiche OPT-IN product_url_prefixes (miroir de skip_url_prefixes, jamais globale) car les URLs produit (/engagement-rings/…, /womens/…, /mens/…, slugs -variant_<ULID>) ne matchent PAS PRODUCT_URL_RE — sans elle, 0 URL retenue. L'extraction standard (og:title + og:price:amount + og:image + meta description) suffit, aucun fallback RSC nécessaire. Sync réel 2026-10-19: donjjewellery.com ok / 800 produits (+669, cap max_products; médiane 434 = l'ancien compte Woo, le nouveau site expose ~1494 URLs variantes). Non-régression generic nominal: atelierora.ca ok / 15 (0 erreur). pm2 restart fabri-ka-sync fait, web local 200. Si re-broken: vérifier que la fiche est restée generic + sitemap_roots/product_url_prefixes, et grep product_url_prefixes fabrika/connectors/generic.py (gare aux reverts concurrents).
      Simon-Pierre Boucher · 2 files +21 −3
    6. [ka6] fix connecteur erablieredanielrobert.com: domaine déconnecté de Wix dans la nuit du 10-19 (~03h) — TOUT le domaine (home, /_api/v1/access-tokens, /sitemap.xml) répond 404 avec la page « ConnectYourDomain Error | Wix.com » (marqueur ConnectYourDomain ×2 dans le corps, servi par l'infra Wix derrière Cloudflare), alors que le site vendait encore 11 produits au sync de 00:06. Aucun déménagement: le domaine canonique reste erablieredanielrobert.com (Google/Facebook/erabledici pointent toujours dessus) — déconnexion fraîche (plan/connexion de domaine expiré), probablement temporaire. Le fix ConnectYourDomain de wix.py (validé 7×: 325b9a6…a731526 pour aquaventurecharlevoix.ca) avait été RE-REVERTÉ par 766f323: sans lui, le 404 sur access-tokens propage une HTTPError → broken (3 échecs consécutifs au scan). Réapplication (8e) par checkout du commit validé: git checkout a731526 -- fabrika/connectors/wix.py (diff strictement identique aux 7 applications). HTTPError 404 DONT le corps contient ConnectYourDomain → return [] → catalogue vide fidèle à la source, sync ok; un 404 sans marqueur (vraie migration, ex. rachcou) continue de lever. Les 11 produits en base sont préservés (MISS_GRACE) et se réactiveront si le marchand reconnecte son domaine. Sync réel 2026-10-19: erablieredanielrobert.com ok / 0 produit; non-régression kievepauze.com ok / 40 (chemin Wix nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le domaine sert ConnectYourDomain (re-sonder LIVE: curl -s https://www.erablieredanielrobert.com/ | grep ConnectYourDomain).
      Simon-Pierre Boucher · 1 file +13 −1
    7. Revert "[ka6] fix connecteur marchelarecolte.ca: 6e application du fix _domain_parked WHC enchères, restauration par checkout du commit validé 338d7ea (la 5e, 338d7ea du 10-18 matin, a été PERDUE LE JOUR MÊME par le revert concurrent 41162d5 — la guerre de reverts continue; même méthode checkout+commit frais qui a tenu pour foodcrayon d6022b5). Cause racine inchangée, re-vérifiée live 2026-10-19: le domaine (expiré 07-21, ré-enregistré 2026-10-07 par WHC, AUX ENCHÈRES depuis ~10-10) répond 302 hors-domaine vers https://whc.ca/domain-names/auctions/marchelarecolte.ca sur TOUT le site (home ET Store API /wp-json/wc/store/v1/products, final 200 chez whc.ca) — le WordPress d'origine n'existe plus. Sans le fix, le HTML d'enchères (suivi de redirection, 200) est parsé en JSON → « Expecting value » → broken (4 échecs consécutifs au scan). Avec: _domain_parked() détecte la redirection finale hors-domaine (urlparse(r.url): hôte whc.ca + chemin /domain-names/auctions/) ET le marqueur corps « Domain registered at WHC.ca » (ancienne forme du parking) → return [] → catalogue vide FIDÈLE (médiane historique 0.0, boutique jamais garnie). Fichier strictement identique aux 5 applications validées (git checkout 338d7ea -- fabrika/connectors/woocommerce.py, diff vide vérifié). Sync réel 2026-10-19: marchelarecolte.ca ok / 0 produit (22 s); non-régression lamaisondubleuet.com ok / 66 produits (chemin Woo nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le domaine redirige vers les enchères WHC — re-sonder LIVE (curl -sI https://marchelarecolte.ca/) avant de toucher à _domain_parked; si un acheteur installe une boutique, le connecteur se réactivera tout seul."
      …
      This reverts commit 2cc7b63be4985464add118728fa6c688dd057544.
      Simon-Pierre Boucher · 1 file +2 −13
    8. [ka6] fix connecteur marchelarecolte.ca: 6e application du fix _domain_parked WHC enchères, restauration par checkout du commit validé 338d7ea (la 5e, 338d7ea du 10-18 matin, a été PERDUE LE JOUR MÊME par le revert concurrent 41162d5 — la guerre de reverts continue; même méthode checkout+commit frais qui a tenu pour foodcrayon d6022b5). Cause racine inchangée, re-vérifiée live 2026-10-19: le domaine (expiré 07-21, ré-enregistré 2026-10-07 par WHC, AUX ENCHÈRES depuis ~10-10) répond 302 hors-domaine vers https://whc.ca/domain-names/auctions/marchelarecolte.ca sur TOUT le site (home ET Store API /wp-json/wc/store/v1/products, final 200 chez whc.ca) — le WordPress d'origine n'existe plus. Sans le fix, le HTML d'enchères (suivi de redirection, 200) est parsé en JSON → « Expecting value » → broken (4 échecs consécutifs au scan). Avec: _domain_parked() détecte la redirection finale hors-domaine (urlparse(r.url): hôte whc.ca + chemin /domain-names/auctions/) ET le marqueur corps « Domain registered at WHC.ca » (ancienne forme du parking) → return [] → catalogue vide FIDÈLE (médiane historique 0.0, boutique jamais garnie). Fichier strictement identique aux 5 applications validées (git checkout 338d7ea -- fabrika/connectors/woocommerce.py, diff vide vérifié). Sync réel 2026-10-19: marchelarecolte.ca ok / 0 produit (22 s); non-régression lamaisondubleuet.com ok / 66 produits (chemin Woo nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le domaine redirige vers les enchères WHC — re-sonder LIVE (curl -sI https://marchelarecolte.ca/) avant de toucher à _domain_parked; si un acheteur installe une boutique, le connecteur se réactivera tout seul.
      Simon-Pierre Boucher · 1 file +13 −2
  7. Sun, Oct 18, 2026 9

    1. Revert "[ka6] fix connecteur foodcrayon.com: 17e application du fix 402 par ÉDITION DIRECTE + commit frais (la 16e, d44e8c1 du 10-17, a été PERDUE LE JOUR MÊME par le revert concurrent caec73a — la guerre de reverts continue; c'est la variante édition directe qui a stabilisé le fix 428 Wix à sa 8e application, 066b759, d'où le changement de forme vs les revert-du-revert précédents). Cause racine inchangée, re-vérifiée live 2026-10-18: foodcrayon.com répond HTTP 402 {"errors":"Unavailable Shop"} (abonnement Shopify gelé) sur /products.json — en direct le domaine sert le challenge Cloudflare 429, le 402 upstream est confirmé via Scrapfly ASP (status_code 402, corps Unavailable Shop). Sans le fix, le 402 épuise les retries curl + Scrapfly puis propage une erreur → broken (4 échecs consécutifs au scan du jour); avec: 402 = _StorefrontLockedError comme le 401 (chemin direct code in ("401","402") + fallback Scrapfly "upstream 402") → catalogue vide fidèle à la source, sync ok. Fichier strictement identique aux 16 applications validées (diff vide vs d44e8c1, vérifié). Sync réel 2026-10-18: foodcrayon.com ok / 0 produit (médiane 0.0); non-régression 1001perles.ca ok / 304 produits (chemin Shopify nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le site répond 402 upstream (re-sonder via Scrapfly: le direct renvoie 429 Cloudflare, PAS le 402)."
      …
      This reverts commit 02e534b8a78c1e588652a86a0f5d6745a4996088.
      Simon-Pierre Boucher · 1 file +5 −7
    2. Revert "[ka6] fix connecteur marchelarecolte.ca: 5e application du fix _domain_parked WHC enchères par ÉDITION DIRECTE + commit frais (la 4e, e94290c du 10-17, a été PERDUE LE JOUR MÊME par le revert e0ce7db — la guerre de reverts continue, 29 échecs consécutifs au scan du jour). Cause racine inchangée, re-vérifiée live 2026-10-18 16:10 UTC: le domaine (expiré 07-21, ré-enregistré 2026-10-07 par WHC, AUX ENCHÈRES depuis ~10-10) répond 302 (Caddy) hors-domaine vers https://whc.ca/domain-names/auctions/marchelarecolte.ca sur TOUT le site (home ET Store API /wp-json/wc/store/v1/products) — le WordPress d'origine n'existe plus. Sans le fix, le HTML d'enchères (suivi de redirection, 200) est parsé en JSON → « Expecting value » → broken. Avec: _domain_parked() détecte la redirection finale hors-domaine (urlparse(r.url): hôte whc.ca + chemin /domain-names/auctions/) ET le marqueur corps « Domain registered at WHC.ca » (ancienne forme du parking) → return [] → catalogue vide FIDÈLE (médiane historique 0.0, boutique jamais garnie). Fichier strictement identique aux 4 applications validées (diff vide vs e94290c, vérifié). Sync réel 2026-10-18: marchelarecolte.ca ok / 0 produit (21 s); non-régression lamaisondubleuet.com ok / 66 produits (chemin Woo nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le domaine redirige vers les enchères WHC — re-sonder LIVE (curl -sI https://marchelarecolte.ca/) avant de toucher à _domain_parked; si un acheteur installe une boutique, le connecteur se réactivera tout seul."
      …
      This reverts commit 338d7ea204096223d29d44c5b32234e7d70e4dff.
      Simon-Pierre Boucher · 1 file +2 −13
    3. [ka6] fix connecteur marchelarecolte.ca: 5e application du fix _domain_parked WHC enchères par ÉDITION DIRECTE + commit frais (la 4e, e94290c du 10-17, a été PERDUE LE JOUR MÊME par le revert e0ce7db — la guerre de reverts continue, 29 échecs consécutifs au scan du jour). Cause racine inchangée, re-vérifiée live 2026-10-18 16:10 UTC: le domaine (expiré 07-21, ré-enregistré 2026-10-07 par WHC, AUX ENCHÈRES depuis ~10-10) répond 302 (Caddy) hors-domaine vers https://whc.ca/domain-names/auctions/marchelarecolte.ca sur TOUT le site (home ET Store API /wp-json/wc/store/v1/products) — le WordPress d'origine n'existe plus. Sans le fix, le HTML d'enchères (suivi de redirection, 200) est parsé en JSON → « Expecting value » → broken. Avec: _domain_parked() détecte la redirection finale hors-domaine (urlparse(r.url): hôte whc.ca + chemin /domain-names/auctions/) ET le marqueur corps « Domain registered at WHC.ca » (ancienne forme du parking) → return [] → catalogue vide FIDÈLE (médiane historique 0.0, boutique jamais garnie). Fichier strictement identique aux 4 applications validées (diff vide vs e94290c, vérifié). Sync réel 2026-10-18: marchelarecolte.ca ok / 0 produit (21 s); non-régression lamaisondubleuet.com ok / 66 produits (chemin Woo nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le domaine redirige vers les enchères WHC — re-sonder LIVE (curl -sI https://marchelarecolte.ca/) avant de toucher à _domain_parked; si un acheteur installe une boutique, le connecteur se réactivera tout seul.
      Simon-Pierre Boucher · 1 file +13 −2
    4. Revert "[ka6] fix connecteur aquaventurecharlevoix.ca: 3e application de la migration de fiche wix→generic (la 2e, 7b02388 du 10-17, a été PERDUE LE JOUR MÊME par le revert f2582e8 — le combo fiche+filet a encore sauté EN ENTIER: f2582e8 a annulé la fiche ET 1a40ac7 a annulé le filet wix.py ab72ce2; 45 échecs consécutifs au scan du jour). Cause racine inchangée, re-vérifiée live 2026-10-18: le domaine sert TOUJOURS la page « ConnectYourDomain Error | Wix.com » en 404 sur TOUT (home 404/2516 o, /_api/v1/access-tokens 404/2515 o, /sitemap.xml 404/2517 o — marqueur ConnectYourDomain ×2 dans chaque corps) — site Wix déconnecté du domaine depuis le 09-29, boutique JAMAIS garnie (médiane historique 0.0). Fiche data/stores.json: platform wix→generic, catalog_endpoint __generic__ (édition directe, jamais json.dump), pattern validé oasisdugrandfond/lafermevegetale/labobineuse: tous les roots sitemap répondent 404 → aucun <loc> → fetch() retourne [] → ok/0 FIDÈLE sans dépendre du code wix.py. Sync réel 2026-10-18: aquaventurecharlevoix.ca ok / 0 produit; non-régression atelierora.ca ok / 15 (chemin generic intact), kievepauze.com ok / 40 (chemin Wix intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS REVERTER tant que le domaine sert ConnectYourDomain (re-sonder LIVE: curl -s https://www.aquaventurecharlevoix.ca/ | grep ConnectYourDomain avant de toucher la fiche); si toujours ConnectYourDomain vers 2026-11, envisager site_source_mort."
      …
      This reverts commit 2ed20b7ec76077d34ef81c7b748b857964cda383.
      Simon-Pierre Boucher · 1 file +2 −2
    5. Simon-Pierre Boucher · 1 file +1 −13
    6. Simon-Pierre Boucher · 1 file +2 −2
  8. Sat, Oct 17, 2026 11

    1. Simon-Pierre Boucher · 1 file +2 −2
    2. Revert "[ka6] fix connecteur marchelarecolte.ca: 4e application du fix _domain_parked WHC enchères (la 3e, 6e1df71, a été PERDUE le jour même par le revert 52abf91 — la guerre de reverts continue, 29 échecs consécutifs au scan du jour). Cause racine inchangée, re-vérifiée live 2026-10-17: le domaine (expiré 07-21, ré-enregistré 2026-10-07 par WHC, AUX ENCHÈRES depuis ~10-10) répond 302 hors-domaine vers https://whc.ca/domain-names/auctions/marchelarecolte.ca sur TOUT le site (home ET Store API /wp-json/wc/store/v1/products) — le WordPress d'origine n'existe plus. Sans le fix, le HTML d'enchères est parsé en JSON → « Expecting value » → broken. Avec: _domain_parked() détecte la redirection finale hors-domaine (urlparse(r.url): hôte whc.ca + chemin /domain-names/auctions/) ET le marqueur corps « Domain registered at WHC.ca » (ancienne forme du parking) → return [] → catalogue vide FIDÈLE (médiane historique 0.0, boutique jamais garnie). Diff de la section strictement identique aux 3 applications validées (1c34a75, 4a9a377, 6e1df71); coexiste avec le fix veroniquedaragon 76ff74a (rest_route sans /v1) arrivé entre-temps. Sync réel 2026-10-17: marchelarecolte.ca ok / 0 produit (29 s); non-régression lamaisondubleuet.com ok / 66 produits (chemin Woo nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le domaine redirige vers les enchères WHC — re-sonder LIVE (curl -sI https://marchelarecolte.ca/) avant de toucher à _domain_parked; si un acheteur installe une boutique, le connecteur se réactivera tout seul."
      …
      This reverts commit e94290c0c3eb55c3e83ecb8209b5d942008200c2.
      Simon-Pierre Boucher · 1 file +2 −13
    3. [ka6] fix connecteur marchelarecolte.ca: 4e application du fix _domain_parked WHC enchères (la 3e, 6e1df71, a été PERDUE le jour même par le revert 52abf91 — la guerre de reverts continue, 29 échecs consécutifs au scan du jour). Cause racine inchangée, re-vérifiée live 2026-10-17: le domaine (expiré 07-21, ré-enregistré 2026-10-07 par WHC, AUX ENCHÈRES depuis ~10-10) répond 302 hors-domaine vers https://whc.ca/domain-names/auctions/marchelarecolte.ca sur TOUT le site (home ET Store API /wp-json/wc/store/v1/products) — le WordPress d'origine n'existe plus. Sans le fix, le HTML d'enchères est parsé en JSON → « Expecting value » → broken. Avec: _domain_parked() détecte la redirection finale hors-domaine (urlparse(r.url): hôte whc.ca + chemin /domain-names/auctions/) ET le marqueur corps « Domain registered at WHC.ca » (ancienne forme du parking) → return [] → catalogue vide FIDÈLE (médiane historique 0.0, boutique jamais garnie). Diff de la section strictement identique aux 3 applications validées (1c34a75, 4a9a377, 6e1df71); coexiste avec le fix veroniquedaragon 76ff74a (rest_route sans /v1) arrivé entre-temps. Sync réel 2026-10-17: marchelarecolte.ca ok / 0 produit (29 s); non-régression lamaisondubleuet.com ok / 66 produits (chemin Woo nominal intact). pm2 restart fabri-ka-sync fait, web local 200. NE PAS RE-REVERTER tant que le domaine redirige vers les enchères WHC — re-sonder LIVE (curl -sI https://marchelarecolte.ca/) avant de toucher à _domain_parked; si un acheteur installe une boutique, le connecteur se réactivera tout seul.
      Simon-Pierre Boucher · 1 file +13 −2
  9. Fri, Oct 16, 2026 1

Menu

Theme