Особливості та переваги модуля
- Markdown будується з об’єктів PrestaShop, а не через конвертацію відрендереної сторінки — документ не містить меню, футера, форм ані коду інших модулів.
- Радикально менша вартість токенів на боці агента: заголовок X-Markdown-Tokens-Estimate у кожній відповіді вказує орієнтовний розмір документа, а панель показує порівняння Markdown проти HTML для вказаної сутності.
- Два незалежні канали доставки — узгодження вмісту на канонічній адресі та окремі адреси .md — тож агент отримає вміст незалежно від того, чи надсилає заголовок Accept.
- Діагностичний запобіжник перед увімкненням узгодження: модуль не дозволяє запустити функцію, доки не виміряє реальними HTTP-запитами, що кешувальний посередник не отруїть спільний кеш.
- Принцип «агент ніколи не бачить більше, ніж гість» реалізовано як правило, а не як окремі винятки — налаштування видимості магазину діють щодо агентів так само, як і щодо анонімного відвідувача.
- Ціни обчислюються в контексті гостя, з явним визначенням валюти та країни, тож кеш не збереже ціну одного клієнта і не віддасть її всім іншим.
- Повна підтримка multistore і багатомовності: налаштування, файли llms, кеш і лічильник ведуться окремо для кожного магазину та кожної мови.
- Жодних зовнішніх залежностей — без Composer, без зовнішніх бібліотек, без викликів до сторонніх сервісів; модуль не надсилає дані Вашого магазину нікуди, окрім відповіді на запит.
- Не збирає персональні дані: лічильник звернень записує лише добу, магазин, канал і сімейство клієнта, без IP-адрес, сесій, повних URL-адрес і повного User-Agent.
- Сумісність від PrestaShop 1.7.1.0 до 9.x і від PHP 7.0 до 8.5, перевірена на реальних деревах вихідного коду, а не декларативно.
Найважливіші функціональні можливості модуля
- Узгодження вмісту на канонічних адресах магазину: запит із Accept: text/markdown отримує документ Markdown, запит браузера отримує незмінений HTML.
- Заголовок Vary: Accept і мітка Link: rel="alternate" на HTML-сторінках, охоплених модулем, завдяки чому посередники й агенти знають, що існує альтернативна версія.
- Паралельні адреси markdown/{typ}/{id}.md для товарів, категорій, сторінок CMS і виробників, під власним префіксом, щоб не конфліктувати з іншими модулями, які переписують адреси.
- Файл llms.txt — курований список найважливіших розділів магазину: категорій верхнього рівня, інформаційних сторінок і посилання на повний індекс.
- Файл llms-full.txt — компактний індекс сутностей: заголовок, канонічна адреса, адреса .md, ціна, доступність, SKU і стислий опис; автоматично ділиться на частини після перевищення налаштованого розміру.
- Генерація llms-full.txt виключно через endpoint cron, захищений токеном, ніколи не під час запиту відвідувача, з бюджетом часу та відновленням перерваної перебудови.
- Окремий токен cron для кожного магазину, порівнюваний у сталий час, із готовою командою curl для копіювання в панелі.
- Кеш згенерованого Markdown у базі даних із налаштовуваним часом життя та інвалідацією через hooks при зміні товару, комбінації, акційної ціни, цінового правила, складського стану, категорії, сторінки CMS і виробника.
- Вкладка Діагностика: сім перевірок, що виконуються реальними HTTP-запитами до власної точки зондування модуля, з окремим розрізненням збоїв «HTML віддано агенту» і «Markdown віддано браузеру».
- Інформаційна перевірка реальної адреси каталогу після ввімкнення узгодження, показується окремо і не блокує функцію.
- Попередній перегляд документа в панелі для вказаного типу та ідентифікатора сутності, разом із лічильником токенів Markdown проти HTML і явним вердиктом видимості сутності.
- Вкладка Файли: стан файлів llms для кожної мови (наявність, розмір, дата, кількість сутностей, кількість частин), кнопка ручної перебудови з бюджетом часу та команда cron.
- Лічильник звернень агентів: агрегат доба × магазин × канал × сімейство клієнта, з поділом на канали negocjacja, trasa .md і llms та сімейства openai, anthropic, perplexity, google, bing, script, browser і other.
- Заголовки відповіді, що відповідають призначенню вмісту: X-Robots-Tag: noindex, nofollow на документах Markdown, X-Content-Type-Options: nosniff, ETag з підтримкою 304 та диференційована політика Cache-Control для канонічної адреси й адреси .md.
- Дані товару в заголовку документа: тип, ідентифікатор, канонічна адреса, адреса Markdown, заголовок, SKU, бренд, ціна брутто і нетто, валюта, інформація про податок, доступність, позначення набору, вимога персоналізації, стан товару, категорії, мова і дата оновлення.
- Звичайна ціна, а також розмір і відсоток знижки, коли товар охоплений акцією — агент не побачить акційну ціну як звичайну.
- Таблиця варіантів із ціною, кількістю, доступністю та ідентифікатором комбінації, завдяки чому агент може вказати конкретний варіант, а не лише описати його.
- Вміст товарних наборів із кількостями та посиланнями на Markdown-документи окремих позицій.
- Інформація про обов’язкові поля персоналізації, з пропуском полів, що належать іншим модулям, які PrestaShop не показує на фронтенді.
- Вибір типів сутностей, що надаються агентам, однаково застосовується в усіх каналах: на маршрутах .md, у файлах llms і в мітці альтернативної версії.
- Робочий каталог модуля захищений від прямого читання з мережі, а файли llms віддаються виключно через контролери модуля.
- Дотримання режиму технічного обслуговування магазину та геолокації — магазин, закритий для відвідувачів, закритий також і для агентів.
- Панель у конвенції PD із заголовком модуля та панеллю вкладок, із підказками біля налаштувань із дорогими наслідками, такими як фрагментація кешу CDN.
Бізнесове застосування
- Для магазинів PrestaShop, які хочуть, щоб їх коректно зчитували асистенти покупок і AI-агенти, замість того щоб покладатися на те, що модель самостійно очистить HTML-сторінку від шуму.
- Для продавців, які хочуть контролювати, що саме потрапляє до агентів — діапазон типів сутностей, видимість цін і кількостей, а також спосіб публікації.
- Для магазинів із розгалуженим каталогом, у яких різниця між повною HTML-сторінкою та Markdown-документом перетворюється на реальну різницю у вартості на боці того, хто запитує.
- Для multistore-впроваджень, де кожен магазин потребує власних налаштувань, власних файлів llms і власного токена cron.
- Для компаній, які хочуть спирати рішення про подальші інвестиції в цей канал на дані — лічильник звернень показує, чи і яким шляхом агенти справді запитують.
- Для магазинів, що працюють за CDN або reverse proxy, де самостійне ввімкнення узгодження вмісту без перевірки загрожувало б віддачею неправильної версії сторінки звичайним клієнтам.
Чого модуль не робить
- Не є SEO-модулем і не покращує позиції магазину в результатах пошуку Google — Markdown-документи явно позначені як такі, що не індексуються.
- Не змінює вигляд, вміст або продуктивність HTML-сторінки, яку бачать клієнти; сторінка, охоплена модулем, отримує лише додаткові заголовки, що інформують про існування альтернативної версії.
- Не надсилає дані магазину до жодного зовнішнього сервісу і не вимагає облікового запису чи API-ключа.
- Не перекладає структурні мітки документа — назви полів залишаються сталими й англійськими, оскільки призначені для машини, натомість вміст сутності завжди подається мовою магазину.
Сумісність
- PrestaShop: 1.7.1.0 - 9.x
- PHP: 7.0 - 8.5
- Без Composer і без зовнішніх бібліотек
- Multistore: так, налаштування і файли ведуться окремо для кожного магазину
- Багатомовність: так, документи і файли llms для кожної активної мови