Description
A shopper asks ChatGPT which natural face cream to buy. The assistant answers from whatever it can read about the products it knows. If your product page has no brand, a vague category and two product blocks with different prices, it is easy to leave you out of that answer.
ShopToAI Connector is the WordPress side of ShopToAI. The ShopToAI service checks your catalog and shows what an AI assistant can’t make sense of. You approve the fixes, and this plugin puts the result on your product pages.
Check your store first
Run the free scan at shoptoai.com/scan. You don’t need an account. In about 30 seconds you get a score from 0 to 100 and the main problems on one of your product pages.
What you get in the ShopToAI dashboard
- An audit of the whole catalog with a score from 0 to 100. It counts the products with a missing GTIN or EAN, missing brand or category, empty or thin descriptions, broken or duplicated product markup, and checks whether robots.txt blocks AI crawlers.
- Suggested brands, categories and attributes for products that lack them, each with a confidence score. Nothing goes into your store until you approve it, and any applied change can be undone with one click because the old value is kept. GTIN codes are never made up. Those come from you or your supplier.
- FAQs and comparison guides drafted from your product data (Growth plan and higher).
- A regular check of whether ChatGPT, Perplexity and Gemini name your products when someone asks about your category, so you can compare before and after the fixes.
- One panel for several stores, if you are an agency that looks after client shops.
What the plugin does on your site
- Adds one Schema.org Product block (JSON-LD) to each product page, built from the data you approved in the dashboard.
- Hides the duplicate Product markup that WooCommerce core, the Yoast SEO WooCommerce add-on, Rank Math and All in One SEO Pro add, so an assistant never reads two versions of one product. Your WebPage, Breadcrumb and Organization markup stays as it is.
- Lets AI search crawlers into your store through robots.txt (OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot, Google-Extended and others). If you wrote a rule for a crawler yourself, the plugin keeps it. Crawlers that only collect content to train AI models stay out unless you tick the option on the settings page.
- Warns you in wp-admin when something overrides its robots.txt rules or
/llms.txt, for example a physical robots.txt file in the site root or an SEO plugin with its own llms.txt feature. - Shows the FAQ you published in the dashboard as a “FAQ” tab on the product page. The FAQPage markup sits inside that tab, so it only describes text your shoppers can see.
- Serves
/llms.txt, your product catalog at/ai-catalog.jsonand comparison guides at/ai-guides/{slug}from your own domain, so an assistant that quotes them points to your store. - Sends a heartbeat so the dashboard shows the store as connected.
The plugin never invents product data. It only places markup you reviewed in the dashboard. Everything it fetches is cached, and if ShopToAI is briefly unreachable your pages keep the last markup they had, so page speed doesn’t suffer.
The plugin itself is free. ShopToAI has a free plan with a basic audit of one store with up to 100 products. Fixes, AI suggestions, the deep scan and feeds come with the paid plans, listed at shoptoai.com/pricing.
External service: ShopToAI
This plugin requires an account with ShopToAI, a third-party service operated by YAStuning OÜ (the data controller named in the Privacy Policy). The plugin will not produce any markup without it. When configured, the plugin makes requests to the ShopToAI API (by default https://shoptoai.com) to:
- fetch the approved JSON-LD for a product (the request sends your store’s feed token and the product’s SKU and WooCommerce ID),
- fetch your
/llms.txt, your product catalog for/ai-catalog.jsonand any AI guides (the request sends your feed token), - send a heartbeat and a disconnect signal (these send your feed token and a plugin secret so the dashboard can show the connection status; the heartbeat also sends the plugin version and short codes naming anything on your site that overrides the plugin’s robots.txt rules or /llms.txt, for example a physical robots.txt file; it also sends the names, product counts and page links of your product categories so your llms.txt can link to them).
No customer or order data is sent. The requests carry product identifiers and your connection keys only. The API base URL is fixed to https://shoptoai.com; a self-hosted or white-label deployment can override it with the SHOPTOAI_API_BASE constant in wp-config.php.
- Service: https://shoptoai.com
- Terms of Service: https://shoptoai.com/legal/terms
- Privacy Policy: https://shoptoai.com/legal/privacy
Developed by ILUXA WEB (https://iluxa-web.com) for ShopToAI.
Compatibility note
The plugin requires WooCommerce’s REST API v3, which shipped as the standard in
WooCommerce 3.5 and later; a store on an older WooCommerce release will show a clear
“not found” error at connection time rather than a silent failure. Automated tests run
against a lightweight WordPress/WooCommerce test double, not a live install of every
listed version – if you hit an issue on a specific WordPress or WooCommerce release,
please report it so we can confirm and update this note.
Developer notes
Page-cache purge API verified against each plugin’s own source (latest stable at release):
- WP Rocket 3.23.5.1 – single:
rocket_clean_post( $post_id )(inc/common/purge.php), all:rocket_clean_domain()(inc/common/files.php). - LiteSpeed Cache 7.9.1 – single:
do_action( 'litespeed_purge_post', $post_id ), all:do_action( 'litespeed_purge_all' )(src/api.cls.php). - W3 Total Cache 2.10.7 – single:
w3tc_flush_post( $post_id ), all:w3tc_flush_all()(w3-total-cache-api.php). - WP Fastest Cache 1.5.2 – single:
do_action( 'wpfc_clear_post_cache_by_id', 0, $post_id ), all:do_action( 'wpfc_clear_all_cache' )(wpFastestCache.php). - WP Super Cache 3.1.4 – single:
wp_cache_post_change( $post_id ), all:wp_cache_clear_cache()(wp-cache-phase2.php). - SG Optimizer 7.8.3 – single:
sg_cachepress_purge_cache( get_permalink( $post_id ) ), all:sg_cachepress_purge_everything()(helpers/helpers.php). - Breeze 2.6.0 – no public single-URL purge in the source; the plugin falls back to the full-site hook
do_action( 'breeze_clear_all_cache' )(breeze-admin.php).
Screenshots








Installation
- Install and activate the plugin, then open Settings -> ShopToAI Connector (there is also a Settings link next to the plugin on the Plugins screen).
- Open your store in the ShopToAI dashboard and expand the “Plugin setup” panel.
- Copy the Feed token and Plugin secret into the plugin settings and save.
- Click Test connection to confirm your store shows as connected.
Once an audit or AI enrich has run in the dashboard, your product pages start carrying the approved markup automatically.
FAQ
-
Will this get my products into ChatGPT answers?
-
Nobody can promise that, and we don’t. Each assistant decides what to recommend on its own. What we can do is remove the reasons it skips your products: missing brand or GTIN, no category, thin descriptions, two conflicting product blocks, crawlers blocked in robots.txt. The monitoring in the dashboard then shows whether your products get named more often than before.
-
Do I need a ShopToAI account? Is it free?
-
Yes, you need an account, because the plugin places markup that ShopToAI builds for your catalog. Without the feed token and plugin secret it stays inactive and changes nothing on your site. The plugin is free and so is the scan at shoptoai.com/scan. The free plan covers a basic audit. Fixes and AI suggestions need a paid plan.
-
Will it change my products without asking me?
-
No. Every suggestion waits in the dashboard until you approve it. Once applied, the old value is stored, and Undo puts it back. GTIN and EAN codes are never generated by AI.
-
I already use Yoast, Rank Math or All in One SEO. Will they clash?
-
No. Keep your SEO plugin. When ShopToAI has approved markup for a product, the plugin hides only the duplicate Product block those plugins add. Breadcrumbs, Organization and WebPage markup stay theirs. If the plugin has no data for a product, your existing markup is left exactly as it was.
-
Does it work with variable products?
-
Yes. The markup lists the price range (lowest and highest price, number of variations) and gives each variant its live price and stock status. Variants you delete or make unpurchasable drop out of the markup on their own.
-
Will it slow down my product pages?
-
No. Every fetch from the API is cached and waits at most 3 seconds. If the API is unreachable, the page keeps the last markup it received (for up to a day) and the failure is cached for a few minutes, so a page view never turns into a repeated blocking request.
-
Does it send my customer or order data anywhere?
-
No. The plugin sends only product identifiers (SKU and WooCommerce ID) and your connection keys to the ShopToAI API. It does not read or send customer, cart or order data.
-
I run an agency. Can I manage several client stores?
-
Yes, on the Growth and Agency plans. One ShopToAI account then holds several stores, each with its own audit, suggestions and plugin keys. Install the plugin on every client store and connect it with that store’s keys. You can also send a client a report link showing the score before and after.
-
Can I point it at a self-hosted or white-label instance?
-
Yes. Define the SHOPTOAI_API_BASE constant in wp-config.php with your own ShopToAI base URL (it defaults to https://shoptoai.com). The URL must be https, since your feed token and plugin secret travel over it; plain http is accepted only for a local development host.
-
What does uninstalling remove?
-
Everything the plugin stored: your connection settings and all cached feed data. Deactivating leaves your settings in place, so you can deactivate and reactivate without re-entering anything.
-
I already run the older AEO Connector plugin. What happens?
-
This plugin replaces it. While the old one is still active this one stays out of the way and shows a notice, so your pages never carry two competing Product blocks. Deactivate the old plugin and this one picks up your existing settings automatically.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“ShopToAI Connector” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “ShopToAI Connector” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.15.0
- The connection now tells ShopToAI your site tagline, your sitemap URL (Yoast, Rank Math or the WordPress core sitemap) and your Woo product_brand pages, so your llms.txt summarizes the store and links its brand pages.
- Reports which page-cache plugin is active (WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Fastest Cache, WP Super Cache, SG Optimizer or Breeze) so the dashboard can warn when the page cache may hide fresh markup.
- When ShopToAI publishes new markup for a product, the plugin now purges that product’s page in the active cache plugin so visitors and bots see the new version at once. Pages served without PHP are refreshed by a bounded sweep on each heartbeat; more than 50 products changed at once trigger one site-wide purge instead of a storm.
0.14.2
- Serves your full product catalog at
/ai-catalog.jsonon your own domain, cached as a file for an hour. - Reports your product categories with their page links, so your llms.txt links to the real category pages.
- Live prices and stock status are now applied to every product variant in the markup, not only to the top-level offer. Variants that were deleted or made unpurchasable are removed from the markup automatically.
- Category names longer than 200 characters are trimmed to keep the heartbeat well under the server limit.
- Fixed: large catalog files served with other caching plugins active no longer risk running out of PHP memory.
- Fixed: stale temporary files left by interrupted catalog downloads are removed before each new download.
/ai-catalog.jsonand/llms.txtare now marked as uncacheable to page-cache plugins (DONOTCACHEPAGE).
0.14.1
- On sites where WP-Cron is disabled (DISABLE_WP_CRON), the connection check with ShopToAI now recovers within 15 minutes after a missed scheduled run, instead of waiting up to an hour.
0.14.0
- The FAQ you publish in the dashboard now appears as a “FAQ” tab on the product page, with its FAQPage markup inside that tab. FAQ markup is no longer added to the page head, where shoppers could not see it (Google requires marked-up questions to be visible), and questions built automatically from product data are no longer added.
- robots.txt: a rule you set for an AI crawler yourself is never overridden any more. Before, the plugin’s “Allow” silently cancelled a “Disallow” you had written for the same crawler.
- robots.txt: only AI search crawlers are allowed by default. Crawlers that only collect training data (GPTBot, ClaudeBot, CCBot and others) are allowed only if you tick the new option on the settings page.
- robots.txt: each crawler the plugin adds now keeps your site-wide rules (such as the WooCommerce log and add-to-cart blocks), and the rules are added after SEO plugins have written theirs.
- Updated Anthropic’s crawlers to Claude-SearchBot and Claude-User; the retired Claude-Web and anthropic-ai tokens are no longer written.
- Duplicate Product markup from Rank Math and All in One SEO Pro is now hidden too.
- Product markup states the price the way your shop shows it: with or without tax, following the WooCommerce “Display prices in the shop” setting, in the shop’s currency and number of decimals.
- Variable products get the full price range again (lowest and highest price and the number of variations), as WooCommerce’s own markup had it, instead of only the lowest price.
- A product whose price was removed no longer shows the last synced price in its markup.
- Product markup states the stock status the product has right now (in stock, out of stock, on backorder), not the one from the last sync.
- Product markup carries star ratings only when reviews and star ratings are enabled in WooCommerce, as WooCommerce’s own markup does.
- ShopToAI reads the prices your shop shows (with or without tax, sale prices, variation prices and stock) through a new endpoint only your ShopToAI connection can call (each request is signed with your plugin secret, which is never sent), so your Google Merchant feed lists the same prices as your pages.
- The connection now tells ShopToAI your site language, so generated FAQs and guides default to it until you choose a language yourself.
- Product pages wait at most 3 seconds for the API and keep the last good markup during an outage.
- Warns in wp-admin, and reports to the dashboard, when a physical robots.txt or llms.txt file or an SEO plugin’s llms.txt feature overrides the plugin.
- Declares compatibility with WooCommerce order storage (HPOS) and cart/checkout blocks, and states the minimum WooCommerce version in the plugin header.
- Tested with WordPress 7.1 and WooCommerce 11.1.
0.13.3
- The API URL is now fixed to https://shoptoai.com and is no longer an editable setting, so it can’t be misconfigured. A self-hosted or local-development setup can override it with the SHOPTOAI_API_BASE constant in wp-config.php.
0.13.2
- Confirmed compatibility with current WordPress and refreshed the “Tested up to” version (no functional change).
0.13.1
- Corrected the “Tested up to” WordPress version and added the WooCommerce minimum
version this plugin actually depends on (no functional change).
0.13.0
- Renamed all internal functions and constants to a
shoptoai_prefix. Existing settings are carried over automatically. - Stays inactive while the older AEO Connector plugin is present, so no page ever carries two Product blocks.
- Uninstalling now removes the options and cached entries the plugin created.
- The plugin secret is entered in a password field instead of a plain text one.
- The API URL must be https outside local development, since your keys travel over it.
- Reactivating reports to the dashboard immediately instead of showing disconnected for up to an hour.
- Guide URLs keep underscores, and guide caches clear when you save settings or test the connection.
- Rewrite rules refresh on update, so
/llms.txtand/ai-guides/keep working after an upgrade. - No longer redirects you on activation.
0.12.0
- Per-product JSON-LD fetch so injection scales to large catalogs.
- Serve
/llms.txtand/ai-guides/{slug}from the store domain. - Heartbeat and disconnect signals for accurate connection status in the dashboard.
- Negative caching so a briefly unreachable API never slows product pages.
