Transmettre vos offres : flux marchand v1.0
Une boutique peut remplacer la collecte automatique par un flux qu'elle produit elle-même. Un flux n'améliore jamais le classement : chaque offre passe par la même chaîne de validation, de dédoublonnage et d'historique que les offres relevées. Toute ligne invalide est rejetée avec son motif, jamais corrigée en silence.
Schéma
Fichier JSON Schema public : /donnees/flux-marchand.schema.json. Enveloppe : { "version": "1.0", "boutique": "…", "genere_le": "…", "offres": [ … ] } (5000 offres maximum par flux).
| Champ | Type | Règle |
|---|---|---|
url_produit requis | string (uri) | Fiche publique, https. Sert de clé de doublon avec la quantité. |
nom requis | string | |
categorie requis | resine | fleur | huile | concentre | infusion | gummies | eliquide | |
quantite requis | number | Quantité vendue (jamais le poids d'expédition). |
unite requis | g | ml | piece | |
prix_ttc requis | number | Prix TTC payé pour cette quantité, en euros. |
prix_normal_ttc | number | Prix barré si promotion (doit être > prix_ttc). |
disponibilite | en_stock | rupture | precommande | |
concentration_pct | number | |
cbd_mg | integer | |
spectre | full spectrum | broad spectrum | isolat | |
culture | indoor | greenhouse | outdoor | |
bio | boolean | |
lot | string | |
url_analyse | string (uri) |
Exemple minimal
{
"version": "1.0",
"boutique": "Ma Boutique CBD",
"genere_le": "2026-09-13T06:00:00Z",
"offres": [
{
"url_produit": "https://maboutique.example/produits/resine-charas-10g",
"nom": "Résine Charas 10 g",
"categorie": "resine",
"quantite": 10,
"unite": "g",
"prix_ttc": 34.9,
"prix_normal_ttc": 39.9,
"disponibilite": "en_stock",
"lot": "CH-2609",
"url_analyse": "https://maboutique.example/analyses/CH-2609.pdf"
},
{
"url_produit": "https://maboutique.example/produits/huile-10-pct",
"nom": "Huile CBD 10 % full spectrum 10 ml",
"categorie": "huile",
"quantite": 10,
"unite": "ml",
"prix_ttc": 29.9,
"concentration_pct": 10,
"cbd_mg": 1000,
"spectre": "full spectrum"
}
]
}CSV
Mêmes colonnes en en-tête, séparateur ; ou ,, une offre par ligne, bio = oui/non. Le CSV est converti au format JSON ci-dessus avant validation.
Règles de refus
- version différente de
1.0; - URL de fiche non https, catégorie ou unité hors liste ;
- prix TTC inférieur à 1 €, quantité à zéro, prix unitaire hors plage plausible ;
- prix barré inférieur ou égal au prix payé ;
- deux lignes pour la même fiche et la même quantité.
Transmission
Envoyez l'URL publique de votre flux (JSON ou CSV, mise à jour au moins hebdomadaire) via le formulaire de contact. Le flux est relu à chaque collecte quotidienne ; ses offres portent la mention « flux marchand » comme preuve d'origine.