{"id":345935,"date":"2026-08-14T11:15:48","date_gmt":"2026-08-14T11:15:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/shoptoai-connector\/"},"modified":"2026-09-28T09:52:04","modified_gmt":"2026-09-28T09:52:04","slug":"shoptoai-connector","status":"publish","type":"plugin","link":"https:\/\/nl.wordpress.org\/plugins\/shoptoai-connector\/","author":23541391,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.14.0","stable_tag":"0.14.0","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"ShopToAI Connector","header_author":"ShopToAI","header_description":"Places approved Schema.org product markup on your WooCommerce pages so AI shopping assistants read your catalog correctly. Requires a ShopToAI account.","assets_banners_color":"4a4e51","last_updated":"2026-09-28 09:52:04","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/shoptoai.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":172,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.13.3":{"tag":"0.13.3","author":"shoptoai","date":"2026-08-14 11:15:39","revision":3647224},"0.14.0":{"tag":"0.14.0","author":"shoptoai","date":"2026-09-28 09:52:04","revision":3716817}},"upgrade_notice":{"0.14.0":"<p>Respects the robots.txt rules you set for AI crawlers, stops opening training crawlers by default, and prices the markup and the Merchant feed the way your shop shows them. Recommended for every store.<\/p>","0.13.1":"<p>Documentation-only: corrected version-compatibility claims. No action needed.<\/p>","0.13.0":"<p>Internal cleanup for the WordPress.org release. Your settings carry over automatically; no action needed.<\/p>","0.12.0":"<p>Scales markup injection to large catalogs and serves \/llms.txt and AI guides from your own domain.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3647222,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3647222,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3647222,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3647222,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.13.3","0.14.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3647222,"resolution":"1","location":"assets","locale":"","width":1280,"height":930},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3647222,"resolution":"2","location":"assets","locale":"","width":1280,"height":930},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3647222,"resolution":"3","location":"assets","locale":"","width":1076,"height":92}},"screenshots":{"1":"The connector's settings page. Paste the feed token and plugin secret from your ShopToAI dashboard and save.","2":"Test connection confirms the store is talking to ShopToAI and now shows as connected in the dashboard.","3":"The plugin on your Plugins screen, with a direct link to its settings."}},"plugin_section":[],"plugin_tags":[2353,2516,1117,1121,286],"plugin_category":[45,55],"plugin_contributors":[275706],"plugin_business_model":[],"class_list":["post-345935","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-json-ld","plugin_tags-schema","plugin_tags-structured-data","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-iluxaweb","plugin_committers-shoptoai"],"banners":{"banner":"https:\/\/ps.w.org\/shoptoai-connector\/assets\/banner-772x250.png?rev=3647222","banner_2x":"https:\/\/ps.w.org\/shoptoai-connector\/assets\/banner-1544x500.png?rev=3647222","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/shoptoai-connector\/assets\/icon-128x128.png?rev=3647222","icon_2x":"https:\/\/ps.w.org\/shoptoai-connector\/assets\/icon-256x256.png?rev=3647222","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/shoptoai-connector\/assets\/screenshot-1.png?rev=3647222","caption":"The connector's settings page. Paste the feed token and plugin secret from your ShopToAI dashboard and save."},{"src":"https:\/\/ps.w.org\/shoptoai-connector\/assets\/screenshot-2.png?rev=3647222","caption":"Test connection confirms the store is talking to ShopToAI and now shows as connected in the dashboard."},{"src":"https:\/\/ps.w.org\/shoptoai-connector\/assets\/screenshot-3.png?rev=3647222","caption":"The plugin on your Plugins screen, with a direct link to its settings."}],"raw_content":"<!--section=description-->\n<p>ShopToAI Connector places machine-readable product data (Schema.org \/ JSON-LD) on your WooCommerce product pages so AI shopping assistants such as ChatGPT, Perplexity and Gemini can read your catalog and recommend your products.<\/p>\n\n<p>It connects your store to <strong>ShopToAI<\/strong>, a hosted service that audits your catalog, fixes gaps and builds the markup. The plugin is the piece that puts that markup into your live pages, where the REST API alone cannot reach reliably.<\/p>\n\n<p><strong>What the plugin does on your site<\/strong><\/p>\n\n<ul>\n<li>Adds one authoritative Schema.org Product block to each product page, pulled from your ShopToAI feed.<\/li>\n<li>Suppresses duplicate Product markup from WooCommerce core, the Yoast SEO WooCommerce add-on, Rank Math and All in One SEO Pro, so an assistant never reads two conflicting blocks. Your WebPage, Breadcrumb and Organization schema are left untouched.<\/li>\n<li>Allows AI search crawlers in robots.txt (OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot, Google-Extended and others). A rule you set for a crawler yourself is always kept, and crawlers that only collect content to train AI models are left alone unless you opt in on the settings page.<\/li>\n<li>Warns you in wp-admin when something on your site overrides its robots.txt rules or <code>\/llms.txt<\/code>, such as a physical file in the site root or an SEO plugin's own llms.txt feature.<\/li>\n<li>Shows the FAQ you published in the ShopToAI dashboard as a \"FAQ\" tab on the product page, with its FAQPage markup inside that tab, so the markup only describes text your shoppers can see.<\/li>\n<li>Serves <code>\/llms.txt<\/code> at your store root and comparison guides at <code>\/ai-guides\/{slug}<\/code>, both fetched from ShopToAI and cached, so an assistant that cites them cites your domain.<\/li>\n<li>Reports a heartbeat so your store shows as connected in the ShopToAI dashboard.<\/li>\n<\/ul>\n\n<p>The plugin never invents product data. It only places markup that you have reviewed and approved in the dashboard, and every response it fetches is cached with a short fallback so a brief network problem never slows your pages.<\/p>\n\n<p><strong>External service: ShopToAI<\/strong><\/p>\n\n<p>This plugin requires an account with ShopToAI, a third-party service operated by YAStuning O\u00dc (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 <code>https:\/\/shoptoai.com<\/code>) to:<\/p>\n\n<ul>\n<li>fetch the approved JSON-LD for a product (the request sends your store's feed token and the product's SKU and WooCommerce ID),<\/li>\n<li>fetch your <code>\/llms.txt<\/code> and any AI guides (the request sends your feed token),<\/li>\n<li>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).<\/li>\n<\/ul>\n\n<p>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.<\/p>\n\n<ul>\n<li>Service: https:\/\/shoptoai.com<\/li>\n<li>Terms of Service: https:\/\/shoptoai.com\/legal\/terms<\/li>\n<li>Privacy Policy: https:\/\/shoptoai.com\/legal\/privacy<\/li>\n<\/ul>\n\n<p>Developed by ILUXA WEB (https:\/\/iluxa-web.com) for ShopToAI.<\/p>\n\n<p><strong>Compatibility note<\/strong><\/p>\n\n<p>The plugin requires WooCommerce's REST API v3, which shipped as the standard in\nWooCommerce 3.5 and later; a store on an older WooCommerce release will show a clear\n\"not found\" error at connection time rather than a silent failure. Automated tests run\nagainst a lightweight WordPress\/WooCommerce test double, not a live install of every\nlisted version - if you hit an issue on a specific WordPress or WooCommerce release,\nplease report it so we can confirm and update this note.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin, then open Settings -&gt; ShopToAI Connector (there is also a Settings link next to the plugin on the Plugins screen).<\/li>\n<li>Open your store in the ShopToAI dashboard and expand the \"Plugin setup\" panel.<\/li>\n<li>Copy the <strong>Feed token<\/strong> and <strong>Plugin secret<\/strong> into the plugin settings and save.<\/li>\n<li>Click <strong>Test connection<\/strong> to confirm your store shows as connected.<\/li>\n<\/ol>\n\n<p>Once an audit or AI enrich has run in the dashboard, your product pages start carrying the approved markup automatically.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20shoptoai%20account%3F\"><h3>Do I need a ShopToAI account?<\/h3><\/dt>\n<dd><p>Yes. The plugin places markup that ShopToAI builds for your catalog, so it needs your account's feed token and plugin secret. Without them it stays inactive and changes nothing on your site.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20product%20pages%3F\"><h3>Will it slow down my product pages?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20it%20send%20my%20customer%20or%20order%20data%20anywhere%3F\"><h3>Does it send my customer or order data anywhere?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20existing%20structured%20data%3F\"><h3>What happens to my existing structured data?<\/h3><\/dt>\n<dd><p>When the plugin has approved markup for a product, it emits one Product block and hides the duplicate Product markup from WooCommerce core, Yoast, Rank Math and All in One SEO Pro. If it has no data for a product, your existing markup is left exactly as it was.<\/p><\/dd>\n<dt id=\"can%20i%20point%20it%20at%20a%20self-hosted%20or%20white-label%20instance%3F\"><h3>Can I point it at a self-hosted or white-label instance?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"what%20does%20uninstalling%20remove%3F\"><h3>What does uninstalling remove?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"i%20already%20run%20the%20older%20aeo%20connector%20plugin.%20what%20happens%3F\"><h3>I already run the older AEO Connector plugin. What happens?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.14.0<\/h4>\n\n<ul>\n<li>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.<\/li>\n<li>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.<\/li>\n<li>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.<\/li>\n<li>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.<\/li>\n<li>Updated Anthropic's crawlers to Claude-SearchBot and Claude-User; the retired Claude-Web and anthropic-ai tokens are no longer written.<\/li>\n<li>Duplicate Product markup from Rank Math and All in One SEO Pro is now hidden too.<\/li>\n<li>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.<\/li>\n<li>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.<\/li>\n<li>A product whose price was removed no longer shows the last synced price in its markup.<\/li>\n<li>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.<\/li>\n<li>Product markup carries star ratings only when reviews and star ratings are enabled in WooCommerce, as WooCommerce's own markup does.<\/li>\n<li>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.<\/li>\n<li>The connection now tells ShopToAI your site language, so generated FAQs and guides default to it until you choose a language yourself.<\/li>\n<li>Product pages wait at most 3 seconds for the API and keep the last good markup during an outage.<\/li>\n<li>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.<\/li>\n<li>Declares compatibility with WooCommerce order storage (HPOS) and cart\/checkout blocks, and states the minimum WooCommerce version in the plugin header.<\/li>\n<li>Tested with WordPress 7.1 and WooCommerce 11.1.<\/li>\n<\/ul>\n\n<h4>0.13.3<\/h4>\n\n<ul>\n<li>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.<\/li>\n<\/ul>\n\n<h4>0.13.2<\/h4>\n\n<ul>\n<li>Confirmed compatibility with current WordPress and refreshed the \"Tested up to\" version (no functional change).<\/li>\n<\/ul>\n\n<h4>0.13.1<\/h4>\n\n<ul>\n<li>Corrected the \"Tested up to\" WordPress version and added the WooCommerce minimum\nversion this plugin actually depends on (no functional change).<\/li>\n<\/ul>\n\n<h4>0.13.0<\/h4>\n\n<ul>\n<li>Renamed all internal functions and constants to a <code>shoptoai_<\/code> prefix. Existing settings are carried over automatically.<\/li>\n<li>Stays inactive while the older AEO Connector plugin is present, so no page ever carries two Product blocks.<\/li>\n<li>Uninstalling now removes the options and cached entries the plugin created.<\/li>\n<li>The plugin secret is entered in a password field instead of a plain text one.<\/li>\n<li>The API URL must be https outside local development, since your keys travel over it.<\/li>\n<li>Reactivating reports to the dashboard immediately instead of showing disconnected for up to an hour.<\/li>\n<li>Guide URLs keep underscores, and guide caches clear when you save settings or test the connection.<\/li>\n<li>Rewrite rules refresh on update, so <code>\/llms.txt<\/code> and <code>\/ai-guides\/<\/code> keep working after an upgrade.<\/li>\n<li>No longer redirects you on activation.<\/li>\n<\/ul>\n\n<h4>0.12.0<\/h4>\n\n<ul>\n<li>Per-product JSON-LD fetch so injection scales to large catalogs.<\/li>\n<li>Serve <code>\/llms.txt<\/code> and <code>\/ai-guides\/{slug}<\/code> from the store domain.<\/li>\n<li>Heartbeat and disconnect signals for accurate connection status in the dashboard.<\/li>\n<li>Negative caching so a briefly unreachable API never slows product pages.<\/li>\n<\/ul>","raw_excerpt":"Put clean Schema.org product markup on your WooCommerce pages so AI shopping assistants read your catalog correctly. Powered by ShopToAI.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/345935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=345935"}],"author":[{"embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shoptoai"}],"wp:attachment":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=345935"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=345935"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=345935"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=345935"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=345935"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=345935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}