{"id":384459,"date":"2026-10-20T12:51:51","date_gmt":"2026-10-20T12:51:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/aida-shop-assistant\/"},"modified":"2026-10-20T14:39:46","modified_gmt":"2026-10-20T14:39:46","slug":"ratmil-ai-shop-assistant","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ratmil-ai-shop-assistant\/","author":18434093,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.2","stable_tag":"0.1.2","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Ratmil AI Shop Assistant","header_author":"","header_description":"Floating AI chat assistant that answers visitors' questions about the site (content and WooCommerce products) using OpenAI or Gemini.","assets_banners_color":"2563eb","last_updated":"2026-10-20 14:39:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":59,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"ratmil","date":"2026-10-20 12:51:23","revision":3756747},"0.1.1":{"tag":"0.1.1","author":"ratmil","date":"2026-10-20 14:14:16","revision":3756894},"0.1.2":{"tag":"0.1.2","author":"ratmil","date":"2026-10-20 14:39:46","revision":3756929}},"upgrade_notice":{"0.1.2":"<p>Makes the automatic indexing work on sites where WP-Cron is unavailable.<\/p>","0.1.1":"<p>Adds a setup checklist, connection tests and automatic indexing.<\/p>","0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3756747,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3756747,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3756794,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3756794,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.1","0.1.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2353,2364,224606,194533,286],"plugin_category":[45],"plugin_contributors":[287711],"plugin_business_model":[],"class_list":["post-384459","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatbot","plugin_tags-gemini","plugin_tags-openai","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-ratmil","plugin_committers-ratmil"],"banners":{"banner":"https:\/\/ps.w.org\/ratmil-ai-shop-assistant\/assets\/banner-772x250.png?rev=3756794","banner_2x":"https:\/\/ps.w.org\/ratmil-ai-shop-assistant\/assets\/banner-1544x500.png?rev=3756794","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ratmil-ai-shop-assistant\/assets\/icon-128x128.png?rev=3756747","icon_2x":"https:\/\/ps.w.org\/ratmil-ai-shop-assistant\/assets\/icon-256x256.png?rev=3756747","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Ratmil AI Shop Assistant adds a chat window to your site. Visitors can ask things like \"Do you have a waterproof blue backpack under $50?\" and the bot looks up your posts, pages and WooCommerce products and answers from them.<\/p>\n\n<ul>\n<li>Choose OpenAI or Google Gemini, enter your own API key and pick one of the supported models.<\/li>\n<li>Searches your site content and WooCommerce products (including attributes, prices and stock) through function calling.<\/li>\n<li>Optional semantic search using embeddings, stored in your own database, so questions match by meaning and across languages.<\/li>\n<li>Open the chat from anywhere: the floating button, a <code>[ratmil_chat_button]<\/code> shortcode, any element with the <code>wpbot-open<\/code> class, or a link to <code>#wpbot-open<\/code>.<\/li>\n<li>Optional but recommended CAPTCHA (Cloudflare Turnstile) for anonymous visitors, so scripts cannot use your chat and your API credits.<\/li>\n<li>Per-IP rate limiting, a daily request cap, opening hours and a logged-in-only mode, customizable bot name, welcome message, instructions, color and position.<\/li>\n<li>Optional hand-off to a person on WhatsApp: a link in the chat, offered by the assistant when a visitor asks for a person, and shown automatically when the assistant cannot answer (closed, limit reached, AI error).<\/li>\n<li>Review the questions visitors ask and the answers they get (Ratmil AI Assistant &gt; Conversations), with automatic deletion after a retention period you choose.<\/li>\n<li>Translation-ready; the default texts follow the site language.<\/li>\n<\/ul>\n\n<p>You need your own API key from OpenAI or Google AI Studio. Keys can also be defined in <code>wp-config.php<\/code> with <code>WPBOT_OPENAI_KEY<\/code> \/ <code>WPBOT_GEMINI_KEY<\/code>.<\/p>\n\n<h4>External services<\/h4>\n\n<p>This plugin sends data to a third-party AI service chosen by the site administrator. Nothing is sent until an API key is configured.<\/p>\n\n<p><strong>OpenAI<\/strong> (when selected as provider)\n* Sent: the visitor's chat messages, the conversation so far, the results of site searches (titles, excerpts, prices, URLs of your content) and, if semantic search is enabled, the text of your published posts\/products to create embeddings.\n* Terms: https:\/\/openai.com\/policies\/terms-of-use\n* Privacy: https:\/\/openai.com\/policies\/privacy-policy<\/p>\n\n<p><strong>Google Gemini API<\/strong> (when selected as provider)\n* Sent: the same data as above.\n* Terms: https:\/\/ai.google.dev\/gemini-api\/terms\n* Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Cloudflare Turnstile<\/strong> (optional; used only when the CAPTCHA is enabled and keys are entered)\n* When an anonymous visitor asks their first question, the Turnstile script is loaded from challenges.cloudflare.com and the visitor's browser exchanges challenge data with Cloudflare. Your server then sends the challenge response, your secret key and the visitor's IP address to Cloudflare to verify it.\n* Terms: https:\/\/www.cloudflare.com\/website-terms\/\n* Privacy: https:\/\/www.cloudflare.com\/privacypolicy\/<\/p>\n\n<p><strong>WhatsApp<\/strong> (optional; only when you enter a number under Human hand-off)\n* The chat shows a link to https:\/\/wa.me\/ with your number and the visitor's last question pre-filled. Nothing is sent to WhatsApp unless the visitor clicks the link and sends the message there.\n* Terms: https:\/\/www.whatsapp.com\/legal\/terms-of-service\n* Privacy: https:\/\/www.whatsapp.com\/legal\/privacy-policy<\/p>\n\n<p>Please inform your visitors, in your privacy policy, that their chat messages are processed by the selected provider.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>ratmil-ai-shop-assistant<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it from the Plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Ratmil AI Assistant &gt; Settings, choose a provider, enter the API key and select a model.<\/li>\n<li>Recommended: create free Cloudflare Turnstile keys and enter them under CAPTCHA in the settings, so only people (not scripts) can use the chat.<\/li>\n<li>Optionally click \"Build \/ update index now\" to enable semantic search.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20require%20woocommerce%3F\"><h3>Does it require WooCommerce?<\/h3><\/dt>\n<dd><p>No. Product search is only available when WooCommerce is active.<\/p><\/dd>\n<dt id=\"why%20should%20i%20enable%20the%20captcha%3F\"><h3>Why should I enable the CAPTCHA?<\/h3><\/dt>\n<dd><p>The chat endpoint is public and every message costs you API credits. Without a CAPTCHA, anyone can call it from a script. With it, an anonymous visitor solves one challenge before their first question and receives a short-lived pass (one hour, limited number of messages, tied to their IP). Logged-in users are not asked.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20switch%20provider%3F\"><h3>What happens if I switch provider?<\/h3><\/dt>\n<dd><p>Embeddings from different providers are not compatible. Re-run the index after switching.<\/p><\/dd>\n<dt id=\"where%20is%20my%20data%20stored%3F\"><h3>Where is my data stored?<\/h3><\/dt>\n<dd><p>Settings are in the <code>wpbot_settings<\/code> option, embeddings in the <code>wpbot_vectors<\/code> table and, unless you turn it off, the questions and answers in the <code>wpbot_logs<\/code> table (with the user account when the visitor is logged in; no IP address is stored). Conversations are deleted automatically after the retention period you set (30 days by default) and can be read only by users who can manage options. Visitors see a short notice in the chat. Everything is removed when the plugin is deleted.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Fix: the setup checklist is now shown at the top of the settings page.<\/li>\n<li>Fix: the automatic indexing now also runs on sites where WP-Cron cannot run; the open settings page drives it.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>New setup checklist at the top of the settings page (API key, search index, CAPTCHA).<\/li>\n<li>New \"Test connection\" buttons for the AI key and the Turnstile keys.<\/li>\n<li>The content is now indexed automatically in the background after the API key is saved.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A floating AI chat widget that answers visitors' questions about your content and WooCommerce products, using OpenAI or Google Gemini.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384459","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=384459"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ratmil"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384459"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384459"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384459"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384459"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384459"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}