Site pour un acheteur agent : la liste de contrôle

Le 9 septembre 2026, OpenAI a ouvert un service dédié au lancement d'agents autonomes: des programmes qui reçoivent une tâche et la mènent à son terme, y compris la validation de la commande. Autrement dit, sur le site d'une boutique arrive un acheteur qui ne regarde pas la fiche produit avec ses yeux, il lit des données. J'ai relu la documentation d'OpenAI sur le commerce et j'ai ramassé le tout en une seule liste de corrections: ce qu'il faut dans le balisage, dans le flux produits et dans le paiement pour que cet acheteur arrive jusqu'au bouton et ne reste pas bloqué sur un captcha.
En quoi un agent diffère d'un robot d'indexation classique
Un robot d'indexation vient pour mettre la page dans l'index et montrer ensuite un lien à un humain. Après, les décisions sont prises par l'humain: il devinera que le prix apparaît après le choix de la taille, et il fermera la fenêtre qui propose de s'inscrire à la newsletter.
Un agent ne sait pas faire ça. Il exécute une action: il choisit le produit, le met au panier, transmet le paiement. Tout ce que l'humain traverse à l'intuition doit être écrit noir sur blanc dans les données pour un programme: prix, disponibilité, délai de livraison, conditions de retour.
L'achat, d'ailleurs, ne vit plus seulement sur la page produit. Le 13 septembre 2026, Snapchat a ajouté des fiches produits directement dans les messages privés: avant, elles s'affichaient dans la vitrine de l'application, maintenant on peut envoyer un produit à quelqu'un dans une conversation. Le site ne s'ouvre pas, et tout ce qui arrive jusqu'à l'acheteur vient de vos données, pas de votre design.
Instant Checkout et ACP: là où l'achat se fait dans le chat
Instant Checkout, c'est la validation de la commande directement dans l'interface de ChatGPT, sans passer sur le site de la boutique. Il fonctionne sur l'Agentic Commerce Protocol (ACP), un standard ouvert d'achat à l'intérieur d'un assistant IA, que Stripe a développé avec OpenAI.
Trois choses sont demandées à la boutique: un flux produits, l'implémentation de l'Agentic Checkout Spec (échange de l'état de la commande) et du Delegated Payment Spec (transmission du paiement). L'accès n'est pour l'instant réservé qu'aux partenaires validés, la candidature se dépose sur chatgpt.com/merchants, et l'intégration commence par la vérification d'un flux de test. D'après Stripe, les acheteurs aux États-Unis ont d'abord eu accès aux produits des vendeurs Etsy, puis se connectent plus de 1,000,000 de vendeurs Shopify, dont Glossier, Vuori, Spanx et SKIMS.
Détail important pour ceux qui calculent les risques: l'argent et la commande restent du côté de la boutique. OpenAI n'est pas merchant of record, c'est-à-dire vendeur au sens juridique: la taxe est calculée par la boutique, le contrôle antifraude est fait par la boutique, le débit passe par son propre acquéreur, et elle renvoie à ChatGPT le statut "accepté" ou "refusé".
Le Delegated Payment Spec fonctionne ainsi: OpenAI forme une demande de paiement à usage unique avec un montant maximal de débit et une date d'expiration, le prestataire de paiement renvoie un jeton. La première implémentation compatible est le Shared Payment Token de Stripe, et les cartes éligibles sont en plus converties en jetons réseau.
Et une limite honnête: le chargement standard du flux chez OpenAI visé par défaut les États-Unis, les colonnes target_countries et store_country n'y changent rien, le format général décrit pour l'instant US, CA et MX. Si la boutique n'est pas dans ces pays, le travail d'une semaine consiste à préparer les données, pas à lancer des ventes dans le chat.
Le balisage: Product et Offer visibles sans JavaScript
Le minimum dont tout le monde a besoin, même sans intégration du checkout: les données structurées Schema.org sur la page produit. Le type Product avec le nom et l'image, à l'intérieur un Offer avec le prix, la devise et availability (la disponibilité). Ce sont les mêmes champs que Google demande pour les résultats produits, donc le travail n'est pas à usage unique.
La vérification est simple, je la fais en premier. Je désactive JavaScript dans le navigateur et j'ouvre la page produit. Le prix, la disponibilité et le bouton de commande sont visibles: les données sont bien dans le HTML. Ils ne sont pas visibles: c'est un script qui les dessine après un clic, et l'agent reçoit une page vide avec un nom dessus.
Le même test attrape le deuxième problème: le prix qui n'apparaît qu'après le choix d'une variante. Si le produit a cinq tailles et que le prix est injecté par un script, le balisage doit contenir un Offer par variante, sinon il n'y a aucun prix dans les données.
Le flux: 9 champs obligatoires et les valeurs qui font sauter une ligne
Pour que les produits apparaissent dans les réponses de ChatGPT, il faut un flux, et dans la spécification d'OpenAI chaque ligne compte 9 champs obligatoires: item_id, title, description, url, brand, seller_name, image_url, availability, price. Format CSV ou JSON.
Le champ availability n'accepte que cinq valeurs: in_stock, out_of_stock, pre_order, backorder, unknown. Une valeur manquante, vide ou inconnue fait rejeter toute la ligne, autrement dit le produit n'existe tout simplement pas pour l'agent. Le prix s'écrit "79.99 USD", sans séparateur de milliers.
Les limites de contenu dans ce même flux: title jusqu'à 150 caractères, description jusqu'à 5,000 caractères en texte simple. Les champs url et image_url doivent s'ouvrir publiquement en http ou https, sans identifiant ni mot de passe: un flux derrière une authentification ne sert à rien. Le GTIN fait strictement 8, 12, 13 ou 14 chiffres, avec une clé de contrôle correcte.
Un piège à part, sur lequel j'aurais moi-même trébuché: OpenAI a un deuxième profil de flux, compatible Google, et là les mêmes notions s'écrivent autrement. Colonnes id, title, description, link, image_link, availability, price, brand; la précommande s'écrit preorder et non pre_order; la valeur unknown n'est pas acceptée; availability_date est obligatoire pour preorder et backorder. Un prix à zéro n'est autorisé que pour les téléphones mobiles (catégorie 267) et les tablettes (catégorie 4745), accompagné de subscription_cost.
- item_id, title, description, url, brand, seller_name, image_url, availability, price sur chaque ligne
- availability uniquement parmi les cinq valeurs autorisées
- prix au format 79.99 USD
- title jusqu'à 150 caractères, description jusqu'à 5,000
- url et image_url accessibles sans identifiant
- GTIN de 8, 12, 13 ou 14 chiffres
J'ai réuni les deux profils de flux dans un seul tableau: colonne "champ", colonne "comment ça s'écrit chez OpenAI", colonne "comment ça s'écrit dans le profil compatible Google", colonne "ce qui casse en cas d'erreur". Une heure de remplissage, mais j'ai arrêté d'ouvrir la documentation à chaque fois pour deviner si c'est pre_order ou preorder.
Fréquence de mise à jour: une fois par jour pour Google, jusqu'à 15 minutes pour ACP
Google Merchant Center, l'interface des données produits de Google, exige un flux à jour rafraîchi au moins une fois par jour. La spécification publique du flux produits ACP du 1 juin 2026 annonce une fréquence allant jusqu'à toutes les 15 minutes, tandis que l'intégration avec OpenAI suppose des instantanés quotidiens du catalogue.
Le sens pratique tient en une phrase: si la disponibilité change sur le site plus souvent que le flux ne se met à jour, l'agent commandera ce qui n'existe pas et se fera refuser à l'étape du paiement. Les refus, ce n'est pas seulement une commande perdue, c'est aussi la réputation de la boutique abîmée dans un canal où la décision est prise par un programme.
Le drapeau is_eligible_checkout et les deux pages sans lesquelles le checkout ne sera pas activé
Dans le flux OpenAI, la possibilité d'acheter dépend du drapeau is_eligible_checkout. Il ne se déclenche qu'à deux conditions: le champ is_eligible_search est aussi à true et le checkout est activé pour votre intégration. Autrement dit, le produit doit d'abord être autorisé à l'affichage, et seulement ensuite à l'achat.
Pour le checkout, deux autres champs avec des adresses publiques sont de fait obligatoires: seller_privacy_policy (politique de confidentialité) et seller_tos (conditions de vente). Si dans la boutique ces pages vivent dans l'espace client ou dans un PDF derrière une authentification, il faudra les rendre publiques.
À savoir aussi: la découverte et le checkout sont deux tâches différentes. D'après l'analyse de Paz.ai du 15 août 2026, ACP décrit précisément la session d'achat, et un produit peut apparaître dans les réponses de ChatGPT via le flux, sans implémenter l'ACP checkout. Il n'y a pas de commission au niveau du protocole, vous payez seulement l'acquisition et la plateforme.
Ce qui arrête l'agent net
Trois choses réduisent à néant tout le travail sur le balisage, parce que le programme ne peut pas les franchir.
- Un captcha sur le chemin de la fiche, du panier ou de la commande. L'humain le résout en 5 secondes, l'agent bute et repart.
- L'inscription obligatoire avant de voir le prix. Si le prix n'est visible que pour un utilisateur connecté, pour l'agent il n'y a pas de prix.
- Un paiement qui n'existe que sous forme d'un écran unique avec un widget, sans étape séparée avec un jeton de paiement. L'agent a besoin d'un parcours découpé: confirmer le contenu de la commande, obtenir le montant, transmettre le paiement.
La quatrième, je la vois le plus souvent et c'est la plus rageante: les règles pour les crawlers IA dans le robots.txt, fermées il y a un an "au cas où". Le fichier robots.txt se trouve à la racine du site et indique aux robots où ils peuvent aller. Tant qu'il y a une interdiction pour les crawlers IA, la boutique est coupée des scénarios agentiques dans leur ensemble, et aucun balisage n'y changera rien.
Attribution: comment retrouver ensuite les commandes agentiques dans les rapports
Une commande passée dans le chat arrive sans la visite habituelle sur le site, donc dans le rapport par canaux elle peut se déposer dans le trafic direct ou nulle part. OpenAI, dans la section des recommandations, conseille explicitement d'ajouter des paramètres dans le champ url du flux, par exemple utm_medium=feed, et de les garder identiques entre les instantanés du catalogue: sinon le même produit sera compté comme plusieurs liens différents.
La seconde moitié du suivi sort du site. Depuis le 10 septembre 2026, Google Ads accepte les ventes hors ligne, c'est-à-dire l'import de ventes qui ont eu lieu ailleurs que dans un navigateur. Pour les commandes agentiques, c'est le même mécanisme: la transaction est apparue dans votre CRM, et il faut la porter jusqu'à la régie par un import, pas par un pixel.
On voit du même coup où va le canal: le 10 septembre 2026, Search Engine Land a rapporté qu'Amazon teste l'achat d'espaces publicitaires dans ChatGPT via sa propre plateforme d'achat média. L'endroit où l'agent choisit le produit devient un espace avec des places payantes, et y arriver gratuitement sera de plus en plus difficile.
Si la boutique est sur une plateforme, une partie du travail est déjà faite
Avant d'écrire l'intégration à la main, vérifiez la plateforme. Search Engine Journal écrivait le 16 juin 2026 que les Agentic Storefronts de Shopify sont activés par défaut pour les vendeurs éligibles aux États-Unis et diffusent le catalogue dans ChatGPT, Google AI Mode, Microsoft Copilot et Perplexity depuis une seule interface d'administration. Pour une petite boutique, le choix du protocole est aujourd'hui déterminé par la plateforme, pas par le développeur.
- Jour 1test avec JavaScript désactivé sur 10 fiches, liste de ce qui n'est pas visible
- Jour 2Product et Offer avec prix, disponibilité et variantes dans le HTML
- Jour 3flux avec les 9 champs obligatoires d'OpenAI, validation d'un export de test
- Jour 4comparaison des deux profils de flux: pre_order contre preorder, availability_date pour les précommandes
- Jour 5levée des interdictions pour les crawlers IA dans le robots.txt, mise en accès public de la politique et des conditions de vente
- Jour 6paramètres utm dans le champ url du flux, identiques entre les exports
- Jour 7mise à jour du flux au moins une fois par jour et import des ventes hors ligne dans la régie
Ce qu'on peut faire en une heure, dès aujourd'hui
- Ouvrir 5 fiches produits avec JavaScript désactivé et noter ce qui a disparu: prix, disponibilité, bouton.
- Ouvrir le robots.txt et regarder s'il n'y a pas d'interdictions pour les crawlers IA.
- Vérifier dans le flux le champ availability: toutes les valeurs uniquement parmi la liste autorisée, aucune vide.
- S'assurer que la politique de confidentialité et les conditions de vente s'ouvrent via un lien public, sans connexion à un compte.
Si vous voulez, je regarde votre flux et le balisage de vos fiches et je vous dis à quelle étape l'agent va décrocher, écrivez au support.



Aleksandr