Un sito per il compratore-agente: la checklist di prontezza

Il 9 settembre 2026 OpenAI ha aperto un servizio dedicato all'avvio di agenti autonomi: programmi che ricevono un compito e lo portano a termine, compreso il completamento dell'ordine. Vuol dire che sul sito del negozio arriva un compratore che non guarda la scheda con gli occhi, ma legge i dati. Ho riletto la documentazione di OpenAI sul commercio e ho raccolto tutto in un unico elenco di correzioni: cosa serve nel markup, nel feed e nel pagamento perché quel compratore arrivi al pulsante e non si blocchi su un captcha.
In cosa un agente è diverso da un normale crawler di ricerca
Il crawler di ricerca arriva per mettere la pagina nell'indice e poi mostrare a una persona un link. Da lì decide la persona: intuisce che il prezzo comparirà dopo aver scelto la taglia e chiude la finestra con l'iscrizione alla newsletter.
L'agente non sa farlo. Lui compie un'azione: scegle il prodotto, lo mette nel carrello, trasmette il pagamento. Tutto quello che una persona supera per intuito, per un programma deve essere scritto esplicitamente nei dati: prezzo, disponibilità, tempi di consegna, condizioni di reso.
L'acquisto, del resto, ha smesso di vivere solo sulla pagina prodotto. Snapchat il 13 settembre 2026 ha aggiunto le schede prodotto direttamente nei messaggi privati: prima si mostravano nella vetrina dell'app, ora il prodotto si può inviare a una persona in chat. Il sito, in questo caso, non si apre nemmeno, e tutto quello che arriva al compratore viene dai vostri dati, non dal vostro design.
Instant Checkout e ACP: dove avviene l'acquisto dentro la chat
Instant Checkout è il completamento dell'ordine direttamente nell'interfaccia di ChatGPT, senza passare sul sito del negozio. Funziona su Agentic Commerce Protocol (ACP), lo standard aperto per l'acquisto dentro un assistente AI, sviluppato da Stripe insieme a OpenAI.
Al negozio servono tre cose: un feed prodotti, l'implementazione dell'Agentic Checkout Spec (scambio dello stato dell'ordine) e del Delegated Payment Spec (trasmissione del pagamento). L'accesso per ora è solo per partner approvati, la richiesta si invia su chatgpt.com/merchants, e l'integrazione comincia dalla verifica di un feed di prova. Secondo i dati di Stripe, ai compratori negli Stati Uniti sono stati aperti prima i prodotti dei venditori Etsy, poi si collegano oltre 1,000,000 di venditori Shopify, tra cui Glossier, Vuori, Spanx e SKIMS.
Dettaglio importante per chi valuta i rischi: il denaro e l'ordine restano dal lato del negozio. OpenAI non è merchant of record, cioè non è il venditore in senso giuridico: le imposte le calcola il negozio, il controllo antifrode lo fa il negozio, l'addebito lo esegue il negozio con il proprio acquiring e a ChatGPT torna solo lo stato "accettato" o "rifiutato".
Il Delegated Payment Spec funziona così: OpenAI genera una richiesta di pagamento monouso con un importo massimo di addebito e una scadenza, il provider di pagamento restituisce un token. La prima implementazione compatibile è Stripe Shared Payment Token, e le carte idonee vengono inoltre convertite in token di rete.
E un confine onesto: il caricamento standard del feed su OpenAI è per impostazione predefinita orientato agli Stati Uniti, le colonne target_countries e store_country non cambiano la cosa, e il formato generale oggi descrive US, CA e MX. Se il negozio non è in questi paesi, il lavoro di una settimana è la preparazione dei dati, non l'avvio delle vendite in chat.
Markup: Product e Offer visibili senza JavaScript
Il minimo che serve a tutti, anche senza integrazione del checkout: i dati strutturati Schema.org sulla pagina prodotto. Il tipo Product con nome e immagine, dentro un Offer con prezzo, valuta e availability (disponibilità). Sono gli stessi campi che Google chiede per i risultati prodotto, quindi il lavoro non è usa e getta.
La verifica è semplice, la faccio per prima. Disattivo JavaScript nel browser e apro la pagina prodotto. Se prezzo, disponibilità e pulsante d'ordine si vedono, i dati sono nell'HTML. Se non si vedono, li disegna uno script dopo il clic, e l'agente riceve una pagina vuota con un nome.
Lo stesso test individua il secondo guaio: il prezzo che compare solo dopo la scelta della variante. Se il prodotto ha cinque taglie e il prezzo viene inserito da uno script, nel markup deve esserci un Offer per ogni variante, altrimenti nei dati non c'è nessun prezzo.
Feed: 9 campi obbligatori e i valori che fanno saltare la riga
Perché i prodotti finiscano nelle risposte di ChatGPT serve un feed, e nella specifica di OpenAI ogni riga ha 9 campi obbligatori: item_id, title, description, url, brand, seller_name, image_url, availability, price. Formato CSV o JSON.
Il campo availability accetta solo cinque valori: in_stock, out_of_stock, pre_order, backorder, unknown. Un valore mancante, vuoto o non riconosciuto fa scartare tutta la riga, cioè il prodotto semplicemente non esiste per l'agente. Il prezzo si scrive come "79.99 USD", senza separatori delle migliaia.
Limiti di contenuto nello stesso feed: title fino a 150 caratteri, description fino a 5,000 caratteri in testo semplice. I campi url e image_url devono aprirsi pubblicamente via http o https, senza login e password: un feed dietro autenticazione è inutile. Il GTIN deve avere esattamente 8, 12, 13 o 14 cifre con cifra di controllo corretta.
Una trappola a parte, su cui io stessa sarei inciampata: OpenAI ha un secondo profilo di feed, compatibile con Google, e lì gli stessi significati si scrivono in modo diverso. Le colonne sono id, title, description, link, image_link, availability, price, brand; il preordine si scrive preorder, non pre_order; il valore unknown non viene accettato; availability_date è obbligatorio per preorder e backorder. Il prezzo zero è ammesso solo per telefoni cellulari (categoria 267) e tablet (categoria 4745) insieme a subscription_cost.
- item_id, title, description, url, brand, seller_name, image_url, availability, price in ogni riga
- availability solo tra i cinque valori ammessi
- prezzo nel formato 79.99 USD
- title fino a 150 caratteri, description fino a 5,000
- url e image_url si aprono senza login
- GTIN di 8, 12, 13 o 14 cifre
Ho messo i due profili di feed in un'unica tabella: colonna "campo", colonna "come si scrive in OpenAI", colonna "come si scrive nel profilo compatibile con Google", colonna "cosa si rompe in caso di errore". Ci ho messo un'ora, ma ho smesso di aprire la documentazione ogni volta per indovinare se è pre_order o preorder.
Frequenza di aggiornamento: una volta al giorno per Google, fino a 15 minuti per ACP
Google Merchant Center, il pannello per i dati prodotto di Google, richiede un feed aggiornato almeno una volta al giorno. La specifica pubblica del feed prodotti ACP del 1 giugno 2026 dichiara una frequenza fino a ogni 15 minuti, mentre l'integrazione con OpenAI prevede snapshot quotidiani del catalogo.
Il senso pratico è uno: se la disponibilità sul sito cambia più spesso di quanto si aggiorni il feed, l'agente ordinerà cose che non ci sono e riceverà un rifiuto in fase di pagamento. I rifiuti non sono solo un ordine perso, ma anche una reputazione rovinata in un canale dove decide un programma.
Il flag is_eligible_checkout e le due pagine senza cui il checkout non viene attivato
Nel feed di OpenAI la possibilità di acquistare dipende dal flag is_eligible_checkout. Si attiva solo a due condizioni: il campo is_eligible_search è anch'esso true e il checkout è abilitato per la vostra integrazione. Cioè prima il prodotto deve essere ammesso alla visualizzazione, e solo dopo all'acquisto.
Per il checkout sono di fatto obbligatori altri due campi con indirizzi pubblici: seller_privacy_policy (informativa privacy) e seller_tos (condizioni di vendita). Se nel negozio queste pagine vivono dentro l'area riservata o in un PDF dietro autenticazione, bisognerà portarle in accesso libero.
Va detto a parte che discovery e checkout sono compiti diversi. Secondo l'analisi di Paz.ai del 15 agosto 2026, ACP descrive proprio la sessione di acquisto, mentre finire nelle risposte di ChatGPT un prodotto può farlo tramite il feed anche senza implementare ACP checkout. Commissioni a livello di protocollo non ci sono, pagate solo acquiring e piattaforma.
Cosa blocca l'agente del tutto
Tre cose azzerano tutto il lavoro sul markup, perché il programma non riesce a superarle.
- Captcha sul percorso verso la scheda, il carrello o la cassa. Una persona lo risolve in 5 secondi, l'agente si ferma e va via.
- Registrazione obbligatoria prima di vedere il prezzo. Se il prezzo è visibile solo all'utente autenticato, per l'agente il prezzo non esiste.
- Un pagamento che esiste solo come una schermata unica con un widget, senza uno step separato con il token di pagamento. All'agente serve un percorso scomponibile: confermare la composizione dell'ordine, ottenere l'importo, trasmettere il pagamento.
La quarta la vedo più spesso di tutte ed è la più amara: le regole per i crawler AI in robots.txt, chiuse un anno fa "per sicurezza". Il file robots.txt sta nella radice del sito e dice ai robot dove possono andare. Finché lì c'è un divieto per i crawler AI, il negozio è tagliato fuori dagli scenari agentici del tutto, e nessun markup potrà aiutare.
Attribuzione: come ritrovare poi gli ordini agentici nei report
Un ordine effettuato in chat arriva senza la solita visita al sito, quindi nel report per canali può depositarsi nel traffico diretto o da nessuna parte. OpenAI, nella sezione con le raccomandazioni, consiglia esplicitamente di aggiungere parametri nel campo url del feed, per esempio utm_medium=feed, e di mantenerli identici tra gli snapshot del catalogo: altrimenti lo stesso prodotto verrà contato come link diversi.
L'altra metà della contabilità esce dai confini del sito. Google Ads dal 10 settembre 2026 accetta le vendite offline, cioè il caricamento delle vendite avvenute non nel browser. Per gli ordini agentici il meccanismo è lo stesso: la vendita è comparsa nel vostro CRM e va portata nel pannello pubblicitario con un caricamento, non con un pixel.
Si capisce anche dove va il canale: il 10 settembre 2026 Search Engine Land ha riportato che Amazon sta testando il posizionamento di pubblicità in ChatGPT tramite la propria piattaforma di acquisto media. Il posto dove l'agente scegle il prodotto diventa uno spazio con posizioni a pagamento, e arrivarci gratis col tempo sarà più difficile.
Se il negozio è su una piattaforma, parte del lavoro è già fatta
Prima di scrivere l'integrazione a mano, controllate la piattaforma. Search Engine Journal il 16 giugno 2026 scriveva che gli Shopify Agentic Storefronts sono attivi per impostazione predefinita per i venditori idonei negli Stati Uniti e distribuiscono il catalogo a ChatGPT, Google AI Mode, Microsoft Copilot e Perplexity da un solo pannello. Per un negozio piccolo, oggi la scelta del protocollo la determina la piattaforma, non lo sviluppatore.
- Giorno 1test con JavaScript disattivato su 10 schede, elenco di quello che non si vede
- Giorno 2Product e Offer con prezzo, disponibilità e varianti nell'HTML
- Giorno 3feed con i 9 campi obbligatori di OpenAI, validazione del caricamento di prova
- Giorno 4confronto dei due profili di feed: pre_order contro preorder, availability_date per i preordini
- Giorno 5rimozione dei divieti per i crawler AI in robots.txt, informativa privacy e condizioni di vendita in accesso libero
- Giorno 6parametri utm nel campo url del feed, identici tra i caricamenti
- Giorno 7aggiornamento del feed almeno una volta al giorno e caricamento delle vendite offline nel pannello pubblicitario
Cosa fare in un'ora, oggi stesso
- Aprire 5 schede prodotto con JavaScript disattivato e annotare cosa è scomparso: prezzo, disponibilità, pulsante.
- Aprire robots.txt e guardare se ci sono divieti per i crawler AI.
- Controllare nel feed il campo availability: tutti i valori solo dall'elenco ammesso, nessuno vuoto.
- Verificare che informativa privacy e condizioni di vendita si aprano con un link pubblico, senza accesso all'area riservata.
Se volete, guardo il vostro feed e il markup delle schede e vi dico a quale passaggio l'agente si perde, scrivete al supporto.



Aleksandr