{"id":309660,"date":"2026-06-15T08:39:18","date_gmt":"2026-06-15T08:39:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/catalogpilot\/"},"modified":"2026-06-15T08:38:45","modified_gmt":"2026-06-15T08:38:45","slug":"merchantstamp-catalog-audit","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/merchantstamp-catalog-audit\/","author":23494910,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.6","stable_tag":"1.0.6","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"MerchantStamp Catalog Audit for WooCommerce","header_author":"MerchantStamp","header_description":"Make your WooCommerce catalog readable by ChatGPT, Gemini, Claude, and AI shopping agents. Free audit + 4 AI-ready feeds, no limits.","assets_banners_color":"1c1f20","last_updated":"2026-06-15 08:38:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/merchantstamp.com\/en\/platforms\/woocommerce","header_author_uri":"https:\/\/merchantstamp.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.6":{"tag":"1.0.6","author":"arnaud92","date":"2026-06-15 08:38:45"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3572655,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3572655,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3572655,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3572655,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3572655,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3572655,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3572655,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3572655,"resolution":"4","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"ShopScore dashboard \u2014 overall catalog score, top missing fields, the four public AI-ready feeds (products.jsonld, llms.txt, acp.json, agent.json), and recommendations ranked by score gain.","2":"Field Coverage Analytics \u2014 per-field completeness across your published products, color-coded from complete to critical.","3":"Score Trend &amp; Scan History \u2014 ShopScore over time with the last 60 scans archived; click any scan to compare it against the latest.","4":"Compare two scans \u2014 side-by-side delta of ShopScore, critical-missing count, and per-field coverage between any two scans."}},"plugin_section":[],"plugin_tags":[2353,2516,5418,1121,286],"plugin_category":[45],"plugin_contributors":[267185],"plugin_business_model":[],"class_list":["post-309660","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-json-ld","plugin_tags-product-feed","plugin_tags-structured-data","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-arnaud92","plugin_committers-arnaud92"],"banners":{"banner":"https:\/\/ps.w.org\/merchantstamp-catalog-audit\/assets\/banner-772x250.png?rev=3572655","banner_2x":"https:\/\/ps.w.org\/merchantstamp-catalog-audit\/assets\/banner-1544x500.png?rev=3572655","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/merchantstamp-catalog-audit\/assets\/icon-128x128.png?rev=3572655","icon_2x":"https:\/\/ps.w.org\/merchantstamp-catalog-audit\/assets\/icon-256x256.png?rev=3572655","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/merchantstamp-catalog-audit\/assets\/screenshot-1.png?rev=3572655","caption":"ShopScore dashboard \u2014 overall catalog score, top missing fields, the four public AI-ready feeds (products.jsonld, llms.txt, acp.json, agent.json), and recommendations ranked by score gain."},{"src":"https:\/\/ps.w.org\/merchantstamp-catalog-audit\/assets\/screenshot-2.png?rev=3572655","caption":"Field Coverage Analytics \u2014 per-field completeness across your published products, color-coded from complete to critical."},{"src":"https:\/\/ps.w.org\/merchantstamp-catalog-audit\/assets\/screenshot-3.png?rev=3572655","caption":"Score Trend &amp; Scan History \u2014 ShopScore over time with the last 60 scans archived; click any scan to compare it against the latest."},{"src":"https:\/\/ps.w.org\/merchantstamp-catalog-audit\/assets\/screenshot-4.png?rev=3572655","caption":"Compare two scans \u2014 side-by-side delta of ShopScore, critical-missing count, and per-field coverage between any two scans."}],"raw_content":"<!--section=description-->\n<p><strong>MerchantStamp Catalog Audit is the AI-readiness layer for WooCommerce catalogs.<\/strong><\/p>\n\n<p>It helps merchants audit catalog quality, enrich missing product schema, and publish AI-ready feeds \u2014 without replacing their existing SEO or feed plugin.<\/p>\n\n<p>Unlike traditional feed plugins focused on channel exports, this plugin focuses on <strong>catalog completeness and machine readability<\/strong> for modern AI-driven discovery.<\/p>\n\n<h4>Fully functional, free, and offline-first<\/h4>\n\n<p>This plugin is <strong>100% functional locally<\/strong>. Every feature listed below runs on your server with no external service required. There is no time limit, no product cap, no locked feature behind a license key.<\/p>\n\n<ul>\n<li>Full ShopScore audit (no product limit)<\/li>\n<li>Field Coverage Analytics<\/li>\n<li>Top Issues panel (the fields with the most missing values, ranked)<\/li>\n<li>Prioritized Recommendations (actions ranked by estimated ShopScore gain)<\/li>\n<li>JSON-LD enrichment on top of Yoast, Rank Math, or native WooCommerce<\/li>\n<li><code>products.jsonld<\/code> feed (schema.org Product catalog)<\/li>\n<li><code>llms.txt<\/code> feed (LLM-friendly catalog summary)<\/li>\n<li><code>acp.json<\/code> feed (Agent Commerce Protocol)<\/li>\n<li><code>agent.json<\/code> feed (with SHA-256 content-integrity proof)<\/li>\n<li>Scan history archive (60 most recent scans)<\/li>\n<li>Score Trend sparkline<\/li>\n<li>Compare any two scans (delta score, delta critical missing, per-field coverage diff)<\/li>\n<li>Degradation alerts (banner when ShopScore drops or critical-missing rises)<\/li>\n<li>Automatic feed rebuild on product create \/ update \/ delete \/ stock change<\/li>\n<li>WooCommerce admin dashboard<\/li>\n<li>Full HPOS compatibility<\/li>\n<\/ul>\n\n<h4>Optional external service<\/h4>\n\n<p>The plugin can <strong>optionally<\/strong> connect to the MerchantStamp service for capabilities that genuinely require a centralized backend. The plugin works entirely without it.<\/p>\n\n<p>What the service adds (Guideline 6 \u2014 Serviceware):<\/p>\n\n<ul>\n<li><strong>Centralized multi-site dashboard<\/strong> \u2014 manage catalog quality across multiple WooCommerce stores from one place<\/li>\n<li><strong>Cross-site verification key<\/strong> \u2014 published at <code>merchantstamp.com\/.well-known\/keys\/&lt;slug&gt;<\/code>, referenced inside <code>agent.json<\/code> so AI agents can verify the integrity of your published feed against a public key you control<\/li>\n<li><strong>Storefront discovery loader<\/strong> \u2014 a small JavaScript snippet (versioned, SRI-protected, opt-in) injected in the footer that helps AI agents find this site's feeds at scale<\/li>\n<li><strong>Advanced alerting<\/strong> \u2014 Slack and email delivery of degradation alerts, beyond the in-admin banner that this plugin shows for free<\/li>\n<li><strong>Push notifications<\/strong> to your MerchantStamp dashboard after each rebuild<\/li>\n<\/ul>\n\n<p>Pricing for the MerchantStamp service is at <a href=\"https:\/\/merchantstamp.com\">merchantstamp.com<\/a>.<\/p>\n\n<h4>Built to work alongside your stack<\/h4>\n\n<ul>\n<li>Yoast SEO \/ Yoast WooCommerce SEO<\/li>\n<li>Rank Math \/ Rank Math PRO<\/li>\n<li>AIOSEO<\/li>\n<li>Google for WooCommerce<\/li>\n<li>Product Feed PRO for WooCommerce<\/li>\n<li>Any WooCommerce-compatible theme<\/li>\n<\/ul>\n\n<p>If another plugin already outputs valid schema, this plugin does <strong>not overwrite it<\/strong>. It fills missing fields only.<\/p>\n\n<h4>Read-only by design<\/h4>\n\n<p>This plugin does not rewrite your WooCommerce product catalog. It reads your product data, computes scores, enriches structured output at render time, and generates feed files from existing catalog data.<\/p>\n\n<h4>External services<\/h4>\n\n<p>This plugin connects to MerchantStamp services <strong>only when the user enters an API key<\/strong>. Without an API key, no external connection is ever made.<\/p>\n\n<p>When a user enters a MerchantStamp API key, the plugin connects to:<\/p>\n\n<p><strong>1. MerchantStamp Activation &amp; Push API<\/strong><\/p>\n\n<ul>\n<li>Endpoint: <code>https:\/\/merchantstamp.com\/api\/webhooks\/plugin<\/code><\/li>\n<li>Purpose: Validate the API key on activation, and report feed-build status after each rebuild so the merchant's MerchantStamp dashboard stays in sync.<\/li>\n<li>Data sent: site URL, plugin version, WordPress version, WooCommerce version, the merchant's chosen slug, public feed URLs, total product count, average ShopScore, build duration in milliseconds, and a UTC timestamp.<\/li>\n<li>No personal data, customer data, or order data is ever sent.<\/li>\n<li>Terms of service: https:\/\/merchantstamp.com\/en\/legal<\/li>\n<li>Privacy policy: https:\/\/merchantstamp.com\/en\/privacy<\/li>\n<\/ul>\n\n<p><strong>2. Optional Storefront Loader Script<\/strong><\/p>\n\n<ul>\n<li>URL: <code>https:\/\/merchantstamp.com\/js\/silver-loader.v1.0.0.js<\/code><\/li>\n<li>Purpose: A small JavaScript file injected in the site footer (only when an API key is entered AND the filter <code>msca_inject_loader<\/code> is true) that helps AI discovery systems find this site's published feeds.<\/li>\n<li>Source code: https:\/\/github.com\/arnaud-92\/silver-loader<\/li>\n<li>Subresource Integrity: loaded with an SRI hash so the browser refuses to execute any modified copy.<\/li>\n<li><p>Opt-out: site owners can disable the loader injection at any time by adding the following filter:<\/p>\n\n<p>add_filter( 'msca_inject_loader', '__return_false' );<\/p><\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<ul>\n<li>Without an API key entered, this plugin sends no data to any external service.<\/li>\n<li>With an API key, the plugin sends only operational metadata listed in the <strong>External services<\/strong> section above.<\/li>\n<li>No customer data, order data, email addresses, IP addresses, or other personal information is collected, stored, or transmitted by this plugin.<\/li>\n<li>All generated feed files contain only public product information already published on the merchant's WooCommerce store.<\/li>\n<li>Plugin settings are stored in the standard WordPress options table; no custom database tables are created.<\/li>\n<li>Scan history and cache are stored under <code>wp-content\/uploads\/merchantstamp-catalog-audit\/private\/<\/code> (created with index.php silencers and <code>.htaccess<\/code> denial rules).<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>merchantstamp-catalog-audit<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via <strong>Plugins \u2192 Add New<\/strong> and search for \"MerchantStamp Catalog Audit\".<\/li>\n<li>Activate the plugin in the WordPress admin.<\/li>\n<li>Open <strong>MerchantStamp Catalog Audit<\/strong> in the admin sidebar.<\/li>\n<li>Run your first catalog scan.<\/li>\n<li>Review your ShopScore, Top Issues, and Recommendations.<\/li>\n<li>Generate or rebuild feeds.<\/li>\n<li><em>(Optional)<\/em> If you want the centralized multi-site dashboard and the storefront loader, enter a MerchantStamp API key from <a href=\"https:\/\/merchantstamp.com\">merchantstamp.com<\/a>.<\/li>\n<\/ol>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>WordPress 6.0 or higher<\/li>\n<li>WooCommerce 7.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>Pretty permalinks enabled (for public feed URLs)<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20merchantstamp%20account%20to%20use%20this%20plugin%3F\"><h3>Do I need a MerchantStamp account to use this plugin?<\/h3><\/dt>\n<dd><p>No. Every feature runs locally on your WordPress server with no external service required. The plugin is fully usable without ever creating an account.<\/p><\/dd>\n<dt id=\"what%20does%20the%20merchantstamp%20service%20add%20that%20this%20plugin%20can%27t%20do%20alone%3F\"><h3>What does the MerchantStamp service add that this plugin can't do alone?<\/h3><\/dt>\n<dd><p>The plugin can audit, enrich, and publish AI-ready feeds entirely on its own. The MerchantStamp service adds capabilities that genuinely require a centralized backend: multi-site dashboard across many stores, cross-site verification key publication, advanced Slack\/email alerting, and a CDN-hosted storefront loader. None of these can be done by a single WordPress install on its own.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20modify%20my%20woocommerce%20product%20data%3F\"><h3>Does this plugin modify my WooCommerce product data?<\/h3><\/dt>\n<dd><p>No. It is read-only with respect to WooCommerce product records.<\/p><\/dd>\n<dt id=\"does%20it%20replace%20yoast%20seo%20or%20rank%20math%3F\"><h3>Does it replace Yoast SEO or Rank Math?<\/h3><\/dt>\n<dd><p>No. It works alongside them. If your SEO plugin already outputs structured product data, this plugin fills common gaps instead of replacing the schema layer.<\/p><\/dd>\n<dt id=\"will%20feeds%20rebuild%20automatically%3F\"><h3>Will feeds rebuild automatically?<\/h3><\/dt>\n<dd><p>Yes. The plugin detects product create\/update\/delete and stock changes, and schedules feed rebuilds automatically using WP-Cron with a 60-second debounce.<\/p><\/dd>\n<dt id=\"how%20many%20products%20can%20it%20scan%3F\"><h3>How many products can it scan?<\/h3><\/dt>\n<dd><p>Unlimited. The plugin paginates through your entire catalog regardless of size.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disable%20the%20optional%20external%20loader%20script%3F\"><h3>How do I disable the optional external loader script?<\/h3><\/dt>\n<dd><p>The loader is only injected when (1) a MerchantStamp API key is entered AND (2) the filter <code>msca_inject_loader<\/code> returns true. To disable explicitly:<\/p>\n\n<pre><code>add_filter( 'msca_inject_loader', '__return_false' );\n<\/code><\/pre><\/dd>\n<dt id=\"can%20i%20uninstall%20safely%3F\"><h3>Can I uninstall safely?<\/h3><\/dt>\n<dd><p>Yes. Uninstalling removes plugin settings, the private cache directory, and the scan history. Your WooCommerce product data is not changed. Public feed files in <code>wp-content\/uploads\/merchantstamp-catalog-audit\/feeds\/<\/code> are intentionally preserved (in case AI agents still reference them) \u2014 you can delete them manually if desired.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Is it compatible with HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares HPOS compatibility and does not interact with the orders table.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Trimmed the Short Description to comply with the 150-character limit (was 159 chars).<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fixed Plugin URI to point to the live English product page: https:\/\/merchantstamp.com\/en\/platforms\/woocommerce (previous URL was a 404).<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Updated Plugin URI to a dedicated product page: https:\/\/merchantstamp.com\/en\/platforms\/woocommerce<\/li>\n<li>Updated legal links in readme: Terms \u2192 \/en\/legal, Privacy \u2192 \/en\/privacy<\/li>\n<li>Softened user-facing wording: \"Pro activated!\" \u2192 \"MerchantStamp service connected\"<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed a file integrity issue: removed 147 trailing NUL bytes from class-feeds.php that caused a PHP parse error.<\/li>\n<li>All PHP files now pass <code>php -l<\/code> cleanly (verified with PHP 8.2).<\/li>\n<li>Aligned all internal plan references on \"free\" (previously some branches in the API key sync reset to \"bronze\", creating an inconsistency with the rest of the codebase).<\/li>\n<li>Cleaned legacy comments that referred to \"Silver \/ Gold\" or \"F6 \/ F7\" for features that are now fully local and free.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Cosmetic cleanup of stale code comments referring to \"(Pro)\" or \"Bronze+\" labels for features that are now fully local and free.<\/li>\n<li>No functional change vs 1.0.1 \u2014 all local features remain unconditionally enabled.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>All \"Pro\" features unlocked in the plugin: ACP feed, agent.json, scan history, compare, degradation alerts, score trend.<\/li>\n<li>Removed the \"Free limit reached\" badge and the upgrade banner from the admin (Guideline 11 compliance).<\/li>\n<li>The plugin is now 100% functional locally,<\/li>\n<\/ul>","raw_excerpt":"Make your WooCommerce catalog readable by ChatGPT, Gemini, Claude, and AI shopping agents. Free audit + 4 AI-ready feeds, no limits.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/309660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=309660"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/arnaud92"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=309660"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=309660"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=309660"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=309660"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=309660"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=309660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}