• New
Markdown4Agents Pro for PrestaShop — store content in Markdown for AI agents
Markdown4Agents Pro for PrestaShop — store content in Markdown for AI agents
Markdown4Agents Pro for PrestaShop — store content in Markdown for AI agents
Markdown4Agents Pro for PrestaShop — store content in Markdown for AI agents
Markdown4Agents Pro for PrestaShop — store content in Markdown for AI agents
Markdown4Agents Pro for PrestaShop — store content in Markdown for AI agents
Markdown4Agents Pro for PrestaShop — store content in Markdown for AI agents
Markdown4Agents Pro for PrestaShop — store content in Markdown for AI agents

Markdown4Agents Pro for PrestaShop — store content in Markdown for AI agents

Module version: 1.2.0

PrestaShop compatibility: 1.7.x 8.x 9.x

Module file updated: 09/11/2026 17:52:14

Product data updated: 09/11/2026 17:54:49


PD Markdown4Agents Pro is a PrestaShop module that makes your store content available to AI assistants and agents in Markdown format, instead of forcing them to process the full HTML page. The module operates through two independent channels: content negotiation on the canonical product URL (a request with the Accept: text/markdown header receives Markdown, while the browser still receives HTML) and parallel .md URLs for agents that do not send that header. The document is generated directly from PrestaShop data — product, category, CMS page, and manufacturer — rather than by denoising rendered HTML, so it contains prices, variants, features, and availability as data, not as text to be guessed. The module also generates llms.txt and llms-full.txt files, i.e. a machine-readable table of contents for the store compliant with the increasingly widespread convention for language models. The built-in diagnostics act as a safeguard: content negotiation is installed disabled and cannot be enabled until a test confirms with real HTTP requests that this store’s stack — CDN, reverse proxy, cache — will not serve Markdown to the browser or HTML to the agent. The generated Markdown is cached in the database and invalidated by hooks when a product, combination, promotion, stock status, category, CMS page, or manufacturer changes, so it is not regenerated on every request. The module consistently enforces the rule that an agent never sees more than an unauthenticated guest: it respects quantity hiding, products unavailable for order, catalog mode, hiding prices from guests, product visibility, maintenance mode, and geolocation. Finally, the built-in hit counter shows what would otherwise be impossible to determine — whether any agent is actually querying your store, through which channel, and how often.

zł 278.00
zł 226.02no tax
Price history:

Description

Module features and benefits

  • Markdown built from PrestaShop objects, not by converting the rendered page — the document contains no menu, footer, forms, or code from other modules.
  • Radically lower token cost on the agent side: the X-Markdown-Tokens-Estimate header in every response provides an estimated document size, and the panel shows a Markdown versus HTML comparison for the selected entity.
  • Two independent delivery channels — content negotiation at the canonical URL and separate .md URLs — so the agent reaches the content regardless of whether it sends the Accept header.
  • A diagnostic safeguard before enabling negotiation: the module does not allow the feature to be activated until it verifies with real HTTP requests that the caching intermediary will not poison the shared cache.
  • The rule “the agent never sees more than a guest” implemented as a rule, not as isolated exceptions — store visibility settings apply to agents exactly as they do to an anonymous visitor.
  • Prices calculated in the guest context, with explicit currency and country resolution, so the cache will not store one customer’s price and serve it to everyone else.
  • Full multistore and multilingual support: settings, llms files, cache, and counter are maintained separately for each store and each language.
  • Zero external dependencies — no Composer, no external libraries, no calls to third-party services; the module does not send your store data anywhere beyond the response to the request.
  • It does not collect personal data: the hit counter stores only the day, store, channel, and client family, without IP addresses, sessions, full URLs, or the full User-Agent.
  • Compatibility from PrestaShop 1.7.1.0 to 9.x and from PHP 7.0 to 8.5, verified against real source trees, not just declared.

Key module functionalities

  • Content negotiation on canonical store URLs: a request with Accept: text/markdown receives a Markdown document, while a browser request receives unchanged HTML.
  • The Vary: Accept header and the Link: rel="alternate" tag on HTML pages covered by the module, so intermediaries and agents know that an alternative version exists.
  • Parallel markdown/{typ}/{id}.md URLs for products, categories, CMS pages, and manufacturers, under their own prefix so they do not conflict with other modules rewriting URLs.
  • The llms.txt file — a curated list of the store’s most important sections: top-level categories, information pages, and a link to the full index.
  • The llms-full.txt file — a compact entity index: title, canonical URL, .md URL, price, availability, SKU, and summary; automatically split into parts after exceeding the configured size.
  • Generation of llms-full.txt exclusively through a token-protected cron endpoint, never during a visitor request, with a time budget and interrupted rebuild resumption.
  • A separate cron token for each store, compared in constant time, with a ready-to-copy curl command in the panel.
  • Generated Markdown cached in the database with a configurable lifetime and invalidation via hooks when a product, combination, promotional price, price rule, stock status, category, CMS page, or manufacturer changes.
  • Diagnostics tab: seven checks performed with real HTTP requests against the module’s own probe endpoint, with separate distinction between the failures “HTML served to the agent” and “Markdown served to the browser”.
  • Informational check of the real catalog URL after enabling negotiation, presented separately and not gating the feature.
  • Document preview in the panel for the selected entity type and ID, together with a Markdown versus HTML token counter and an explicit entity visibility verdict.
  • Files tab: status of llms files for each language (presence, size, date, entity count, part count), a manual rebuild button with a time budget, and the cron command.
  • Agent hit counter: aggregate day × store × channel × client family, split into negotiation, .md route, and llms channels, and openai, anthropic, perplexity, google, bing, script, browser, and other families.
  • Response headers aligned with the purpose of the content: X-Robots-Tag: noindex, nofollow on Markdown documents, X-Content-Type-Options: nosniff, ETag with 304 support, and a differentiated Cache-Control policy for the canonical URL and the .md URL.
  • Product data in the document header: type, ID, canonical URL, Markdown URL, title, SKU, brand, gross and net price, currency, tax information, availability, pack flag, personalization requirement, product condition, categories, language, and update date.
  • Regular price as well as the discount amount and percentage when the product is on promotion — the agent will not see the promotional price as if it were the regular one.
  • Variant table with price, quantity, availability, and combination ID, so the agent can point to a specific variant instead of only describing it.
  • Contents of product packs with quantities and links to the Markdown documents of individual items.
  • Information about required personalization fields, excluding fields belonging to other modules that PrestaShop does not display on the front end.
  • Selection of entity types made available to agents, enforced consistently across all channels: on .md routes, in llms files, and in the alternative version tag.
  • The module’s working directory secured against direct web access, and llms files served exclusively through the module controllers.
  • Respect for store maintenance mode and geolocation — a store closed to visitors is also closed to agents.
  • Panel in the PD convention with the module header and tab bar, with hints next to settings that have costly consequences, such as CDN cache fragmentation.

Business use cases

  • For PrestaShop stores that want to be correctly read by shopping assistants and AI agents, instead of relying on the model to clean up the HTML page on its own.
  • For merchants who want to control exactly what reaches agents — the scope of entity types, the visibility of prices and quantities, and the publication method.
  • For stores with a large catalog, where the difference between a full HTML page and a Markdown document translates into a real cost difference on the querying side.
  • For multistore deployments, where each store requires its own settings, its own llms files, and its own cron token.
  • For companies that want to base decisions about further investment in this channel on data — the hit counter shows whether agents are actually querying, and through which path.
  • For stores operating behind a CDN or reverse proxy, where enabling content negotiation on your own without verification could result in serving the wrong page version to regular customers.

What the module does not do

  • It is not an SEO module and does not improve the store’s ranking in Google search results — Markdown documents are explicitly marked as non-indexable.
  • It does not modify the appearance, content, or performance of the HTML page seen by customers; a page covered by the module receives only additional headers indicating the existence of an alternative version.
  • It does not send store data to any external service and does not require an account or API key.
  • It does not translate the structural labels of the document — field names remain fixed and in English because they are intended for machines, while the entity content is always in the store language.

Compatibility

  • PrestaShop: 1.7.1.0 - 9.x
  • PHP: 7.0 - 8.5
  • No Composer and no external libraries
  • Multistore: yes, settings and files maintained separately for each store
  • Multilingual: yes, documents and llms files for each active language

Product Details

Prestashop 9.x support
Yes
Support for Prestashop 8.x
Yes
Prestashop 1.7.x support
Yes
Module translations
EN, ENG
Free support
Yes
Free updates (1 year)
Yes
Easy Installation
Yes
PDMD4APRO

Changelog

Newest entries first. Click to expand details.

  • dodano obsługę Content Signals
  • dodano obsługę ph_simpleblog
  • dodano obsługę pdfaqpro
  • dodano obsługę productcomments
  • dodano obsługę iqitrewievs

FAQ

Find answers to the most common questions about this product.

The module makes PrestaShop store content available in Markdown format, intended for AI assistants and agents. It operates through two channels: at the canonical product URL, it responds in Markdown when the request includes the Accept: text/markdown header, and for clients that do not send such a header, it provides parallel URLs ending with the .md extension. Additionally, it generates llms.txt and llms-full.txt files, which serve as a machine-readable table of contents for the store. The supported content types are products, categories, CMS pages, and manufacturers.

No. This is not an SEO module and it does not affect rankings in search results. Markdown documents are explicitly marked with the X-Robots-Tag: noindex, nofollow header, which directly asks search engines not to index them. The module addresses a different question than SEO: how to ensure that an AI assistant reads the store’s offer correctly and cost-effectively, instead of processing the entire HTML page together with the menu, footer, and the code of other modules.

The module does not convert the rendered page; instead, it builds the document directly from PrestaShop data. As a result, the price, regular price during a promotion, currency, tax information, availability, SKU, features, variants with quantities and identifiers, and bundle contents are included in the document as structured data rather than text that has to be guessed. HTML conversion, on the other hand, provides whatever happens to be present in the presentation layer, along with interface elements and content from other modules.

No. The customer's browser still receives a regular HTML page, with no changes to its appearance or content. Pages covered by the module only receive additional headers informing intermediaries and user agents that an alternative version exists: Vary: Accept and Link rel="alternate". The module does not modify the theme, does not add scripts to the front end, and does not change the way the page is rendered.

These are two text files in the convention adopted by tools based on language models. llms.txt is a short, curated list of the store’s most important sections: top-level categories, information pages, and a link to the full index. llms-full.txt is a compact index of entities, where each entry contains a title, canonical URL, Markdown version URL, price, availability, SKU, and a short summary, while the agent retrieves the full content only from the document it is interested in. The file is automatically split into parts once the configured size is exceeded.

This is an intentional safeguard. Content negotiation means that under a single address, the response depends on the request header, and this is dangerous if any cache along the way — CDN, reverse proxy, hosting cache — stores one version and serves it to everyone. Then an ordinary customer could see raw text instead of the store page. That is why the switch is locked until the built-in diagnostics verify with real HTTP requests that your store stack behaves correctly in both directions. The diagnostics themselves do not change any settings.

For full operation, yes, but not for running. The llms-full.txt file is built exclusively by a token-protected endpoint and is never generated during a visitor's request, so that a large catalogue does not block the page. In the admin panel, there is a manual rebuild button and a ready command to copy into the task scheduler. Without cron, the module works, and the llms-full.txt files are refreshed only when you click rebuild manually. Each shop has its own separate token.

No. The module consistently follows the principle that the agent never sees more than an unauthenticated guest on the store page. The following are respected: hiding stock quantities, products marked as unavailable for order, catalog mode, hiding prices from the Guest group, product visibility settings, as well as store maintenance mode and geolocation. Prices are calculated in the context of an anonymous visitor, so the cache will not save one customer's price and show it to others.

No. The module does not call any external service, does not require an account or an API key, and does not send any store data beyond the response to an incoming request. The built-in hit counter stores only aggregated data: the day, store identifier, channel, and customer family reduced to a few categories. It does not store IP addresses, session identifiers, full URLs, or the full contents of the User-Agent header.

This is handled by the built-in hit counter. It shows the number of requests broken down by day, shop, channel, and the requesting family. Channels include content negotiation, .md addresses, and llms files, while families include, among others, openai, anthropic, perplexity, google, and bing, as well as requests from scripting libraries and browsers. This means the decision to further develop this channel is based on data from your shop, not on assumptions.

Yes, in both cases fully. Settings, llms files, cache, cron token, and hit counter are maintained separately for each store. Markdown documents and llms files are generated for each active store language. Saving settings requires selecting a specific store in the switcher so that one click does not overwrite the configuration of the other stores.

The module works with PrestaShop from 1.7.1.0 to 9.x and PHP from 7.0 to 8.5, without Composer and without external libraries. The generated Markdown is stored in the database cache and invalidated automatically when the product, combination, promotion, stock status, category, CMS page, or manufacturer changes, so it is not regenerated on every request. The HTML page seen by customers is neither rebuilt nor slowed down — it only receives additional headers.

Reviews (0)

No reviews