Caratteristiche e vantaggi del modulo
- Markdown costruito dagli oggetti PrestaShop, e non tramite conversione della pagina renderizzata — il documento non contiene menu, footer, moduli né codice di altri moduli.
- Costo dei token radicalmente inferiore lato agente: l’intestazione X-Markdown-Tokens-Estimate in ogni risposta fornisce una stima della dimensione del documento, e il pannello mostra il confronto Markdown vs HTML per l’entità indicata.
- Due canali di distribuzione indipendenti — negoziazione del contenuto sull’indirizzo canonico e indirizzi .md separati — così l’agente raggiunge il contenuto indipendentemente dal fatto che invii l’intestazione Accept.
- Salvaguardia diagnostica prima di attivare la negoziazione: il modulo non consente di avviare la funzione finché non misura con richieste HTTP reali che un intermediario di cache non avvelenerà la cache condivisa.
- Principio “l’agente non vede mai più di un ospite” implementato come regola, non come singole eccezioni — le impostazioni di visibilità del negozio si applicano agli agenti esattamente come a un visitatore anonimo.
- Prezzi calcolati nel contesto dell’ospite, con risoluzione esplicita di valuta e paese, così la cache non memorizzerà il prezzo di un cliente per poi mostrarlo a tutti gli altri.
- Pieno supporto multistore e multilingua: impostazioni, file llms, cache e contatore sono gestiti separatamente per ogni negozio e per ogni lingua.
- Zero dipendenze esterne — senza Composer, senza librerie esterne, senza chiamate a servizi di terze parti; il modulo non invia i dati del tuo negozio da nessuna parte al di fuori della risposta alla richiesta.
- Non raccoglie dati personali: il contatore degli accessi registra esclusivamente giorno, negozio, canale e famiglia del client, senza indirizzi IP, sessioni, URL completi e User-Agent completo.
- Compatibilità da PrestaShop 1.7.1.0 a 9.x e da PHP 7.0 a 8.5, verificata su alberi sorgente reali, non solo dichiarata.
Funzionalità principali del modulo
- Negoziazione del contenuto sugli indirizzi canonici del negozio: una richiesta con Accept: text/markdown riceve un documento Markdown, una richiesta del browser riceve l’HTML invariato.
- Intestazione Vary: Accept e tag Link: rel="alternate" sulle pagine HTML gestite dal modulo, così intermediari e agenti sanno che esiste una versione alternativa.
- Indirizzi paralleli markdown/{typ}/{id}.md per prodotti, categorie, pagine CMS e produttori, con un proprio prefisso, per non entrare in conflitto con altri moduli che riscrivono gli URL.
- File llms.txt — elenco curato delle sezioni più importanti del negozio: categorie di livello superiore, pagine informative e collegamento all’indice completo.
- File llms-full.txt — indice compatto delle entità: titolo, indirizzo canonico, indirizzo .md, prezzo, disponibilità, SKU e riepilogo; suddiviso automaticamente in parti dopo il superamento della dimensione configurata.
- Generazione di llms-full.txt esclusivamente tramite endpoint cron protetto da token, mai durante la richiesta di un visitatore, con budget di tempo e ripresa della ricostruzione interrotta.
- Token cron separato per ogni negozio, confrontato in tempo costante, con comando curl pronto da copiare nel pannello.
- Cache del Markdown generato nel database con durata configurabile e invalidazione tramite hook in caso di modifica di prodotto, combinazione, prezzo promozionale, regola di prezzo, stato di magazzino, categoria, pagina CMS e produttore.
- Scheda Diagnostica: sette controlli eseguiti con richieste HTTP reali contro il punto di sondaggio del modulo, con distinzione separata tra i guasti “HTML servito all’agente” e “Markdown servito al browser”.
- Controllo informativo del vero indirizzo di directory dopo l’attivazione della negoziazione, presentato separatamente e senza bloccare la funzione.
- Anteprima del documento nel pannello per il tipo e l’identificatore di entità indicati, insieme al contatore dei token Markdown vs HTML e a un verdetto esplicito sulla visibilità dell’entità.
- Scheda File: stato dei file llms per ogni lingua (presenza, dimensione, data, numero di entità, numero di parti), pulsante di ricostruzione manuale con budget di tempo e comando cron.
- Contatore degli accessi degli agenti: aggregato giorno × negozio × canale × famiglia del client, con suddivisione nei canali negoziazione, percorso .md e llms e nelle famiglie openai, anthropic, perplexity, google, bing, script, browser e other.
- Intestazioni di risposta coerenti con la destinazione del contenuto: X-Robots-Tag: noindex, nofollow sui documenti Markdown, X-Content-Type-Options: nosniff, ETag con supporto 304 e policy Cache-Control differenziata per l’indirizzo canonico e l’indirizzo .md.
- Dati del prodotto nell’intestazione del documento: tipo, identificatore, indirizzo canonico, indirizzo Markdown, titolo, SKU, marchio, prezzo lordo e netto, valuta, informazione fiscale, disponibilità, indicazione di bundle, obbligo di personalizzazione, stato del prodotto, categorie, lingua e data di aggiornamento.
- Prezzo regolare e importo e percentuale dello sconto, quando il prodotto è in promozione — l’agente non vedrà il prezzo promozionale come se fosse quello normale.
- Tabella delle varianti con prezzo, quantità, disponibilità e identificatore della combinazione, così l’agente può indicare una variante specifica e non solo descriverla.
- Contenuto dei bundle di prodotto con quantità e collegamenti ai documenti Markdown delle singole voci.
- Informazione sui campi di personalizzazione obbligatori, con esclusione dei campi appartenenti ad altri moduli che PrestaShop non mostra nel frontend.
- Selezione dei tipi di entità resi disponibili agli agenti, applicata in modo uniforme in tutti i canali: nei percorsi .md, nei file llms e nel tag della versione alternativa.
- Directory di lavoro del modulo protetta dalla lettura diretta via rete, e file llms serviti esclusivamente dai controller del modulo.
- Rispetto della modalità manutenzione del negozio e della geolocalizzazione — un negozio chiuso ai visitatori è chiuso anche agli agenti.
- Pannello in convenzione PD con intestazione del modulo e barra delle schede, con suggerimenti accanto alle impostazioni dalle conseguenze onerose, come la frammentazione della cache CDN.
Applicazione aziendale
- Per i negozi PrestaShop che vogliono essere letti correttamente dagli assistenti agli acquisti e dagli agenti AI, invece di sperare che il modello ripulisca da solo la pagina HTML.
- Per i venditori che vogliono controllare con precisione cosa arriva agli agenti — l’ambito dei tipi di entità, la visibilità di prezzi e quantità e la modalità di pubblicazione.
- Per i negozi con un catalogo esteso, in cui la differenza tra una pagina HTML completa e un documento Markdown si traduce in una reale differenza di costo lato interrogante.
- Per implementazioni multistore, in cui ogni negozio richiede le proprie impostazioni, i propri file llms e il proprio token cron.
- Per le aziende che vogliono basare la decisione su ulteriori investimenti in questo canale sui dati — il contatore degli accessi mostra se e da dove gli agenti interrogano realmente.
- Per i negozi che operano dietro CDN o reverse proxy, dove attivare autonomamente la negoziazione del contenuto senza verifica rischierebbe di servire la versione sbagliata della pagina ai clienti normali.
Cosa il modulo non fa
- Non è un modulo SEO e non migliora il posizionamento del negozio nei risultati di ricerca di Google — i documenti Markdown sono esplicitamente contrassegnati come non indicizzabili.
- Non modifica l’aspetto, il contenuto né le prestazioni della pagina HTML vista dai clienti; la pagina gestita dal modulo riceve esclusivamente intestazioni aggiuntive che informano dell’esistenza di una versione alternativa.
- Non invia i dati del negozio a nessun servizio esterno e non richiede account né chiave API.
- Non traduce le etichette strutturali del documento — i nomi dei campi restano fissi e in inglese, perché sono destinati alla macchina, mentre il contenuto dell’entità è sempre nella lingua del negozio.
Compatibilità
- PrestaShop: 1.7.1.0 - 9.x
- PHP: 7.0 - 8.5
- Senza Composer e senza librerie esterne
- Multistore: sì, impostazioni e file gestiti separatamente per ogni negozio
- Multilingua: sì, documenti e file llms per ogni lingua attiva