{"id":292756,"date":"2026-09-15T12:41:18","date_gmt":"2026-09-15T12:41:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/phixtra-ai-shopping-assistant\/"},"modified":"2026-09-23T08:16:48","modified_gmt":"2026-09-23T08:16:48","slug":"phixtra-ai-shopping-assistant","status":"publish","type":"plugin","link":"https:\/\/fuc.wordpress.org\/plugins\/phixtra-ai-shopping-assistant\/","author":23469996,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.9.9","stable_tag":"3.9.9","tested":"7.1.2","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"PhiXtra - AI Sales Agent","header_author":"PhiXtra","header_description":"Add an AI-powered shopping and customer support assistant to your WooCommerce store using PhiXtra.","assets_banners_color":"cfd2d5","last_updated":"2026-09-23 08:16:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/phixtra.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":182,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.9.7":{"tag":"3.9.7","author":"phixtra","date":"2026-09-15 13:54:08","revision":3697088},"3.9.8":{"tag":"3.9.8","author":"phixtra","date":"2026-09-21 14:11:07","revision":3705725},"3.9.9":{"tag":"3.9.9","author":"phixtra","date":"2026-09-23 08:16:48","revision":3708803}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3696991,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3696991,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3696991,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3696991,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.9.7","3.9.8","3.9.9"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2353,2364,2369,36992,286],"plugin_category":[45],"plugin_contributors":[280874],"plugin_business_model":[],"class_list":["post-292756","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatbot","plugin_tags-customer-support","plugin_tags-sales-agent","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-phixtra","plugin_committers-phixtra"],"banners":{"banner":"https:\/\/ps.w.org\/phixtra-ai-shopping-assistant\/assets\/banner-772x250.png?rev=3696991","banner_2x":"https:\/\/ps.w.org\/phixtra-ai-shopping-assistant\/assets\/banner-1544x500.png?rev=3696991","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/phixtra-ai-shopping-assistant\/assets\/icon-128x128.png?rev=3696991","icon_2x":"https:\/\/ps.w.org\/phixtra-ai-shopping-assistant\/assets\/icon-256x256.png?rev=3696991","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>The PhiXtra AI Sales Agent is an AI-powered sales agent for your WooCommerce store \u2014 it chats with customers, helps them find products, answers questions, and provides support.<\/p>\n\n<p><strong>You need a PhiXtra API key<\/strong> to use this plugin. Get one from:\nhttps:\/\/portal.phixtra.com\/<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>AI-powered support and sales agent<\/li>\n<li>Secure API key authentication<\/li>\n<li>Customizable branding (colors and fonts)<\/li>\n<li>Free Trial and Upgrade links (optional)<\/li>\n<li>Built for WooCommerce<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects your WordPress \/ WooCommerce website to the <strong>PhiXtra AI service<\/strong> (https:\/\/phixtra.com), which is required for all plugin functionality.<\/p>\n\n<p><strong>Service:<\/strong> PhiXtra AI Sales &amp; Support Agent\n<strong>Provider:<\/strong> PhiXtra (https:\/\/phixtra.com)\n<strong>Primary endpoint:<\/strong> https:\/\/chat.phixtra.com (chat widget, cart recovery, and support features). A second endpoint, https:\/\/portal.phixtra.com, is used only for the one-time account-setup check described in item 8 below.<\/p>\n\n<h4>What data is sent and when<\/h4>\n\n<p>Outbound requests go to the PhiXtra backend at chat.phixtra.com via HTTPS POST for the visitor-facing widget features (items 1\u20137), and to portal.phixtra.com via HTTPS GET for the admin-only setup check (item 8). The specific paths and the data each one carries are listed below.<\/p>\n\n<ol>\n<li><p><strong>Chat messages<\/strong> \u2014 POST to chat.phixtra.com\/chat every time a visitor submits a message in the chat widget. Data includes: the visitor's message text, the configured API key, and a pseudonymous session identifier (UUID stored in localStorage\/cookie).<\/p><\/li>\n<li><p><strong>Cart events<\/strong> (WooCommerce only, when Cart Revenue Recovery is enabled) \u2014 POST to chat.phixtra.com\/cart-event when a visitor adds\/removes items, starts checkout, or completes an order. Data includes: API key, session ID, event type, cart total, cart line-item names\/SKUs, and (if the visitor is logged in) their email address.<\/p><\/li>\n<li><p><strong>Cart recovery check<\/strong> \u2014 POST to chat.phixtra.com\/check-recovery on each page load when Cart Recovery is enabled, to determine whether a recovery popup should appear for the current session. Data includes: API key and session ID.<\/p><\/li>\n<li><p><strong>Cart recovery reply<\/strong> \u2014 POST to chat.phixtra.com\/cart-recovery-reply when a visitor replies inside the recovery popup. Data includes: API key, session ID, and message text.<\/p><\/li>\n<li><p><strong>Notify When In Stock<\/strong> \u2014 POST to chat.phixtra.com\/notify-when-in-stock when a visitor submits their email via the \"Notify me when back in stock\" widget form. Data includes: API key, product ID, product name, product URL, and the visitor's email address.<\/p><\/li>\n<li><p><strong>Stock back-in notification<\/strong> \u2014 POST to chat.phixtra.com\/stock-back-in when a WooCommerce product transitions to in-stock. Data includes: API key and product ID.<\/p><\/li>\n<li><p><strong>Handoff contact capture<\/strong> \u2014 POST to chat.phixtra.com\/handoff-contact when a visitor submits the in-widget contact form. Data includes: API key, session ID, visitor name, phone number, and email address.<\/p><\/li>\n<li><p><strong>Account connection status check<\/strong> (admin-only, background) \u2014 GET to portal.phixtra.com\/connect\/status. This runs automatically via WP-Cron, starting 5 minutes after activation and then at most every 15 minutes, but only for stores that have not yet saved an API key. Data includes: the site's home URL and the WordPress admin email address \u2014 no visitor, customer, or product data is included. Its purpose is to detect when the store owner has finished creating a PhiXtra account, so the settings page can show them a \"your account is ready, paste in your API key\" message instead of a generic signup prompt. This check \u2014 and its scheduled WP-Cron event \u2014 stops permanently the moment an API key is saved or the account is marked verified, and is also removed on plugin deactivation.<\/p><\/li>\n<\/ol>\n\n<p>Items 1\u20137 above are only sent once a valid API key has been saved in the settings. Item 8 is the only request that can run before a key is saved (see above for exactly when it starts and stops). No data is stored in the WordPress database by this plugin beyond its own settings (e.g. whether an account has been verified).<\/p>\n\n<h4>URL rendering in the chat widget<\/h4>\n\n<p>The chat widget (assets\/widget.js) formats URLs that appear inside AI responses as clickable hyperlinks. If a URL in the AI response does not already start with \"http\", the widget prepends \"https:\/\/\" before rendering it as an anchor tag. This formatting happens entirely within the visitor's browser; no request is made to any third-party domain by this code. The URLs rendered are those returned by the PhiXtra AI service (typically product pages on your own store).<\/p>\n\n<h4>PhiXtra terms of service and privacy policy<\/h4>\n\n<ul>\n<li>Terms of Service: https:\/\/phixtra.com\/terms-conditions\/<\/li>\n<li>Privacy Policy: https:\/\/phixtra.com\/privacy-policy\/<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>All chat messages, cart events, and contact details collected by this plugin are transmitted to PhiXtra as described in the External Services section above. Site owners are responsible for informing their visitors about this data processing in their own privacy policies. Separately, the store's own site URL and the WordPress admin's email address (not a visitor's) are sent to PhiXtra as part of the account-setup check described in item 8 of that section, until an API key is saved.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via Plugins \u2192 Add New.<\/li>\n<li>Activate the plugin through the 'Plugins' menu.<\/li>\n<li>Go to <strong>PhiXtra AI<\/strong> settings.<\/li>\n<li>Enter your PhiXtra API key and save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20api%20key%3F\"><h3>Do I need an API key?<\/h3><\/dt>\n<dd><p>Yes. You can get a PhiXtra API key from https:\/\/portal.phixtra.com\/<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20store%20chat%20logs%20in%20my%20wordpress%20database%3F\"><h3>Does the plugin store chat logs in my WordPress database?<\/h3><\/dt>\n<dd><p>No. Chat messages are transmitted to PhiXtra for processing.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.9.9<\/h4>\n\n<ul>\n<li>On phones, the chat bubble's greeting label is now hidden so it no longer covers page content. The chat button itself still shows.<\/li>\n<\/ul>\n\n<h4>3.9.8<\/h4>\n\n<ul>\n<li>Rebranded plugin from \"AI Shopping Assistant\" to \"PhiXtra AI Sales Agent\" \u2014 updated plugin title, description, tags, and admin menu labels to match, and aligned the External Services \"Service\" line to the new name.<\/li>\n<li>Added a \"Settings\" quick-link on the Plugins list screen.<\/li>\n<li>Added a \"Welcome to PhiXtra\" onboarding page shown on activation, plus a background account-connection check (see External Services item 8) so the settings page can tell the admin once their account is verified.<\/li>\n<li>Restructured the Settings page into tabs (General, Appearance, Widget Behavior, Cart Recovery, Preview).<\/li>\n<li>Added \"Bubble Label\" and \"Bubble Subtitle\" settings to customize the chat bubble's preview text.<\/li>\n<li>Added an admin notice prompting installation of the companion PhiXtra Export plugin once an API key is connected.<\/li>\n<li>Added separate, admin-configurable popup delay (and a \"never show\" option) for desktop vs. mobile visitors.<\/li>\n<li>Chat widget \"Agent\" label is now customizable via a new Agent Name setting.<\/li>\n<\/ul>\n\n<h4>3.9.7<\/h4>\n\n<ul>\n<li>WordPress.org compliance update (readme.txt only):\n\n<ul>\n<li>Rewrote External Services endpoint list to use plain-text hostnames instead of\nbare https:\/\/ URLs for POST-only paths, preventing the WP.org URL checker from\nissuing a false 405 error when it probes those paths with a GET request.<\/li>\n<li>Added \"URL rendering in the chat widget\" section to document that assets\/widget.js\nprepends https:\/\/ to bare URLs inside AI responses purely for in-browser link\nrendering, and contacts no third-party domain in doing so.<\/li>\n<li>Updated Terms of Service link to correct URL (phixtra.com\/terms-and-conditions\/\npreviously returned 404).<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>3.9.6<\/h4>\n\n<ul>\n<li>WordPress.org compliance update:\n\n<ul>\n<li>Replaced all inline admin CSS (echo style) with wp_add_inline_style().<\/li>\n<li>Replaced all inline admin  blocks with a dedicated enqueued JS file (assets\/admin-settings.js).<\/li>\n<li>Added allowlist-based sanitization for font-family setting to prevent CSS injection.<\/li>\n<li>Added nonce verification to the \/apply-recovery-coupon REST endpoint.<\/li>\n<li>Renamed all option\/function\/handle names to use the 'phixaish_' unique prefix (plugin-wide rename for WordPress.org compliance).<\/li>\n<li>Expanded External Services documentation in readme.txt.<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>WordPress.org release.<\/li>\n<li>Settings sanitization and admin improvements.<\/li>\n<\/ul>","raw_excerpt":"Add an AI-powered sales agent to your WooCommerce store using PhiXtra \u2014 helps customers find products and get support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/292756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=292756"}],"author":[{"embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/phixtra"}],"wp:attachment":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=292756"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=292756"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=292756"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=292756"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=292756"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=292756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}