=== Agentic Commerce for WooCommerce ===
Contributors: xpaysh
Tags: woocommerce, chatgpt, ai, analytics, product feed
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 11.2
Stable tag: 0.8.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

See which AI assistants drive your orders, get your products into ChatGPT answers, and run ChatGPT Ads — without leaving WooCommerce.

== Description ==

= AI Traffic & Sales Tracking for WooCommerce — ChatGPT Ads, Product Feed & AI Visibility =

**Something is already sending you customers, and your analytics can't see it.**

When a shopper asks ChatGPT "find me a cordless drill under $80 that ships in 2 days" and buys from the store it names, that order lands in WooCommerce looking like ordinary direct traffic. Google Analytics shows you nothing. Your reports show you nothing. You cannot tell whether AI assistants are worth your attention, because you cannot see them at all.

**This plugin makes the AI channel visible, makes you the answer it gives, and lets you buy more of it.** No theme changes, no replatforming, no new payment processor.

🌐 **Plugin home:** [www.xpay.sh/merchants/woocommerce/](https://www.xpay.sh/merchants/woocommerce/)

= See the AI channel =

* **[AI crawler analytics →](https://www.xpay.sh/merchants/ai-traffic/)** — which assistants visit (GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended and more) and what they read. Opt-in, off by default, known AI bots only.
* **AI-attributed orders** — your real WooCommerce orders traced to the assistant that referred the buyer (ChatGPT, Claude, Perplexity, Gemini, Copilot and more), with the match rate against all your orders so you can check the number.
* **[Agent-readiness audit →](https://www.xpay.sh/merchants/audit/)** — how well AI shopping assistants can read and recommend your catalog, with a prioritised fix list.
* **[Agent delivery speed →](https://www.xpay.sh/merchants/woocommerce/speed-fix/)** — how fast your catalog, `/llms.txt` and product pages answer the AI crawlers themselves.

= Win the AI channel =

* **An agent-readable product feed** — full catalog with live prices and stock on xpay's CDN, refreshed within ~30 seconds of a change.
* **AI-shopping structured data** — `Product`, `Offer`, `BuyAction` and `ItemList` JSON-LD that fills only the gaps Yoast, Rank Math or WooCommerce leave.
* **`/llms.txt` and an AI user-agent `robots.txt` allowlist** on your own domain; an existing `/llms.txt` is appended to, never replaced.
* **Cart deep-link** — an assistant can hand a shopper a one-click link into your existing cart and checkout.
* **Product FAQs and return policy** — `FAQPage` and `MerchantReturnPolicy` data for products you approve; optionally shown to shoppers (off on new installs).
* **[AI storefront assistant →](https://www.xpay.sh/merchants/storefront-assistant)** *(optional)* — on-site shopper chat from your own catalog, only with your say-so.

= Run ChatGPT Ads =

* **[Campaigns inside WooCommerce →](https://www.xpay.sh/merchants/chatgpt-ads/)** — create, budget, activate and pause campaigns; results sit next to the orders they produced, our reconciled count beside OpenAI's.
* **A ChatGPT product feed** to OpenAI's specification, with a per-product health score.
* **Eligibility, up front** — minimum catalog size and supported countries checked before you invest time.
* **Conversion tracking** — link your ads account and purchases from ChatGPT ads are reported back: funnel events from shoppers' browsers plus a copy of each paid order from your server, under one id so nothing counts twice. Off until you link a pixel; marketing consent respected; your ads key is never stored on your site.
* **Works with your existing pixels** — Pixel Manager, PixelYourSite or GTM keep running; if another OpenAI pixel is on the store, ours records but does not forward.

= Works alongside what you already run =

If another plugin already does a job, this one stands down: Yoast SEO, Rank Math and SEOPress schema (fills only the gaps); AdTribes, CTX Feed and Google Listings & Ads feeds; Pixel Manager, PixelYourSite, GTM and WooCommerce Order Attribution; WP Rocket, LiteSpeed, Autoptimize and SiteGround Optimizer (excluded from JS optimization automatically). Declares HPOS and Cart/Checkout Blocks compatibility.

= What it doesn't do =

* **It doesn't touch your checkout.** Stripe / WooPayments / PayPal / Square / whatever you already use — payment runs through them, unchanged. Your payout schedule is unchanged.
* **It doesn't see your customers.** Order summaries carry no buyer name, email, address or payment card. The one exception is ChatGPT Ads conversion tracking, which you switch on yourself: with the shopper's marketing consent it sends their email (hashed before OpenAI sees it), IP address and user agent so the ad platform can match the purchase. See External services.
* **It doesn't require a new account or contract** to start. Free to install and get going — paid plans available as you grow. [See pricing](https://www.xpay.sh/pricing/?tab=agentic-commerce).
* **It doesn't slow down your site.** The JSON-LD block is tiny and cached; the catalog feed is served from xpay's CDN, not your origin.

= Getting started =

Install, activate, click **Connect store** and grant a read-only WooCommerce REST API key on app.xpay.sh. Your catalog is live on AI surfaces within about 10 minutes. Requires WooCommerce 7.0+, WordPress 6.2+ and PHP 7.4+. Stuck? merchants@xpay.sh or the support forum. What the plugin sends and when: see **Privacy** and **External services** below, and the [full disclosure](https://install.xpay.sh/woocommerce/privacy.html).

= Source code =

GPLv2-or-later, readable PHP, all of it on your server once installed. Changelog: [install.xpay.sh/woocommerce/CHANGELOG.md](https://install.xpay.sh/woocommerce/CHANGELOG.md).

== Installation ==

= From the WordPress.org plugin directory =

1. In your WordPress admin, go to **Plugins → Add New**.
2. Search for "Agentic Commerce for WooCommerce".
3. Click **Install Now**, then **Activate**.
4. You'll be redirected to **xpay✦ Commerce → Settings**. Click **Connect store**.
5. Approve the WooCommerce REST API permissions on app.xpay.sh, then you'll be redirected back to your store.

= System requirements =

* WordPress 6.2 or higher
* WooCommerce 7.0 or higher
* PHP 7.4 or higher
* SSL (`https://`) on the store domain — required for the agent discovery files to be honored by AI surfaces

== Frequently Asked Questions ==

= Will this slow down my store? =

No. What we add to your pages is a few lines of invisible data. Your catalog is served from our CDN, so AI shoppers reading it never touch your server at all.

= Does xpay see my customers or their payment details? =

Never their payment details: payment runs through your existing gateway exactly as it does today, and no buyer name, address or card ever reaches us. Once connected, we receive an order summary (order id, total, currency, SKUs, status, and which channel it came from) so we can show you which orders AI sent. If you switch on ChatGPT Ads conversion tracking, a buyer's email is included only with their marketing consent, and is passed to OpenAI as a one-way hash — see External services, item 10.

= Will it change how my product pages look? =

Almost everything we add is invisible to shoppers. The one exception is the product FAQ block, and it is **off on new installs** — nothing appears on your store until you ask for it.

= I already use Yoast or Rank Math. Will this conflict? =

No. We check what they've already published and add only what's missing, so you never end up with two of anything.

= How much does it cost? =

Free to install and use. Paid plans as you grow — [see pricing](https://www.xpay.sh/pricing/?tab=agentic-commerce).

= What does it send to xpay, and when? =

Nothing until you click **Connect store**. After that: your public product details (name, description, price, stock, images, categories) so we can publish your catalog for AI shoppers; an order summary per order (no buyer name, address or payment details); and, from shoppers' browsers, the pages they visit on your store (see item 11 under External services). ChatGPT Ads conversion tracking sends more, and only once you switch it on (item 10). Optional anonymous diagnostics are **off by default** and you're asked once. [Full disclosure](https://install.xpay.sh/woocommerce/privacy.html).

= How do I remove it? =

**Plugins → Deactivate → Delete**, and everything the plugin wrote is removed from your database. To also delete your catalog from our CDN, email privacy@xpay.sh from your admin address.

= I run several stores. Do I install it on each? =

Yes — each store gets its own catalog and its own settings.

= Do you support Subscriptions, Bookings or Memberships? =

Simple, variable and grouped products today. The others are on the roadmap — email merchants@xpay.sh if one is blocking you and we'll tell you where it stands.

= My host blocks /.well-known/ — does discovery still work? =

Yes. There's an automatic fallback that AI shoppers find on their own. If your host intercepts those paths, nothing breaks.

= Is the source code available? =

Yes. GPLv2-or-later, shipped as plain readable PHP in `wp-content/plugins/agentic-commerce-for-woocommerce/`. Nothing minified, obfuscated or loaded from a remote script. Developers: `add_filter( 'xpay_wc_faq_visible', '__return_false' );` turns the FAQ block off from code, whatever the dashboard says.

= I have a question that isn't answered here. =

Email merchants@xpay.sh, or post in the support forum on this page — we answer both, and we aim to reply within one business day.

== External services ==

This plugin connects to the following xpay-operated services to deliver its core function. Every endpoint and its purpose is documented; full payload disclosure is in the [Privacy](https://install.xpay.sh/woocommerce/privacy.html) section.

1. **agent-feed.xpay.sh** — Public CDN that hosts your AI-readable catalog feed at `https://agent-feed.xpay.sh/catalog/{your-slug}.json`. The plugin does not contact this URL directly; the xpay backend writes it from your WooCommerce REST API after you click **Connect store**.

2. **agent-commerce.xpay.sh** — The agent-side API that AI shopping agents call to surface and buy from your products. The plugin contacts this host at the following paths: (a) `POST /v1/onboard/woocommerce/wc-auth-callback` is the WooCommerce OAuth callback target (WordPress itself calls this on your behalf, server-to-server, after you approve the one-click connect prompt); (b) `GET /v1/onboard/woocommerce/status?nonce=…` is polled by the xpay onboarding page while the handshake finishes; (c) `POST /v1/merchants/{slug}/resync` triggers a fresh catalog ingest after a product or stock change; (d) `GET /v1/merchants/{slug}` is called when **xpay✦ Commerce → Settings** verifies the current connection state; (e) `PATCH /v1/merchants/{slug}/products/{sku}` pushes a single-product delta when a WooCommerce product/stock webhook fires; (f) `DELETE /v1/merchants/{slug}` is sent (non-blocking) when you click **Disconnect** so xpay marks your account as disconnected and archives the cached catalog. The hostname is also the publicly advertised target for `POST /mcp/{slug}` (the JSON-RPC commerce MCP endpoint AI agents talk to) — the plugin itself does not call this URL but lists it in the `/.well-known/ucp` manifest.

3. **app.xpay.sh/onboard/woocommerce** — The merchant-side onboarding page. When you click **Connect store**, the plugin redirects your browser here with three query-string parameters: your site URL, your administrator email address, and a one-time random nonce generated locally. No data is sent to xpay before you click the button. You sign in or sign up on xpay and grant the WooCommerce REST API permission there.

4. **agent-commerce.xpay.sh/v1/events** — Optional anonymous lifecycle telemetry. Disabled by default; only contacted if you explicitly opt in via the first-activation admin notice or **xpay✦ Commerce → Settings → Privacy**. Full payload disclosure in the Privacy section.

9. **agent-commerce.xpay.sh/v1/merchants/{slug}/orders** — Agent-attributed order reporting for connected stores (non-PII order summary + attribution source; no customer, payment, or personal data). Off via the `xpay_wc_order_events_enabled` option. Full payload disclosure in the Privacy section.

8. **agent-commerce.xpay.sh/v1/agent-analytics** — Optional anonymous AI-bot crawl analytics. Disabled by default; shares the same opt-in as item 4 (and respects a separate `define( 'XPAY_WC_AGENT_ANALYTICS', false )` hard-off). When enabled, the plugin counts requests from *known AI bots only* (e.g. GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended) — recording the bot name, a coarse page type (home/product/category/discovery-file/sitemap/other), the HTTP status, and whether we routed the bot to your structured catalog. It also sends an aggregate daily count of human pageviews (a number only — no user-agent, no URLs, no per-visit data) as the AI-vs-human denominator. Since 0.5.3 a bot event also carries a salted, one-way hash of the connecting IP address (a bot's — behind a proxy or CDN this is the connecting edge address), so two hits from the same crawler can be counted as one visitor. The salt is unique to your store and is regenerated every day, so the hash cannot be linked across days or across stores, and the address itself is never stored or transmitted. This applies to AI bots only — a human visitor's IP is never read, hashed or sent. Events are buffered locally and sent in the background by WP-Cron, never on a page load. Cart, checkout, account, admin and REST paths are never recorded. No per-visit human data, no customer, order, or personal data.

5. **ai-readiness.xpay.sh** — Merchant-facing audit dashboard. The plugin emits a link to `ai-readiness.xpay.sh/m/{your-slug}` on the Settings page so you can review the live agent-readiness score xpay computed from your catalog; the plugin itself does not fetch from this host. Opening the link from your browser sends standard browser headers to xpay.
6. **auth.xpay.sh** — Public OAuth-protected-resource discovery target. The plugin publishes `auth.xpay.sh` as the `authorization_servers[0]` entry in `/.well-known/oauth-protected-resource` (an RFC 9728 metadata document AI agents fetch to learn where to obtain a token). The plugin does not contact this host server-to-server; it is referenced for agent-side discovery only.
7. **install.xpay.sh/woocommerce/{terms,privacy}.html** — Static legal documents linked from this readme and from the Settings privacy panel. The plugin itself does not fetch these URLs; clicking the links opens them in your browser.

10. **pixelproof.xpay.sh** — xpay's ChatGPT Ads conversion relay, contacted only when ChatGPT Ads conversion tracking is on (a pixel is linked on **xpay✦ Commerce → ChatGPT Ads**, or you chose "Always on"). Shoppers' browsers send `POST /pixel/events` for page views, product views, add-to-cart, checkout start and purchase: the page URL, the ChatGPT Ads click id and campaign parameters, the products, quantities and prices involved, and — only with marketing consent — a random browser id and, on checkout and purchase, the shopper's email. Your server sends `POST /api/woo/server-events` with each paid order (order id, total, currency, line items, click id, campaign parameters, referring site, how the order was created — e.g. checkout or wp-admin — and with consent the billing email, IP address and user agent). It calls `POST /api/woo/connect` and `POST /api/woo/manual` when you set tracking up, and `GET /api/woo/config` when you open the ChatGPT Ads or Tracking screen, when xpay links a pixel to your store at your request, and about once an hour while a pixel is linked. A store with no pixel linked does not contact this host from shopper traffic. The relay forwards conversions to **OpenAI's Conversions API** for your ChatGPT Ads account; OpenAI receives the email only as a SHA-256 hash (plus, with consent, the IP address and user agent), and receives an opt-out flag instead of any identifier when consent is absent. If another OpenAI pixel is on your store, events are recorded for your own reports and not forwarded; orders created in wp-admin and subscription renewals are recorded and never forwarded. OpenAI terms: [openai.com/policies](https://openai.com/policies/).

11. **widget.xpay.sh/v1/track.js → agent-commerce.xpay.sh/widget/track** — The visitor tracker, loaded on your storefront for a connected store (by the shopping assistant when it is on, otherwise on its own). It records the shopping journey so you can see which visits — from ChatGPT and elsewhere — turned into orders: page type and path (no query string), page title, product id, category, price and currency, add-to-cart, checkout start, the order id on the thank-you page, the referring site, campaign parameters, device type and language, and a random first-party visitor id (cookie and local storage, 365 days) with a 30-minute session id. It never records a name, email, address or anything typed into a form. It does not run at all for a browser sending Do Not Track or Global Privacy Control. With the WP Consent API installed it waits for the shopper's "statistics" consent; on a store based in the EU/EEA, UK or Switzerland without a consent tool it is not loaded. Turn it off with `add_filter( 'xpay_wc_tracker_enabled', '__return_false' );`.

12. **nehl6uu58j.execute-api.us-east-1.amazonaws.com** — xpay's merchant API, called from your server by a connected store only. `GET /merchant/widget-config/public/{your-slug}` reads your storefront assistant settings (cached up to an hour) and `GET /merchant/content-pages/public/{your-slug}` reads the pages you publish from the xpay dashboard (hourly). Only your store's slug is sent, in the path; nothing about shoppers. The connection diagnostic in wp-admin also times the first call.

**Your own website.** The Tracking screen fetches your store's own home page (a request from your server to itself, never to a third party) to check whether an advertising pixel is present in the markup. Nothing is sent anywhere as a result, and the outcome is cached for several hours. This is not a third-party service and no data leaves your site.

Terms of use: [install.xpay.sh/woocommerce/terms.html](https://install.xpay.sh/woocommerce/terms.html)
Privacy policy: [install.xpay.sh/woocommerce/privacy.html](https://install.xpay.sh/woocommerce/privacy.html)

== Privacy ==

**We never see payment data, and never a buyer's name or address.** The plugin is non-custodial by design: payment stays with your gateway.

* **Nothing leaves your site until you click Connect store.** Before that, the settings page makes no outbound request of any kind.
* **ChatGPT Ads conversion tracking is off until you switch it on.** Once on, purchases and shopping events are sent to our relay and on to your ChatGPT Ads account — see item 10 under External services. Customer email, IP address and user agent are included only with marketing consent.
* **After you connect** we receive: your site URL, your admin email, a one-time nonce, a WooCommerce REST API key so we can read your catalog, your public product fields (name, description, price, stock, images, categories), and an order summary per order — order id, total, currency, SKUs, status and the channel it came from (item 9). **No buyer names, addresses or payment data.**
* **Shopper journey (connected stores).** The visitor tracker records pages, products, carts, checkouts and order ids against a random visitor id — never a name, email or address — and does not run for Do Not Track / Global Privacy Control browsers, before consent where a consent tool is installed, or at all on EU/EEA/UK/CH stores without one (item 11).
* **Anonymous diagnostics are OFF by default.** You're asked once. If you turn them on, we receive plugin lifecycle events and version numbers tagged with your site URL — and, separately, counts of *known AI bots only* (which bot, what kind of page, the response code) plus a daily total of human pageviews as a number, so you can see your AI-vs-human split. **A human visitor's IP address is never read, hashed or sent**, and cart, checkout, account and admin pages are never recorded.
* **Turn it off any time** at **xpay✦ Commerce → Settings → Privacy**, or hard-disable in `wp-config.php` with `define( 'XPAY_WC_TELEMETRY', false );` (or `XPAY_WC_AGENT_ANALYTICS` for bot counts alone). The constant overrides any UI choice.
* **Delete your data**: email privacy@xpay.sh from your admin address with your store name. Processed within 7 business days.

Every byte, itemised: [install.xpay.sh/woocommerce/privacy.html](https://install.xpay.sh/woocommerce/privacy.html) · [Terms](https://install.xpay.sh/woocommerce/terms.html)

== Screenshots ==

1. From agent-averse to agent-ready — your score across eight weighted commerce dimensions, and the exact fix for each one that's failing.
2. Someone is asking an AI about your products right now — live shopper visits separated from the crawls building your future visibility, and which engines found you.
3. Your WooCommerce catalog delivered to ChatGPT in one click — validated against the current standards. No spreadsheets, no SFTP, no developer.
4. Getting listed is easy; getting chosen is the hard part — a completeness score on every SKU, with titles and attributes written the way AI reads them.
5. Every product, every field, every delivery checked before it reaches OpenAI — and a broken feed stopped before it gets there.
6. Edit a product and the feed re-syncs on its own, with a full snapshot every day, so ChatGPT never has a half-updated catalog.
7. ChatGPT Ads numbers you can actually trust — reconciled against real orders, sent server-side, with live health so you know it's firing.
8. Can agents reach your products quickly? Your page speed against Google's targets, from Lighthouse and real Chrome user data.

== Upgrade Notice ==

= 0.8.0 =
ChatGPT Ads conversion tracking (off until you link a pixel), paid vs organic ChatGPT orders told apart, and a security fix. Recommended for all stores.

= 0.7.1 =
Widget loading latency improvement. Recommended for every store running the AI Storefront Assistant.

= 0.7.0 =
See which AI assistants read your store and which orders they drive — now without connecting anything. New xpay Commerce menu, catalog health scoring, ChatGPT Ads eligibility and pixel checking. Your existing settings are unchanged.

= 0.6.3 =
The AI Storefront Assistant now loads reliably alongside caching/optimization plugins (WP Rocket, LiteSpeed, Autoptimize, SiteGround) with no manual exclusion, and shows your store's name correctly on multilingual stores.

= 0.6.2 =
Product-FAQ sync is safer: a single product's FAQ can update on its own, and a partial or interrupted sync can no longer wipe FAQs you've already approved.

= 0.6.1 =
Turning the AI Storefront Assistant on now takes effect immediately on cached stores, instead of waiting for the cache to expire. Fixes the full-page shopper returning 404 after you enable it. Adds support for opening a side-cart drawer from an off-site link.

= 0.6.0 =
Control over the on-page product-FAQ block, which previously had no off switch. It now also renders on page-builder themes, as a product tab or an [xpay-faq] shortcode, with headings in your own language. Page caches are cleared when FAQs change.

= 0.4.4 =
GDPR-aware attribution defaults for EU/UK stores, asynchronous order-attribution dispatch off the shopper's thank-you page, a resilient widget consent gate with a 60-second failure breaker, and GTIN schema validation for non-numeric identifiers.

= 0.4.3 =
AI-attributed orders: shoppers referred by ChatGPT, Perplexity, Claude, Gemini, Copilot and 10+ more assistants now surface in your xpay dashboard with revenue split by source. Strictly non-PII. Bundles the 0.4.2 capabilities.

= 0.4.2 =
Explicit-consent gate on the AI Storefront Assistant — chat surfaces only after you turn it on. GTIN in Product JSON-LD. Variable-product carts. Defensive out-of-stock guard at the deeplink. Seconds-fast dashboard propagation.

= 0.4.1 =
Optional Content Engine add-on: when enabled for your store, xpay can publish answer-first comparison/buying-guide pages to your site. Off unless you're subscribed.

= 0.3.7 =
Maintenance and reliability polish, plus optional agency/referral attribution for stores set up by a partner.

= 0.3.6 =
AI-bot crawl analytics: see which AI crawlers (GPTBot, ClaudeBot, Perplexity, etc.) discover your store and whether they reach your discovery files, on your xpay dashboard. Opt-in, off by default, shares the telemetry consent. Known AI bots only — no human or customer data.

= 0.3.5 =
New /agents.md skill tells AI shopping agents exactly how to browse your live catalog and build a cart. Hardened /llms.txt merge that ignores non-text pages from headless storefronts. Optional shopping-bot routing to your structured catalog, off until you enable it.

= 0.3.4 =
Outcome-first Connect screen: plain-language value, no jargon, and an upfront promise that it's safe to try — the plugin writes no files to your site and fully reverts on deactivate. New panel lists every external service the plugin contacts.

= 0.3.3 =
New Tools → Run site diagnostics button verifies that AI agents and xpay can reach your store (Permalinks, REST API, /.well-known/ discovery files) and tells you exactly what to do if a layer needs attention.

= 0.3.2 =
Good-neighbour discovery: if your site already publishes its own `llms.txt`, this update appends our agent-shopping sections at the end and leaves your content untouched. Backend-callable admin/refresh endpoint and a smoother connect handshake round it out.

= 0.3.1 =
Second WP.org review pass: REST endpoints constructed via `rest_url()` to respect custom REST prefixes, raw-Markdown `/llms.txt` output, i18n-wrapped readiness strings, and an expanded External Services disclosure. See Changelog for full details.

= 0.3.0 =
Privacy hardening: Settings → xpay is pure markup — outbound requests fire only after you click **Connect store**. Declares WC dependency via the WP 6.5 `Requires Plugins` header. See Changelog for full details.

= 0.2.4 =
Settings → xpay reorganised into five tabs (General, Capabilities, Payments, Links, Tools). Toggle UCP shopping capabilities, map your gateways to `payment_handlers[]`, and override the URLs in `ucp.links`. See Changelog for full details.

= 0.2.1 =
Tighter alignment between what /llms.txt advertises and what's actually serving — the Commerce protocols section is now backend-driven. See Changelog for the full backend-side changes.

= 0.2.0 =
Aligned with ACP / UCP / AP2 commerce standards and the real discovery conventions (llms.txt, schema.org JSON-LD, robots.txt allowlist). Serves `/.well-known/ucp` for capability negotiation. See Changelog for full details.

= 0.1.12 =
Plugin RENAMED to "Agentic Commerce for WooCommerce" (slug `agentic-commerce-for-woocommerce`). Same product, same code — the previous name overlapped with the existing Nexi XPay plugin in the directory. See Changelog for full details.

= 0.1.11 =
Plugin Check (PCP) follow-up: cleared the four remaining PrefixAllGlobals warnings. No functional changes. See Changelog for full details.

= 0.1.10 =
Plugin Check (PCP) submission-readiness pass: tested up to WP 6.9, short description trimmed to ≤150 chars, removed the deprecated load_plugin_textdomain() call (WP auto-loads WP.org-hosted translations since 4.6), and excluded non-canonical markdown from the zip.

= 0.1.9 =
Docs moved from docs.xpay.sh/products/woocommerce → docs.xpay.sh/merchants/woocommerce so the path matches the audience. Future Shopify / BigCommerce integrations will live as siblings under /merchants/. URL-only; no code changes.

= 0.1.8 =
Pricing link updated. Punchier Description hero. Full setup walkthroughs with screenshots published at docs.xpay.sh/merchants/woocommerce — readme now backlinks them at the right moments (install / REST API keys / connect / audit / troubleshooting / privacy).

= 0.1.7 =
Source repo at github.com/xpaysh/agentic-commerce-for-woocommerce is now public. Restored repo link references in readme.txt FAQ and source-code section so reviewers and merchants can browse the source directly.

= 0.1.6 =
GitHub link references in readme.txt held back until the source repo flips public (currently private). Plugin remains GPLv2-or-later — the installed zip is the canonical unminified source.

= 0.1.5 =
Adds the `/?xpay_route=acp` query-arg fallback for the discovery file on hosts that intercept `/.well-known/`. Post-activation redirect now also fires for upgrades where the store hasn't connected yet. WC HPOS compatibility declared. Privacy + terms pages live.

== Changelog ==

The full machine-readable changelog lives at [install.xpay.sh/woocommerce/CHANGELOG.md](https://install.xpay.sh/woocommerce/CHANGELOG.md) (Keep-a-Changelog format). The summary below is the WP.org-required mirror.

= 0.8.0 =
* **ChatGPT Ads conversion tracking.** Link your ads account on **xpay✦ Commerce → ChatGPT Ads** and every purchase from a ChatGPT ad is reported back to it — funnel events from the browser plus a copy of each paid order from your server, under one id so it is counted once. Your ads key is sent to our backend and never stored on your site.
* **Off until you switch it on**, and it respects marketing consent (WP Consent API, or a no-consent default for EU/EEA/UK/CH stores).
* **One pixel per store.** If another OpenAI pixel is already installed, we record for your reports and do not send to OpenAI, so no purchase is counted twice.
* **Paid vs organic ChatGPT.** Orders from a ChatGPT ad click are now told apart from organic ChatGPT recommendations.
* **Fixed:** orders placed with the block checkout carried no AI attribution.
* **Fixed:** connecting failed on stores using Perfmatters "Disable REST API". The plugin now exempts only its own routes.

= 0.7.1 =
* Widget loading latency improvement.

= 0.7.0 =
* **See your AI traffic without connecting anything.** The plugin now counts which AI assistants read your store — ChatGPT, Claude, Perplexity, Gemini and others — and shows it to you on a new dashboard, using only your own site's data. No account, no key, and nothing is sent anywhere. Previously every number needed a connected store first.
* **A new xpay Commerce menu**, with dashboards for AI revenue, ChatGPT Ads, your product feed, tracking and your storefront. Your settings page has not moved — everything you had bookmarked works exactly as before, and the new menu links straight to it.
* **AI-attributed orders now show a match rate.** Every figure states what share of your real orders it accounts for, and where orders could not be traced we explain the reasons that causes. A revenue number you cannot check is not worth having.
* **Catalog health scoring** — see which products are missing a description, image, price or identifier before any of it reaches an AI shopping surface, and why each one matters.
* **ChatGPT Ads eligibility is checked up front**, so you find out whether your store qualifies before setting anything up rather than after.
* **Pixel checking rather than pixel installing.** If you already run Pixel Manager, PixelYourSite or a Tag Manager container, keep it — this checks what you have instead of adding a second pixel that would count every sale twice.
* **A storefront page that shows exactly what shoppers can see**, with a direct link to switch each one off. Having access to a feature and agreeing to display it are separate decisions.
* **The first-run diagnostics prompt is a third of its previous length** and says plainly what is and is not sent. The choice, the default (off) and the disclosures are unchanged.
* **Agent-attributed orders that never completed are now reported too.** If a shopper referred by an AI assistant reaches checkout but the order ends up cancelled or failed, that outcome is now sent to your xpay dashboard alongside the successful ones, so your attributed totals are not quietly flattering. Applies to connected stores only, and carries no customer, payment or personal data — as before.
* **More resilient.** Each part of the plugin now starts independently, so a fault in one can no longer affect your storefront or the rest of the plugin.

= 0.6.3 =
* **The AI Storefront Assistant now loads reliably alongside caching/optimization plugins.** When WP Rocket, LiteSpeed Cache, Autoptimize or SiteGround Optimizer minifies, combines, delays or self-hosts JavaScript, it could break the assistant loader so the chat bubble never appeared — while everything looked fine in an incognito/preview window. The loader is now excluded from those optimizers automatically, so you no longer need to add a manual exclusion. (For W3 Total Cache or an edge cache, which have no runtime hook, the plugin still shows a one-line manual-exclusion note.)
* **Fixed: the assistant could show "Array" instead of your store name on multilingual stores.** A localized store name is now resolved to your store's language before it's displayed.
* No other storefront changes — reliability fixes only.

= 0.6.2 =
* **Your approved product FAQs can no longer be wiped by a partial or interrupted sync.** Previously, every FAQ sync replaced the entire stored set with whatever it received — so if a sync ran with an incomplete list (a dropped connection, a catalog still rebuilding), any product left out had its FAQ silently deleted. A sync that would shrink your FAQ set by more than half is now refused unless it explicitly confirms a full replace, so an accidental one fails loudly instead of clearing your pages.
* **A single product's FAQ can now be updated on its own.** Approving one new product, editing one answer, or changing the heading no longer resends every FAQ — the update touches only the products it names and leaves the rest exactly as they were. Only the changed product pages are cleared from your cache.
* No visible change to your storefront; these are safety improvements to how xpay keeps your FAQs in sync.


Older releases (0.1.0 – 0.6.1) are listed in the full changelog:
https://install.xpay.sh/woocommerce/CHANGELOG.md
