Forums / All Other Contributions/Addons / LLMs.txt Generator

LLMs.txt Generator

Views: 194

Results 1 to 13 of 13
7 Sep 2026, 3:32 PM
#1
dbltoe avatar

dbltoe

Totally Zenned

Join Date:
Jan 2004
Location:
N of San Antonio TX
Posts:
9,865
Plugin Contributions:
18

LLMs.txt Generator

What it is

An llms.txt is to AI assistants what sitemap.xml is to search engines: a plain Markdown file at the root of your site that says what the site is and where the important pages are, following the convention at https://llmstxt.org/. ChatGPT, Claude, Perplexity and the others are increasingly the first place a shopper asks "where can I buy a replacement gear for a Model K mixer?" This file is how you answer.

LLMs.txt Generator writes one for your store from what's already in Zen Cart, and keeps it current without anyone remembering to.

What it produces

# Acme Widgets

> Acme Widgets sells replacement parts and tools for vintage kitchen
> mixers, shipping from Texas to the US and Canada.

- [Website](https://www.example.com/)
- Prices are in: USD
- [Sitemap](https://www.example.com/sitemap.xml)

## Shopping information

- [Shipping and Returns](https://www.example.com/index.php?main_page=shippinginfo)
- [Privacy Notice](https://www.example.com/index.php?main_page=privacy)
- [Conditions of Use](https://www.example.com/index.php?main_page=conditions)
- [Contact Us](https://www.example.com/index.php?main_page=contact_us)

## Categories

- [Mixer Parts](https://www.example.com/index.php?main_page=index&cPath=1): Gears, gaskets and beaters for every model since 1937.
- [Mixer Parts > Gaskets](https://www.example.com/index.php?main_page=index&cPath=1_4)

## Products

- [Planetary Gear, Model K](https://www.example.com/index.php?main_page=product_info&products_id=12): Bronze replacement gear for the Model K. Fits 1948 to 1962. ($24.95)

## More pages

- [About Us](https://www.example.com/index.php?main_page=page&id=3)

Every line comes from something you already maintain. The one thing worth writing by hand is the summary in the blockquote, because it's the first sentence an assistant reads, and there's a setting for it.

How it publishes

  • file (the default): a real llms.txt is written at the store root, next to robots.txt. No other setup.
  • dynamic: served live by index.php?main_page=llms_txt, with three lines of .htaccess so /llms.txt reaches it. Nothing written at the root.
  • both: the file, with the live page as a fallback.

When it rebuilds

  • change (the default): when a product, category or EZ-Page is saved in the admin, and whenever a fifteen-minute storefront check finds the catalog has changed.
  • daily, weekly or monthly: on that schedule, plus after an admin save.
  • manual: only from the Regenerate button.

Zen Cart has no scheduler, so the work happens on a storefront visit, never in the admin. An admin save only sets a flag, so saving a product is as fast as it ever was, and no customer page ever waits for a build.

What it won't do

  • Overwrite an llms.txt you wrote yourself. It recognizes its own files and leaves anything else alone until you press Replace on the Tools page.
  • Put files anywhere but zc_plugins/LlmsTxt/. Nothing lands in admin/, includes/ or your template, which is what makes it safe to remove.
  • Touch a core file.

Settings

Under Configuration > LLMs.txt Generator: the summary and optional notes, which information pages to list, categories and how deep, categories to exclude, products with a cap and an ordering (sort order, newest, bestsellers, name, most viewed), prices on or off, description length, EZ-Pages, sitemap address, language, and the optional llms-full.txt.

Under Tools > LLMs.txt Generator: a status table (what's published, when it was last built, whether a rebuild is pending and why), a live preview of the current output, Regenerate, Replace, Remove, and the rewrite snippet.

Compatibility

One codebase for Zen Cart v1.5.8 through v3.0.0 on PHP 7.4 through 8.5, installed and exercised through Plugin Manager on all six release branches rather than assumed. Checked with Zen Cart's own phpstan and php-cs-fixer configurations. Every table name goes through the TABLE_* constants, so a store with a database prefix is fine.

Install

Upload zc_plugins/LlmsTxt/ to your store root, then Modules > Plugin Manager > LLMs.txt Generator > Install. The installer writes a first llms.txt straight away if the store root is writable. Then write your summary under Configuration and open https://your-store/llms.txt.

The full manual ships inside the plugin as readme.html, and Plugin Manager links to it from the info panel whether or not the plugin is installed.

Links

A Pro edition with AI-crawler analytics and robots control is in the works for Zen Cart 2.2 and later; I'll announce it here.

Questions and bug reports here, please. Say which Zen Cart and PHP version you're on, and what the Tools page shows in its status table; that's usually enough to find it.

Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com

7 Sep 2026, 6:43 PM
#2
balihr avatar

balihr

Totally Zenned

Join Date:
Oct 2008
Location:
Croatia
Posts:
1,808
Plugin Contributions:
22

Re: LLMs.txt Generator

Mind if I ask what was wrong with this one? And how does it compare, or why is it better?

If it really is better, I'd love to integrate it into ZX SEO Master which already comes with my version fully integrated, but I'm more than happy to replace it for a better version.

My site - Pro ZC Help
My portfolio | My plugins

7 Sep 2026, 7:45 PM
#3
dbltoe avatar

dbltoe

Totally Zenned

Join Date:
Jan 2004
Location:
N of San Antonio TX
Posts:
9,865
Plugin Contributions:
18

Re: LLMs.txt Generator

I guess I missed it in my search this morning. More surprisingly, the system accepted the submission without notifying me, even though they have the same name.

@swguy, perhaps change the title to Automatic_LLMs.txt_Generator. I'll rename the GitHub repository to that.

That's the biggest difference between the two. This one is automatic versus manual. 19 configuration keys under Configuration.

This one grabs everything: Cats, EZ, and policies. Options for those as well.

Will not overwrite a file it did not create unless replace is clicked.

Allows for a file, a dynamic page, or both

Yours addresses the robots.txt, brands, and is better at escaping characters "50% off[Sale]" FYI Since it has had no downloads, I added those during the comparison. Still 1.0.0 on GitHub. 😛

There are some minor test errors in yours that occur during submissions. I was not aware of how to test for them until last week. That's the only reason this one has none.

I have also started adding readme.html to the plugin and the package root. And a button for it in the manifest, so that a store owner always has access, even before installing it in the Plugins Manager.

Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com

11 Sep 2026, 2:58 PM
#4
njcyx avatar

njcyx

Zen Follower

Join Date:
Apr 2019
Posts:
376
Plugin Contributions:
0

Re: LLMs.txt Generator

zc 2.10. php 8.2. plug-in github version 1.0.0

Hi dbltoe, I just uploaded this plug-in to my site, then I went to modules/Plugin Manager, then I clicked on "Automatic LLMs.txt Generator", then I saw white screen. The following warning files were received.

[11-Sep-2026 10:53:06 America/New_York] Request URI: /admin/index.php?cmd=plugin_manager&page=1&colKey=LlmsTxt, IP address: x.x.x.x, Language id 1

#0 [internal function]: zen_debug_error_handler()

#1 /includes/functions/plugin_support.php(58): strcmp()

#2 /includes/classes/PluginManager.php(73): plugin_version_check_for_updates()

#3 /includes/classes/ViewBuilders/PluginManagerController.php(49): Zencart\PluginManager\PluginManager->isNewDownloadAvailable()

#4 /includes/classes/ViewBuilders/BaseController.php(37): Zencart\ViewBuilders\PluginManagerController->processDefaultAction()

#5 /admin/plugin_manager.php(101): Zencart\ViewBuilders\BaseController->processRequest()

#6 /admin/index.php(16): require('/...')

--> PHP Deprecated: strcmp(): Passing null to parameter #1 ($string1) of type string is deprecated in /includes/functions/plugin_support.php on line 58.

[11-Sep-2026 10:53:06 America/New_York] Request URI: /admin/index.php?cmd=plugin_manager&page=1&colKey=LlmsTxt, IP address: x.x.x.x, Language id 1

#0 /includes/functions/plugin_support.php(58): zen_debug_error_handler()

#1 /includes/classes/PluginManager.php(73): plugin_version_check_for_updates()

#2 /includes/classes/ViewBuilders/PluginManagerController.php(49): Zencart\PluginManager\PluginManager->isNewDownloadAvailable()

#3 /includes/classes/ViewBuilders/BaseController.php(37): Zencart\ViewBuilders\PluginManagerController->processDefaultAction()

#4 /admin/plugin_manager.php(101): Zencart\ViewBuilders\BaseController->processRequest()

#5 /admin/index.php(16): require('/...')

--> PHP Warning: Undefined array key 0 in /includes/functions/plugin_support.php on line 58.

[11-Sep-2026 10:53:06 America/New_York] Request URI: /admin/index.php?cmd=plugin_manager&page=1&colKey=LlmsTxt, IP address: x.x.x.x, Language id 1

#0 /includes/functions/plugin_support.php(58): zen_debug_error_handler()

#1 /includes/classes/PluginManager.php(73): plugin_version_check_for_updates()

#2 /includes/classes/ViewBuilders/PluginManagerController.php(49): Zencart\PluginManager\PluginManager->isNewDownloadAvailable()

#3 /includes/classes/ViewBuilders/BaseController.php(37): Zencart\ViewBuilders\PluginManagerController->processDefaultAction()

#4 /admin/plugin_manager.php(101): Zencart\ViewBuilders\BaseController->processRequest()

#5 /admin/index.php(16): require('/...')

--> PHP Warning: Trying to access array offset on value of type null in /includes/functions/plugin_support.php on line 58.

[11-Sep-2026 10:53:06 America/New_York] Request URI: /admin/index.php?cmd=plugin_manager&page=1&colKey=LlmsTxt, IP address: x.x.x.x, Language id 1

#0 /includes/functions/plugin_support.php(64): zen_debug_error_handler()

#1 /includes/classes/PluginManager.php(73): plugin_version_check_for_updates()

#2 /includes/classes/ViewBuilders/PluginManagerController.php(49): Zencart\PluginManager\PluginManager->isNewDownloadAvailable()

#3 /includes/classes/ViewBuilders/BaseController.php(37): Zencart\ViewBuilders\PluginManagerController->processDefaultAction()

#4 /admin/plugin_manager.php(101): Zencart\ViewBuilders\BaseController->processRequest()

#5 /admin/index.php(16): require('/...')

--> PHP Warning: Undefined array key 0 in /includes/functions/plugin_support.php on line 64.

[11-Sep-2026 10:53:06 America/New_York] Request URI: /admin/index.php?cmd=plugin_manager&page=1&colKey=LlmsTxt, IP address: x.x.x.x, Language id 1

#0 /includes/functions/plugin_support.php(64): zen_debug_error_handler()

#1 /includes/classes/PluginManager.php(73): plugin_version_check_for_updates()

#2 /includes/classes/ViewBuilders/PluginManagerController.php(49): Zencart\PluginManager\PluginManager->isNewDownloadAvailable()

#3 /includes/classes/ViewBuilders/BaseController.php(37): Zencart\ViewBuilders\PluginManagerController->processDefaultAction()

#4 /admin/plugin_manager.php(101): Zencart\ViewBuilders\BaseController->processRequest()

#5 /admin/index.php(16): require('/...')

--> PHP Warning: Trying to access array offset on value of type null in /includes/functions/plugin_support.php on line 64.

[11-Sep-2026 10:53:06 America/New_York] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, null given in /includes/functions/plugin_support.php:64

Stack trace:

#0 /includes/functions/plugin_support.php(64): in_array('v2.1.0', NULL, false)

#1 /includes/classes/PluginManager.php(73): plugin_version_check_for_updates(7800, '')

#2 /includes/classes/ViewBuilders/PluginManagerController.php(49): Zencart\PluginManager\PluginManager->isNewDownloadAvailable(7800, '')

#3 /includes/classes/ViewBuilders/BaseController.php(37): Zencart\ViewBuilders\PluginManagerController->processDefaultAction()

#4 /admin/plugin_manager.php(101): Zencart\ViewBuilders\BaseController->processRequest()

#5 /admin/index.php(16): require('/...')

#6 {main}

thrown in /includes/functions/plugin_support.php on line 64

[11-Sep-2026 10:53:06 America/New_York] Request URI: /admin/index.php?cmd=plugin_manager&page=1&colKey=LlmsTxt, IP address: x.x.x.x

--> PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, null given in /includes/functions/plugin_support.php:64

Stack trace:

#0 /includes/functions/plugin_support.php(64): in_array('v2.1.0', NULL, false)

#1 /includes/classes/PluginManager.php(73): plugin_version_check_for_updates(7800, '')

#2 /includes/classes/ViewBuilders/PluginManagerController.php(49): Zencart\PluginManager\PluginManager->isNewDownloadAvailable(7800, '')

#3 /includes/classes/ViewBuilders/BaseController.php(37): Zencart\ViewBuilders\PluginManagerController->processDefaultAction()

#4 /admin/plugin_manager.php(101): Zencart\ViewBuilders\BaseController->processRequest()

#5 /admin/index.php(16): require('/...')

#6 {main}

thrown in /includes/functions/plugin_support.php on line 64.

[11-Sep-2026 10:53:06 America/New_York] Request URI: /admin/index.php?cmd=plugin_manager&page=1&colKey=LlmsTxt, IP address: x.x.x.x

--> PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, null given in /includes/functions/plugin_support.php:64

Stack trace:

#0 /includes/functions/plugin_support.php(64): in_array('v2.1.0', NULL, false)

#1 /includes/classes/PluginManager.php(73): plugin_version_check_for_updates(7800, '')

#2 /includes/classes/ViewBuilders/PluginManagerController.php(49): Zencart\PluginManager\PluginManager->isNewDownloadAvailable(7800, '')

#3 /includes/classes/ViewBuilders/BaseController.php(37): Zencart\ViewBuilders\PluginManagerController->processDefaultAction()

#4 /admin/plugin_manager.php(101): Zencart\ViewBuilders\BaseController->processRequest()

#5 /admin/index.php(16): require('/...')

#6 {main}

thrown in /includes/functions/plugin_support.php on line 64.

plugin_support.php on line 58 is

if (strcmp($data[0]['latest_plugin_version'], $version_string_to_compare) > 0) $new_version_available = true;

plugin_support.php on line 64 is

if (!in_array('v' . $zc_version, $data[0]['zcversions'], false)) $new_version_available = false;
11 Sep 2026, 4:56 PM
#5
dbltoe avatar

dbltoe

Totally Zenned

Join Date:
Jan 2004
Location:
N of San Antonio TX
Posts:
9,865
Plugin Contributions:
18

Re: LLMs.txt Generator

Apparently, we submitted the mod when the plugin IDs didn't match. https://www.zen-cart.com/threads/207307?page=1#post-1346893

We were told 7800 was the Plugin ID, but the system did its automated numbering in the manifest.php and assigned 2257.

So... You apparently downloaded from GitHub and got the manifest.php file listing 7800 as the ID

We've got a v1.0.1 up on GitHub, but the quickest fix is to go to sc_plugins/LlmsTxt/v1.0.0/manifest.php and line 63. Replace 7800 with 2257, and it should load and work for you.

Let me know if you have further problems.

Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com

11 Sep 2026, 7:12 PM
#6
njcyx avatar

njcyx

Zen Follower

Join Date:
Apr 2019
Posts:
376
Plugin Contributions:
0

Re: LLMs.txt Generator

Thanks for your reply. Unfortunately, I still cannot make it work.

I went to manifest.php file and edit line 62 (not 63), replace the number 7800 with 2257. Still white screen and the same warning.

I deleted the whole LlmsTxt folder, re-download the v1.0.1 from github, then upload, still white screen and the same warning.

12 Sep 2026, 1:41 AM
#7
dbltoe avatar

dbltoe

Totally Zenned

Join Date:
Jan 2004
Location:
N of San Antonio TX
Posts:
9,865
Plugin Contributions:
18

Re: LLMs.txt Generator

That’s weird because the log points specifically to the version check

you didn’t mention any other mods and thereshouldn’t be a conflict but can you let me know which ones you are using

Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com

12 Sep 2026, 1:36 PM
#8
pilou2 avatar

pilou2

Zen Follower

Join Date:
Jun 2008
Location:
Japan
Posts:
414
Plugin Contributions:
6

Re: LLMs.txt Generator

I am not sure this will completely fix the problem here, but when doing some testing on plugin status display in admin, I found a bug in the ../includes/classes/ViewBuilders/PluginManagerController.php. In ZC v2.1.0 it is on line 49:

        if ($available = $this->pluginManager->isNewDownloadAvailable($this->currentFieldValue('zc_contrib_id'), $this->currentFieldValue('version'))) {

The first version number in comparison has this format 1.0.0 but the one in the second argument is generally v1.0.0 or what ever there is in manifest.php file.

I replace this line by this to fix the problem:

        if ($available = $this->pluginManager->isNewDownloadAvailable($this->currentFieldValue('zc_contrib_id'), preg_replace('/[^0-9\.]/', '', $this->currentFieldValue('version')))) {

This new code just strip anything that is not a number or a dot.

ZC v2.2.2 PHP 8.4+ MySQL 8.4+

12 Sep 2026, 6:24 PM [edited]
#9
dbltoe avatar

dbltoe

Totally Zenned

Join Date:
Jan 2004
Location:
N of San Antonio TX
Posts:
9,865
Plugin Contributions:
18

Re: LLMs.txt Generator

Our earlier instruction was incomplete for 2.1.0, sorry. Editing the manifest doesn't take there, and here's why.

Plugin Manager reads the Library id from the plugin_control table, not from manifest.php. Zen Cart 2.0.0 and 2.1.0 write that column only the first time they discover a plugin; on later visits the scan refreshes just the "found on disk" flag (the upsert in includes/classes/PluginManager.php updates only infs). So the row created when you first uploaded the plugin still says 7800, the edited manifest is never consulted, and the page dies the same way. Deleting the folder and uploading v1.0.1 hits the same wall unless Plugin Manager was opened while the folder was gone, because that's the only moment the old row gets removed. 2.2.2 and later rewrite the id from the manifest on every load, which is why we didn't see this on our own stores.

Two ways out. Either one is enough.

  1. No database access needed. Delete the whole zc_plugins/LlmsTxt folder from the server and open Plugin Manager once; it drops the orphaned row and the page loads. Then upload zc_plugins/LlmsTxt/v1.0.1 from the v1.0.1 package and open Plugin Manager again. The row is created fresh with the right id. Your log shows the plugin hadn't been installed yet (the version passed to the check was empty), so nothing is lost. If anyone reading this had installed v1.0.0, the settings stay in the configuration table and the v1.0.1 installer reuses them rather than adding duplicates.

  2. One query in phpMyAdmin, with your table prefix added if you use one:

UPDATE plugin_control SET zc_contrib_id = 2257 WHERE unique_key = 'LlmsTxt';

Plugin Manager loads on the next visit, and the v1.0.1 upgrade can be done from there. If it's still white after either route, please post the newest myDebug log; it'll be pointing at a different line.

pilou2, thanks for looking. That's a real bug, but a separate one. The 'v' in the version string only decides whether the "new version available" line appears; strcmp can't crash on it. The fatal here is the in_array on line 64 of includes/functions/plugin_support.php, reached when the version server answers an id it doesn't know with an empty list. 2.2.2 added a guard for that response (it returns false when there's no [0] element); 2.0.0 and 2.1.0 don't have it. On your patch: it makes the compare work when the Library lists the version without a 'v' and the manifest has one, but it flips the other way when a listing was typed with the 'v', because strcmp('v1.0.0', '1.0.0') is positive and the notice would show forever. Stripping the 'v' from both sides would be safer. We've put both points on the Zen Cart GitHub, the compare and the missing 2.1.0 guard: https://github.com/zencart/zencart/issues/7984

Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com

12 Sep 2026, 6:45 PM
#10
pilou2 avatar

pilou2

Zen Follower

Join Date:
Jun 2008
Location:
Japan
Posts:
414
Plugin Contributions:
6

Re: LLMs.txt Generator

dbltoe:

Our earlier instruction was incomplete for 2.1.0, sorry. Editing the manifest doesn't take there, and here's why.

Plugin Manager reads the Library id from the plugin_control table, not from manifest.php. Zen Cart 2.0.0 and 2.1.0 write that column only the first time they discover a plugin; on later visits the scan refreshes just the "found on disk" flag (the upsert in includes/classes/PluginManager.php updates only infs). So the row created when you first uploaded the plugin still says 7800, the edited manifest is never consulted, and the page dies the same way. Deleting the folder and uploading v1.0.1 hits the same wall unless Plugin Manager was opened while the folder was gone, because that's the only moment the old row gets removed. 2.2.2 and later rewrite the id from the manifest on every load, which is why we didn't see this on our own stores.

Two ways out. Either one is enough.

  1. No database access needed. Delete the whole zc_plugins/LlmsTxt folder from the server and open Plugin Manager once; it drops the orphaned row and the page loads. Then upload zc_plugins/LlmsTxt/v1.0.1 from the v1.0.1 package and open Plugin Manager again. The row is created fresh with the right id. Your log shows the plugin hadn't been installed yet (the version passed to the check was empty), so nothing is lost. If anyone reading this had installed v1.0.0, the settings stay in the configuration table and the v1.0.1 installer reuses them rather than adding duplicates.
  2. One query in phpMyAdmin, with your table prefix added if you use one:
UPDATE plugin_control SET zc_contrib_id = 2257 WHERE unique_key = 'LlmsTxt';

Plugin Manager loads on the next visit, and the v1.0.1 upgrade can be done from there. If it's still white after either route, please post the newest myDebug log; it'll be pointing at a different line.

pilou2, thanks for looking. That's a real bug, but a separate one. The 'v' in the version string only decides whether the "new version available" line appears; strcmp can't crash on it. The fatal here is the in_array on line 64 of includes/functions/plugin_support.php, reached when the version server answers an id it doesn't know with an empty list. 2.2.2 added a guard for that response (it returns false when there's no [0] element); 2.0.0 and 2.1.0 don't have it. On your patch: it makes the compare work when the Library lists the version without a 'v' and the manifest has one, but it flips the other way when a listing was typed with the 'v', because strcmp('v1.0.0', '1.0.0') is positive and the notice would show forever. Stripping the 'v' from both sides would be safer. We've put both points on the Zen Cart GitHub, the compare and the missing 2.1.0 guard: https://github.com/zencart/zencart/issues/7984

Excellent and very detailed analisys! Thanks, I won't have to take care of this now.
I would just add that using version_compare rather than strcmp would also take care of -dev, -beta and other subversions.

ZC v2.2.2 PHP 8.4+ MySQL 8.4+

15 Sep 2026, 4:39 PM
#11
njcyx avatar

njcyx

Zen Follower

Join Date:
Apr 2019
Posts:
376
Plugin Contributions:
0

Re: LLMs.txt Generator

pilou2:

I am not sure this will completely fix the problem here, but when doing some testing on plugin status display in admin, I found a bug in the ../includes/classes/ViewBuilders/PluginManagerController.php. In ZC v2.1.0 it is on line 49:

        if ($available = $this->pluginManager->isNewDownloadAvailable($this->currentFieldValue('zc_contrib_id'), $this->currentFieldValue('version'))) {

The first version number in comparison has this format 1.0.0 but the one in the second argument is generally v1.0.0 or what ever there is in manifest.php file.

I replace this line by this to fix the problem:

        if ($available = $this->pluginManager->isNewDownloadAvailable($this->currentFieldValue('zc_contrib_id'), preg_replace('/[^0-9\.]/', '', $this->currentFieldValue('version')))) {

This new code just strip anything that is not a number or a dot.

Thanks. It works on my end now.

6 Oct 2026, 11:02 PM
#12
dbltoe avatar

dbltoe

Totally Zenned

Join Date:
Jan 2004
Location:
N of San Antonio TX
Posts:
9,865
Plugin Contributions:
18

Re: LLMs.txt Generator

Automatic LLMs.txt Generator v1.0.2 is out

v1.0.2 changes one thing: the Plugin ID in manifest.php is now 2455. On 6 October the Plugins Library team let us know the ID this plugin had been given, 2257, already belonged to an older plugin, so Plugin Manager's update check was being answered with that plugin's details instead of ours. They gave us 2455, and v1.0.2 carries it.

There are no code or settings changes, and your llms.txt isn't touched. You only need this release if you want Plugin Manager to tell you about future updates.

To upgrade, put the v1.0.2 folder beside your current one in zc_plugins/LlmsTxt/, click Upgrade in Admin > Modules > Plugin Manager, then remove the old folder. On Zen Cart 2.2.0 and later, that's all. On 1.5.8 through 2.1.x, Plugin Manager keeps the ID it recorded when it first saw the plugin, so also run this line in Admin > Tools > Install SQL Patches (it adds your table prefix itself):

UPDATE plugin_control SET zc_contrib_id = 2455 WHERE unique_key = 'LlmsTxt';

Download: https://github.com/dbltoe/Automatic_LLMs_Txt_Generator/releases/tag/v1.0.2

Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com

10 Oct 2026, 7:34 PM
#13
dbltoe avatar

dbltoe

Totally Zenned

Join Date:
Jan 2004
Location:
N of San Antonio TX
Posts:
9,865
Plugin Contributions:
18

Re: LLMs.txt Generator

Automatic LLMs.txt Generator Pro v1.0.2

Pro is the paid add-on to this plugin. It adds to what the free generator writes rather than running a second one: AI-crawler analytics, per-bot robots.txt control, every product page as Markdown, and one-sentence Claude summaries. v1.0.2 fixes one thing.

The free plugin builds llms.txt in two places: on the storefront, and in the admin when you click Regenerate on Tools > LLMs.txt, look at the preview on that page, use Run Now on the Pro dashboard, or install or upgrade the free plugin. Pro only listened on the storefront, so a file built in the admin left out Pro’s “Product pages as Markdown” line and any stored summaries until the next storefront rebuild put them back. Nothing was lost, but the file you had just regenerated wasn’t the one Pro meant you to have.

v1.0.2 listens in the admin too, and both sides run the same code, so a file built in the admin now matches one built on the storefront line for line.

Nothing else changes: no settings, no database changes, nothing on the storefront. To upgrade, put the v1.0.2 folder beside v1.0.1 and click Upgrade in Plugin Manager. Your stored summaries and visit history are kept. Pro owners can download v1.0.2 from their account at myzencartzone.com.

Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com