Commit
[ka6] fix connecteur jcperreault.com: refonte sitemap du site ~2026-10-16 — les URLs produit (/fr/p/…) ont disparu du /sitemap.xml racine (1064 locs, 0 produit) et vivent désormais UNIQUEMENT dans /media/feeds/sitemap_products_fr.xml (10 389 locs), déclaré seulement via robots.txt que generic.py ne lit pas → _sitemap_products() retournait [] → ok/0 sur 3 syncs (495 produits supprimés). Correctif en 2 volets, pattern opt-in du repo (comme rehost_hosts/skip_url_prefixes, jamais global): (1) generic.py accepte la clé fiche sitemap_roots (URL absolue ou chemin) prépendue aux roots standards; (2) fiche data/stores.json jcperreault.com: ajout sitemap_roots=[…/media/feeds/sitemap_products_fr.xml] (édition directe, jamais json.dump). Sync réel 2026-10-17: jcperreault.com ok / 760 produits (+760, 31 s, cap max_products=800 sur 10 389 URLs). Non-régression: atelierora.ca ok / 15 (chemin generic sans sitemap_roots intact). pm2 restart fabri-ka-sync fait, web local 200. Si re-broken: vérifier que la clé sitemap_roots est toujours dans la fiche ET que le bloc « extra » est toujours dans generic.py (grep sitemap_roots).
modified
data/stores.json
+3 −0
@@ -69184,6 +69184,9 @@ | ||
| 69184 | 69184 | "url": "https://www.jcperreault.com", |
| 69185 | 69185 | "platform": "generic", |
| 69186 | 69186 | "catalog_endpoint": "__generic__", |
| 69187 | + "sitemap_roots": [ | |
| 69188 | + "https://www.jcperreault.com/media/feeds/sitemap_products_fr.xml" | |
| 69189 | + ], | |
| 69187 | 69190 | "city": "", |
| 69188 | 69191 | "region": "Lanaudière", |
| 69189 | 69192 | "postal_prefix": "J0K", |
modified
fabrika/connectors/generic.py
+9 −0
@@ -194,6 +194,15 @@ class GenericConnector(BaseConnector): | ||
| 194 | 194 | f"{self.base}/sitemap/sitemap-index.xml", f"{self.base}/media/sitemap.xml", |
| 195 | 195 | f"{self.base}/pub/media/sitemap.xml", f"{self.base}/sitemap1.xml", |
| 196 | 196 | f"{self.base}/en/sitemap.xml", f"{self.base}/fr/sitemap.xml"] |
| 197 | + # sitemaps produit hors des emplacements standards (ex. jcperreault.com, | |
| 198 | + # 2026-10-16 : produits retirés de /sitemap.xml, désormais uniquement | |
| 199 | + # dans /media/feeds/sitemap_products_fr.xml déclaré via robots.txt). | |
| 200 | + # Clé fiche OPT-IN sitemap_roots (URL absolue ou chemin), prioritaire — | |
| 201 | + # jamais de lecture globale de robots.txt pour ne pas perturber les | |
| 202 | + # autres boutiques génériques. | |
| 203 | + extra = [u if u.startswith("http") else f"{self.base}{u}" | |
| 204 | + for u in (self.store.get("sitemap_roots") or [])] | |
| 205 | + roots = extra + roots | |
| 197 | 206 | queue, depth_left = list(roots), 3 |
| 198 | 207 | fetched_roots = 0 |
| 199 | 208 | while queue and fetched_roots < 60: |
| 200 | 209 | |