AI eShop Optimizer — the unified AI commerce & content suite for WordPress & WooCommerce
AI eShop Optimizer turns your site into an adaptive, self-optimising storefront — or content platform. One plugin does the work of a whole stack of subscriptions — an AI assistant, product recommendations, a complete in-house SEO engine, first-party measurement and consent, pricing and merchandising, fulfilment and operations, customer intelligence, and plain-language analytics — powered by the latest models from
Anthropic Claude, with
Voyage AI embeddings for semantic search.
Its guiding principle is
unification of experiences and functionality: products are content and content is products, measured on one spine; every storefront surface shares the same design tokens, containers and controls; every report reads from one canonical source of truth; and the heavy lifting is pre-computed into materialised tables and served by a thin front-end runtime — so each feature adds capability, not milliseconds.
Works with or without WooCommerce. Tell AIEO what your site is — a shop, a catalogue (products shown as content, without checkout), or a pure content/publisher site — or let it auto-detect, and every metric, score and report adapts. Perfect for:
- WooCommerce stores that want recommendations, merchandising, SEO, fulfilment and attribution in one place
- Publishers, portals and content sites that want first-class SEO, conversion goals and campaign analytics — not a bolted-on afterthought
- Corporate and information sites that want an intelligent, on-brand AI assistant and support
You can adopt it one capability at a time. Almost everything ships off by default and runs alongside your existing tools (your current SEO plugin, your pixel manager, your CMP) until you choose to switch each piece on — so installing changes nothing until you flip a toggle.
Extract the contents of this plugin zip file into your wp-content/plugins/ directory locally.
Upload the extracted folder to your website.
Navigate to wp-admin/plugins.php on your dashboard.
Find 'AI eShop Optimizer' and activate the plugin.
Alternatively, install directly through WordPress:
Go to the 'Plugins' menu in WordPress.
Click 'Add New' and search for 'AI eShop Optimizer.'
Install and activate directly from your dashboard.
8.7 - 2026-07-13
Block-library discoverability, plus a clearer block name.
- More native blocks now surface in the block editor and on the plugin page. Recommendations, Product Slider and Product Variations Gallery gained a block-editor registration (they were front-end-render-only before), so they now appear in the inserter with a labelled placeholder and are listed among the blocks this plugin provides. Their front-end output is unchanged.
- The full block library is documented in the plugin description — brand, product, local-business (Google Reviews, Store Locator / Map, Opening Hours, Business Info…), content and archive blocks, grouped by purpose.
- "Post Related Categories" is now "Post Related Product Categories" to make clear it lists related WooCommerce product categories, not blog categories.
8.6 - 2026-07-13
Your admin chat now fixes SEO for you — plus Google Search Console, backlink & disavow tools, a sharper and more relevant storefront assistant, lower AI/embedding costs, and a faster engine that shrugs off aggressive crawlers.
- Sales predictor rebuilt to run in seconds, not minutes. The backtest accuracy step and the per-batch variation build joined the full order-line history on a computed key (
COALESCE(variation_id, product_id)) that no index could serve, forcing MariaDB into full×full block-nested-loop scans of ~2–5 billion row-pairs per run (300–500s each). Order-line analytics now carry an indexed effective_pid column, the backtest is pre-aggregated once instead of a correlated per-row subquery, and every freshly-rebuilt staging table is ANALYZEd before it is joined — so the optimiser always picks an indexed nested-loop. Output is byte-for-byte identical (verified across every history row on live data); the nightly job just stops churning the database into swap.
- Same fix applied across the physical-recovery and monolithic predictor paths. The five stock-recovery-outcome joins and the legacy monolithic predictor now use the indexed
effective_pid too.
- Customer cumulative order-stats no longer stall. The per-customer lifetime spend/items rollup was a
customeremail self-join that flipped to a quadratic multi-minute scan whenever the underlying order table had just been rebuilt (stale statistics). It is now a single pre-aggregate pass — structurally impossible to flip — with fresh statistics forced before it runs.
- Product Data Prep (vitals) rebuilt for speed and stability. The nightly Data Prep run that computes every product's vitals — the metrics behind recommendations, badges, swatches, archives and analytics — could flip into multi-hundred-second full-table scans right after a staging table was rebuilt, because stale table statistics made MariaDB mis-plan the joins (the classic "n_rows reads as ~1" trap). Every vitals stage now refreshes its statistics and pins the correct index with typed join keys before it joins, so it stays on a fast indexed path; a built-in circuit breaker caps any single query's temp-table size and run time, and a plan-flip detector flags a regressing stage instead of letting it churn the database into swap. Identical output, a fraction of the time — and no more midnight swap spikes on large catalogues.
- Sitemap & robots.txt scheme fix. The XML sitemap and managed robots.txt are built offline (cron / WP-CLI), where WordPress cannot detect that the live request is HTTPS. On a site served over https but whose stored WordPress Address is http:// (the classic Cloudflare "Flexible" SSL / http-origin proxy setup), every sitemap
<loc>, image URL and the robots.txt Sitemap: line could be written as http:// — so search engines were handed http canonicals for an https site. Every same-site URL emitted by the sitemap and robots.txt is now normalised to https (overridable via the new aieo_seo_sitemap_scheme filter for a genuinely http-only origin).
- SEO Auto-Fix Assistant, in your admin chat. Ask the AIEO Insights chat to "fix my top pages" and it now works in two tiers, free before paid. Free (no AI credits): it sets the canonical URL and fills the focus keyphrase from the page's own top-ranking Google keyword — structural fixes that need no copywriting, applied instantly and re-scored, with one-click undo; it can also clear an accidental noindex on request. AI credits: the content-writing fixes — a SERP-aware SEO title + meta description, descriptive alt text for images missing it, and richer body content (drafted for review; approving saves a WordPress revision so you can roll back) — are written by the AI, drafted for your review by default. The assistant always tries the free fixes first and tells you the credit cost before writing across more than a few pages. A nightly free Autopilot can keep the structural fixes flowing (off by default, opt-in).
- Google Search Console — your true traffic (new). Connect Search Console (SEO → Search Queries) and see the real queries and pages that bring you Google organic clicks, impressions, CTR and average position — straight from Google — beside the DataForSEO ranked-keyword view. High impressions with low CTR flag a title/description the AI can rewrite.
- Backlinks & toxic-link disavow (new). SEO → Backlinks pulls your referring domains and their spam score from DataForSEO, flags the toxic ones, and generates a ready-to-upload Google disavow file — kept in sync as new bad links appear. (Google provides no API to submit a disavow, so you upload the file once at the Search Console Disavow Tool; we link you straight there.)
- Content ideas from your customers (new). The questions shoppers ask your storefront AI that it answers poorly — no matching products, or a low rating — are distilled into a demand-ranked list of content gaps, so you know exactly what to write next. Your customer assistant only surfaces the signal; it never changes your site.
- Storefront AI assistant — more relevant answers, fewer wrong turns. The product cards shown alongside a chat answer are now always tied to what the shopper actually asked, with a relevant-product fallback so the assistant never pads a reply with off-topic links. It understands your own Table Rate Shipping rules when answering delivery questions, and a configurable recency boost lets newer arrivals win when a shopper asks "what's new" or browses a fast-moving category (set your "new product" window under Merchandising → Badges). Answers also run to full length by default for more complete replies.
- Lower AI costs — the semantic index only embeds what changed. Building your recommendation & search index now embeds only the products, posts and pages that are new or have changed since the last run, instead of re-embedding the whole catalogue every time — a large saving on embedding spend for big or frequently-updated stores. (Switching the embedding model still rebuilds everything, as it must.) Product text is read from the pre-computed product vitals first and only reaches into the full content for the description, so each run is faster too — and the automatic nightly re-embed schedule now runs reliably.
- Faster and more resilient under heavy crawling. A few storefront helpers used to make a small uncached background request on every page view — the swatch add-to-cart nonce refresh, recommendation-impression logging, and the free-shipping progress bar's cart check. Under an aggressive SEO crawler those could multiply into a needless server-load spike. They now fire only on genuine shopper interaction (or only when there is actually a cart to sync), and automated JS-rendering crawlers are skipped outright — no change to what shoppers see or do, just no wasted load from bots.
- Cookie scanner: off by default, on demand instead. The consent banner's live per-visitor cookie-discovery sweep is now off by default. Your cookie & third-party-service inventory is built from the built-in database plus the on-demand "Re-scan storefront now" button (Consent → Cookie inventory), which loads your key pages in the background whenever you add a new service — so nothing scans on every visitor. Continuous live discovery can be switched back on any time.
8.5 - 2026-07-05
SEO grows beyond the shop: site profiles for content & catalogue sites, Google-data-driven AI titles, conversion goals, campaign & exit-page analytics, and complete attribution in your order and form emails.
- Site profiles (new). Tell AIEO what your site IS — shop, catalogue (products presented as content, without checkout), or content/publisher — or let it auto-detect. Every SEO metric adapts: opportunity scoring, pillar pages and demand now work properly on content and catalogue sites instead of assuming a shop.
- Content vitals (new). The per-product health metrics gain a content twin: every post, page and custom type gets daily reach, engagement, freshness and demand scores — including reader time-of-day and day-of-month consumption patterns, the same lens the shop side has for buyers.
- DataForSEO integration (new). Connect a DataForSEO account per site (SEO → General) and AIEO pulls a weekly snapshot of every Google keyword you rank for, computes striking-distance opportunities (positions 8–20 by search volume) and shows them on the Opportunities card — under a monthly spend cap you control.
- AI titles & descriptions with live SERP context (new). A nightly queue drafts new SEO titles and descriptions for your highest-ROI pages using the actual Google results for the target keyword — written to win the click against the competitors really shown there. Drafts wait for approval on SEO → Health, or switch on Autopilot.
- Conversion goals (new). Choose which Gravity Forms (plus the Newsletter plugin) count as conversions per site. AIEO's AI reads each form and derives its goal context, which feeds the SEO descriptions of the pages hosting that form — and goal conversions flow into content demand and the new campaign analytics.
- Campaign attribution in form notification emails (new). Gravity Forms staff notifications can include the full campaign story — channel, all five utm parameters, landing page and original referrer — with no hidden form fields or per-site code snippets. Visitor autoresponders are never touched, utm form fields auto-prefill, and the page URL sent to HubSpot is cleaned of tracking parameters.
- Order attribution emails, completed. The "Order origin & attribution" block in staff new-order emails now always lists all five utm parameters — and it now also appears on orders paid by cheque, bank transfer or COD, which previously missed it on speed-optimised checkouts.
- Landing pages & campaigns, canonicalised (new). Session analytics now parse every visitor's landing page into a clean path plus utm parameters (per-click junk such as fbclid is dropped), with a durable per-day campaign × landing-page rollup: sessions, cart adds and goal conversions per campaign.
- Exit pages (new). See where sessions end, split by whether the visitor converted first — separating natural end-of-journey pages from the pages that bleed visitors.
- Ask the insights chat. New chat skills: ranked keywords, the striking-distance list, the content-vitals leaderboard, landing-page campaigns and exit pages.
- Redirect import safeguards. Imports now verify that every redirect target exists on THIS site and refuse any rule that would create a redirect loop at any depth.
- Cookie consent: position the floating button per device. The floating "Cookie settings" button can now be placed Left, Centre or Right with exact pixel offsets from the edge and the bottom — separately for desktop and mobile — so it aligns cleanly with other floating widgets (chat bubbles, scroll-to-top). When the Side Cart bottom navigator is active, its coordinated styling automatically takes precedence on mobile.
- Search Console fixes. Paginated pages emit correct self-canonicals and sensible robots defaults, addressing "Alternative page with proper canonical tag" and "Duplicate without user-selected canonical" warnings on content sites.
8.4 - 2026-07-04
A media-library cleanup tool, a per-user landing page that can resume where you left off, an admin usage dashboard, a managed robots.txt, and more resilient background jobs.
- Media Cleanup (new). A Tools & Settings tool that reclaims disk space by finding and removing image files your site no longer needs — thumbnail sizes your current theme doesn't register, true orphans with no media-library record, and images left behind by products you deleted. It scans in resumable batches (built for libraries with hundreds of thousands of files), moves everything it flags to a recoverable quarantine first, and only deletes for good when you choose to empty the quarantine — with removing the matching media-library records kept as a separate, off-by-default opt-in. A file is only ever touched when nothing on the site references it anywhere — product galleries, variation swatches, brand logos, page/post content, widgets, menus and theme options are all checked, WebP and AVIF included — so an image still in use is never removed.
- Choose where you land — or pick up where you left off. A new My Settings card lets each user set which e-shop Manager card the page opens on, instead of always landing on the same default. Pick any card, or choose "continue where I left off" and AIEO returns you to the last card you were working in.
- Admin usage dashboard (new, administrators only). A Tools & Settings panel, visible only to site administrators, that reports how the AIEO admin is actually used — page views, active users, sessions and most-opened cards — in total and per user, over a time window you select. Lightweight, self-pruning (kept for 180 days), and never shown to non-admins.
- Managed robots.txt (new). The built-in SEO engine can now manage your robots.txt alongside the XML sitemap: it serves a correct, sitemap-referencing robots.txt (honouring "Discourage search engines"), lets you add your own custom rules from SEO → Redirects, and writes a static file at the web root so your server can serve it directly. It only ever acts when AIEO SEO is switched on and no other SEO plugin (Yoast, Rank Math, AIOSEO) is handling robots — and it never overwrites a robots.txt it didn't create.
- More reliable background jobs. The protection that stops a mis-behaving recurring task from piling up thousands of duplicate scheduled actions now covers the full set of AutomateWoo jobs and WPForms' spam-purge and form-locator tasks — not just log cleanup — so low-traffic sites keep a clean, fast Action Scheduler queue.
- Fixes & polish. The image picker on the SEO → Schema and Social cards now opens reliably (it previously failed to attach on pages where the media library loaded late). Greek translations refreshed, including the Amazon Selling-Partner catalogue and order-import strings.
8.3 - 2026-06-26
One-click product import from your marketplaces, an AI-chat analytics dashboard, and a single unified admin navigation.
- Catalogue Importer (new) — import your products from eFood, Etsy, Wolt and Amazon. The mirror image of the marketplace catalogue exports: enter your marketplace API keys, choose a source, and AIEO recreates the products in your store with one click — auto-building the category tree, product attributes and food option-groups each product references, sideloading its images, and matching on SKU so a re-run updates products in place instead of duplicating them. Imports as Draft + new-only by default (each a per-run toggle, alongside Create + Update and Update-only). A new Enrich mode fills gaps on existing products without overwriting anything you already have — so you can, for example, create products from Wolt (for their ingredient / topping option-groups) and then enrich from eFood or Amazon to fill in barcodes. Amazon reads your own Seller listings through the Selling Partner API (no extra AWS keys needed); eFood, Etsy and Wolt use their catalogue APIs.
- AI Chat Analytics (new, Pro). A Customer-Profiling dashboard that turns your AI chat history into insight: a searchable conversation log plus aggregate metrics — which page each conversation was opened from (read from the existing Session Tracker, not a second tracker), question volume and topics, the satisfaction ratings customers leave, and chat-assisted conversions (orders that followed a chat, precomputed and cached the same way Competition conversions are — never calculated live on page load). Conversation-history retention is configurable, 90 days by default.
- Unified admin navigation. The three AIEO admin pages — Analytics & Shop Recommendations, e-shop Manager and AI Chat — now share a single menu bar that highlights the section you're in, replacing the old top tab-strip and the separate per-page tables of contents. New "Set Up" and "AI Chat" menu groups deep-link straight to each page's individual cards, so everything is one click away from anywhere.
- Quick Navigator finds features by what they do. The Ctrl/Cmd-K Quick Navigator now matches synonyms and capability terms as well as names — so "amazon", "barcodes" or "import" jump to the Catalogue Importer and "happiness" or "sentiment" to AI Chat Analytics — and cross-page results now show the correct section badge.
- Fixes & polish. The SEO → Redirects "Rebuild SEO index" card now remembers the object types you last rebuilt (Posts / Pages / Products / Attributes as well as the taxonomies) and pre-ticks them on your next visit, instead of always resetting to the terms-only default.
8.2 - 2026-06-25
A built-in FAQ manager, a new "Custom Post Types" admin section with a unified Store Pages panel, scheduled Google-review refresh, Courier Center end-of-day reconciliation, more reliable controllable background jobs — plus an opt-in Food & Beverages product-options toolset and new marketplace connectors (catalogue export + order-taking) for eFood, Wolt, Etsy and Amazon.
- Built-in FAQ manager (new). A self-contained FAQ system — an FAQ content type (title = question, answer in the block editor) with category-style FAQ groups, managed from a dedicated admin panel where you create / rename / delete groups, add and edit questions, and drag-and-drop to reorder or move a question into another group (everything saves instantly). Drop the
[faq] / [aieo_faq] accordion shortcode on any page — optionally scoped to one or more groups (group="shipping,returns"), rendered as titled per-group sections (sections="yes"), or limited to specific entries; a bare [faq] lists every published Q&A. Self-contained, theme-agnostic markup with its own styling.
- New "Custom Post Types" admin section. The horizontal admin navigation gains a group that gathers the editorial content types in one place — FAQ, Events, Competitions, Locations & Reviews, and Store Pages. Events and Competitions moved here from Customer Profiling and Locations & Reviews from Catalog Sync (same panels, clearer home), and the store-location, store and FAQ post types no longer add their own clutter to the WordPress sidebar.
- Store Pages panel. A single screen listing every store / location page on the site — both the theme's store pages and the plugin's store pages — with type, bound Google location, status and Edit / View links. The store-page settings (enable, URL base, labels) moved here from SEO → Schema, so configuration and the page list now live together.
- Scheduled Google-review refresh. Reviews used to update only when you clicked "Fetch all", so they silently went stale; they now refresh automatically on the cadence and run-time you set (daily by default), keeping each location's rating and review snippets current. The refresh arms itself only when at least one location has a valid Google API key and place ID — a site that never configured reviews never makes a single Google API call — and it respects per-hour / per-day quota caps (defaults 20/hour, 500/day). The manual "Fetch all" button ignores the caps so an operator-initiated run always completes.
- Courier Center end-of-day reconciliation. Courier Center (Qualco "Deliverd") has no separate close API, so AIEO now reconciles each day through its official
/Manifest pickup list — the carrier's end-of-day close — and stores the returned manifest PDF as the closing document. "Close & print", the batch "close pending now", the daily auto-close, and "reprint last closing" now self-route by carrier: Geniki uses its close API, Courier Center uses the manifest, and carriers with no end-of-day API get a local manifest close — so every carrier is reconciled, not just Geniki (a per-carrier close on a non-Geniki courier previously failed with a "does not support close_pending" error).
- Smarter background jobs. Scheduled jobs no longer do pointless work on installs that haven't set the feature up yet: order-cancellation metrics recompute only on Pro, courier tracking and auto-close run only once you've created a shipment, the monthly AI-model refresh wakes only when your Rooster Content Connector token is set, and session-analytics rollups run only when session tracking is switched on. Fresh sites stay quiet until the relevant feature is actually in use.
- More control over the always-on jobs. A new "Automatically capture abandoned carts every hour" toggle lets you pause the hourly capture from the Saved & Abandoned Carts screen (it saves the moment you flip it), and session analytics honours the existing tracking switch — while the manual "Capture now" and "Rebuild now" buttons still run on demand even when the automatic job is off.
- Self-healing schedules. If a plugin update or a wiped cron table ever drops a scheduled job, AIEO now quietly re-creates it — your automated marketplace product feeds and AI analytics / embeddings updates keep running instead of silently stopping, with no need to re-save settings. Only jobs you have already enabled are re-armed.
- Much faster Competitions tab. The Competitions admin page used to rebuild its entrant-revenue and Insights figures on every load — a heavy cross-table calculation that made the page take several seconds to open. Those figures are now precomputed in the background, so the page renders them instantly, with an Auto-refresh control (Off / Hourly / Daily / Weekly / Monthly, default Daily), a manual Refresh button, and an automatic background update shortly after each new entry.
- Food & Beverages: product options & modifiers (new, opt-in). A toolset for food and made-to-order products, off by default behind a single "Food & Beverages" switch (Custom Post Types → Food & Beverages) so shops that don't sell food never see any of it. Build reusable option groups — sizes, toppings, with / without extras — and attach several to one product at once from its new "Options" tab. Each group is single- or multi-select with min / max counts (so a shopper can pick more than one in a single go, the way the colour-variation multi-add works); each option carries its own price, with support for a free allowance ("first 3 toppings free"), "always charged" premium options, and prices that vary by size or per product. Shoppers choose on the product page with a live running total and sold-out options flagged immediately; the selection carries through to the cart, checkout and the saved order.
- Catalogue & menu exports for eFood, Wolt and Etsy. Three new templates on the Marketplace Feeds page export your catalogue in each platform's own JSON shape — eFood products, Wolt menu items, and Etsy listings (with per-shop who-made / when-made / taxonomy / shipping-profile defaults you set once) — alongside the existing Skroutz, Shopflix and generic CSV / XML feeds.
- Order-taking from eFood, Wolt, Etsy and Amazon. Four new connectors in the Marketplace Order Importer pull orders straight into WooCommerce — Etsy (Shop Receipts) and Amazon (Selling Partner API) by polling, eFood and Wolt by signed webhook. Every marketplace has its own on / off switch, and the 5-minute background poll only runs while at least one polling marketplace is actually connected, so it never burdens a store that isn't using it.
- Fixes & polish. The account "Communication" page no longer rewrites every main-menu label to "Communication"; the My Account login / register page no longer shows the social sign-in buttons twice (they render once, inside each form); the Brand Story block's opening heading reads "About the Brand"; the redundant "Products" sub-heading was removed from the brand and category archive layouts; and the Navigator's category highlights (the middle column shown when you select a category) now order the Brands and Needs blocks to match your Navigator → Group order, instead of always listing Needs first.
8.1 - 2026-06-20
Events (Beta) & Competitions modules, a richer storefront block library, and storefront polish.
- Events (Beta). A full event-management module: create events (venue, dates, RSVP deadline, fee, Google Maps link), import participants from XLSX/CSV, one-click tokenised RSVP confirm/decline, parametric newsletter invitations (built + dry-run gated, never auto-sent), front-end self-registration via the new
aieo/event-registration block + [aieo_event_register] shortcode, and an attendance stats panel with XLSX export.
- Competitions. A competitions / giveaway module alongside Events.
- New storefront blocks. AIEO Product Slider — a recommendations-styled horizontal slider, filterable by category / tag / specific products; AIEO Category Footer Hero — a product category's SEO footer text beside its image with the hero divider line; AIEO Trust Badges — a configurable shipping / payment / returns / quality strip.
- "Feature heading" option. The Brand Slider, Google Reviews and Latest Posts Overlay blocks can render their heading in the big thin-uppercase + underline style of the product-page rails.
- Latest Posts Overlay. Optional section heading + a new "glass" card style (tall portrait cards with a frosted-glass info bar).
- Blog category archives. Redesigned (sub)category header — featured latest-post hero, subcategories dropdown, and category lead.
- Storefront fixes. Evened the QUICK VIEW / buy-button spacing between variable and simple product cards and tightened the variation swatches; the side-cart "You might like" sidebar no longer renders as an empty pane when there are no recommendations; reworded the customer-facing Greek recommendation rail titles.
8.0 "Fable / Mythos 5" - 2026-06-14
Refactored with Anthropic's Fable / Mythos 5. Marketplace-feed URLs refined, plus a proper attribute-driven product-colour pipeline for SEO and feeds.
- Absolute marketplace-feed links. Products with an SEO canonical were being exported with a relative
<g:link> (no domain), so Google / Skroutz silently dropped them. The catalogue build now absolutises the canonical into the core-vitals product URL, with a defensive absolutise at feed output (the sitemap and the on-page canonical tag were already correct).
- Product colour from your attributes. A new "AIEO colour context" flag (Products → Attributes, with a one-click bulk action) marks which swatch attributes represent a colour; the catalogue build then reads the term NAME (e.g. "French Caramel") into the product colour used by the JSON-LD schema and the marketplace feeds — real per-variant values, not slugs. Replaces the old title-guess heuristic and completes the 7.4 colour follow-up (parents stay clean: Google carries colour on each variant +
variesBy:color).
7.4 - 2026-06-12
Merchant-listing & Local SEO schema completeness — clear Google Search Console's "missing field" warnings across Product and LocalBusiness, plus a clean Channel view for attribution. Requires WordPress 7.0+.
- Product
color on every product. The Product / ProductGroup schema now always emits color, read from the core vitals colour — real per-variant values on variable products, present-but-empty on simple products until you map a colour-denoting attribute (a guided follow-up; see documentation/SEO_SCHEMA_NEXT_OPTIMIZATIONS.md).
- Shipping & returns on every Offer. New SEO → Schema settings emit
OfferShippingDetails + MerchantReturnPolicy on each product Offer — return window + free-returns flag, shipping rate, handling/transit days, country — off until you enter your real terms (inaccurate values trigger Merchant Center issues).
productGroupID length handling. Variable products with a long slug-style SKU now stay within Google's "invalid string length" limit — the group id falls back to the stable product ID (≤50 chars).
- LocalBusiness
priceRange + image per store. The Locations & Reviews editor gains a Google price-tier selector (€…€€€€) and a media-gallery image picker; both flow into each store's LocalBusiness node, clearing the "missing image / priceRange" warnings.
- UTM Explorer — Channel dimension. A new top-level "Channel" breakdown (the resolved marketing channel) with consolidated, friendly labels — Google – Paid cleanly separated from Organic Search, plus Facebook – Paid, Direct, Skroutz, etc. The Source view also splits paid Google out of the organic
google bucket.
- Attribution accuracy. Order analytics now bucket by the site's configured timezone (matching WooCommerce Analytics day-for-day), and self-referral ("internal") folds into "(direct)".
7.3 - 2026-06-10
In-house SEO engine — a faster, Greek-aware replacement for AIOSEO/Yoast: rich commerce + local-business schema, image SEO, redirects and a static sitemap, all served from materialized data at ~0 ms. It runs behind your current SEO plugin until you flip the switch, so installing 7.3 changes nothing until you cut over.
- AIEO SEO module (new). A complete on-page engine — title / meta description / canonical / robots / Open Graph / Twitter + JSON-LD — built once into a head cache and served by the thin runtime in a single cached read (no per-request assembly, no Vue admin, no telemetry; ~0 ms added TTFB vs the 100–300 ms a competitor adds). Augment-only behind an existing SEO plugin until enabled.
- Canonical-category control. Pin one canonical category per product (AIOSEO's "primary category"); a single resolver drives the permalink, the
<link rel=canonical> and the sitemap entry together. Editor "SEO" metabox + a chunked bulk "set for all products" tool.
- Rich commerce schema (all vitals-driven, never live Woo queries). Variable products emit
ProductGroup + hasVariant/variesBy (Google no longer collapses them to a single collapsed item); sale prices carry a UnitPriceSpecification strikethrough; plus gtin, brand, and operator-configured MerchantReturnPolicy / OfferShippingDetails. Category, brand and tag archives emit CollectionPage + a product ItemList + BreadcrumbList + inLanguage.
- Local SEO (multi-store). A
LocalBusiness node per physical store (from your Locations & Reviews / Google locations) — opening hours, geo, Maps/Rate links — under the Organization graph, with one location pinned as HQ. New Store Locator, Opening Hours and Business Info blocks (+ shortcodes), and an optional store-page post type whose URL base + label you choose (nothing is hardcoded). Store pages get their own sitemap entries.
- Image SEO. Auto-fills EMPTY product featured-image alt text from the product title/template (your set alts are preserved) and adds one
<image:image> per product to the sitemap for Google Images.
- Redirects + automatic slug monitor. A full redirects engine: rename a product/post and the old URL keeps working (auto 301), a unique-404 list with one-click "Create redirect", served at the nginx edge with a PHP fallback for portability.
- Static, outage-proof sitemap. Cron-built to static
.xml shards (≤2000 URLs each + an index), served as files — it keeps serving even if the plugin is deactivated.
- SEO score, health dashboard & AI Assist. A live 0–100 score + checklist in the editor, a demand-ranked "SEO Health" dashboard, and one-click Claude AI Assist (generate/improve title, meta description, summary, keyphrases) — Greek-native.
- AIOSEO → AIEO migration + pre-cutover verify. A read-only importer copies your entire AIOSEO configuration (per-object meta, global settings, image-alt format, redirects) with a mapping report — and STRIPS deprecated FAQPage/HowTo schema. A one-click head-parity verify compares the head AIEO would emit to your live head over a sample (title/canonical/robots) before you enable the engine and deactivate AIOSEO.
- EU Omnibus. A 30-day-lowest-price history feeding the compliant reference price.
- Multilingual. Per-language head + hreflang for WPML/Polylang; a TranslatePress-aware sitemap.
- Core vitals carry the canonical. Each product's stored URL in the core vitals table is now its SEO canonical (where one exists), so feeds and on-page agree; the field is bounded (300 chars) so an over-long canonical is safely truncated and the catalogue build stays unaffected.
- Editor blocks discoverable again. All AIEO blocks now appear in the inserter regardless of a theme's curated block palette, and every block title is prefixed "AIEO" so they're searchable; product-context blocks stay scoped to product templates.
- Refinements & runtime. Retired a legacy product-labels stylesheet that was no longer needed (clearing a 404/MIME response). The thin front-end runtime plugin moves to its own 1.0 version and now also serves the SEO head, sitemap and redirects when the core plugin is trimmed from a request.
7.2 - 2026-06-09
TikTok conversions, consent carried on every event, runtime-owned measurement, in-request event delivery — plus the searchable ROI Wizard & new UTM Explorer with period comparison
- TikTok added to Pixels & Conversions. Browser TikTok Pixel + server-side Events API (deduplicated, ttclid recovered, consent-gated) — TikTok joins Meta and Google as a fully-owned platform.
- Consent on every event. Region-aware Consent Mode v2 defaults plus per-event consent on the server senders (GA4 MP, Google Ads, Meta CAPI Data Processing Options), so a declined category down-scopes the conversion at the ad platform too, not just the browser.
- Runtime owns measurement. With the runtime active it serves all three browser pixels and the three server senders itself (even when core is trimmed); core stays fully standalone.
- Event delivery rebuilt. Server conversions flush the page first (fastcgi_finish_request) and send in-request instead of via Action Scheduler — zero checkout latency, cron-independent. A "Fire-and-forget" toggle (on by default) frees the worker instantly; turn it off to log each reply.
- Order origin in staff e-mails. New-order notifications show the marketplace or the site channel/campaign, from the canonical order-facts source.
- Ad-connector setup links. Direct links to where each Google / Meta / TikTok credential is found.
- UTM Explorer (new). A cascading drill-down across the five campaign tags — Source → Medium → Campaign → Term → Content — each a searchable multi-select that narrows the next to what actually co-occurred. It lives on the ROI Wizard page and is findable from the admin command palette (search "utm"). The table splits the current selection down by the next level, with orders, revenue and average order value.
- Searchable multi-select across the whole cockpit. Every selector in the ROI Wizard and UTM Explorer — the Type, the exact detected value, the five UTM levels and the ad-spend ledger value — now uses the same fast searchable picker as product selection (search, tick several, Done), so choosing from hundreds of creatives or campaigns takes seconds. Type accepts several types at once and stacks one results table per type; Exact spans the union of the chosen dimensions' values.
- Reco lift per channel. A new ROI type showing the recommendation engine's incremental orders and € over and above each traffic channel — of the orders Google / Meta / organic brought, what share the recommendations assisted and what they added.
- Period comparison (both reports). Compare any result against the previous period or the same period last year, with a green / red Δ% inline on every metric. Off by default.
- Report polish. UTM consolidated onto the ROI Wizard page (ROI → UTM → ledger); From / To dates lead each row; top-aligned controls so selecting a value no longer nudges them; the Ad-spend connectors moved into a renamed "Tools & Settings" group; the default range is the last 30 days.
7.1 - 2026-06-08
First-party measurement & consent (server-side Facebook Pixel/CAPI + GA4, checkout active/idle timing, a lightweight Consent/GDPR cookie banner) — plus the new ROI Wizard & ad-spend connectors (Google · Meta · TikTok), one canonical order revenue/channel, Custom Tabs and drag-and-drop Product Tab Ordering
- Pixels & Conversions (server-side measurement). AIEO can now own the Facebook (Meta) Pixel and Google Analytics 4 end to end — a thin browser pixel and server-side Conversions API / GA4 Measurement Protocol, deduplicated on a shared event id, sent after the order is saved (zero checkout latency). Each platform is selectable (AIEO owns it, or stay out of the way for a tool you already run), with master off-switches so you can keep PixelYourSite. Facebook credentials can be read from PixelYourSite if present.
- Advertiser-grade match quality (PixelYourSite-Pro parity). The data your ad partners receive is now on par with a premium pixel plugin: Facebook browser Advanced Matching (the shopper's identifiers attached to the browser pixel, hashed client-side, consent-gated) on top of the existing full server-side set; complete GA4 user-data (name + address, not just email/phone, Unicode-correct for Greek); a built-in Google tag loader (load
gtag.js — or a Google Tag Manager container — directly from AIEO, wired to Consent Mode v2, so you don't need Site Kit); and Google Ads conversions with Enhanced Conversions, both in the browser (gtag user-data) and server-side via the Google Ads API (keyed on the captured gclid, resilient to ad-blockers). All of it rides the first-party consent gate.
- Consent / GDPR — first-party CMP. A lightweight, first-party cookie-consent banner (no external CMP, no IAB TCF bloat) on its own page: a rich-text message, three actions (Accept all / Decline / Customize) with a per-category preferences panel (necessary / functional / analytics / marketing), per-button colour theming (background / text / border + hover, with an equal-prominence guard so Decline can't be hidden), two layouts (bottom bar or a centre glass pop-up), a floating “Cookie settings” button so visitors can change or withdraw consent, and a policy-version field that re-asks everyone after a policy change. It drives Google Consent Mode v2 and gates AIEO analytics plus the Facebook / GA4 senders. A built-in cookie scanner classifies the cookies and third-party services your storefront sets (Google Fonts, GA4, the Meta pixel, YouTube, …) against a curated database — populated automatically as visitors browse (no server crawl, names only, never values) — with an inventory you can re-classify.
- Checkout timing. Active vs idle time is now measured for each successful checkout and aggregated per product, so offer timing (exit-intent, etc.) can be set from real deliberation data rather than a static delay; coupon-completed orders are tagged and excludable from the baseline.
- Custom Tabs (Product Display). Up to five extra product tabs you can switch on and rename at will (e.g. "Application", "Ingredients") — each holds its own rich text per product and the tab simply disappears when a product has no content for it. A one-click migration assistant imports existing content from the legacy Pods "usage" / "specification" fields (auto-enabling and labelling the first two tabs), and the legacy theme tabs are removed automatically so nothing shows twice.
- Product Tab Ordering. A new drag-and-drop card on the Product Display dashboard (between the info-column layout and the recommendations order) sets the order of the WooCommerce tabs (Description / Additional information / Reviews) together with your Custom Tabs, in one sequence; tabs a product doesn't have are skipped while the order holds for the rest, on both block (FSE) and classic themes.
- ROI Wizard — one cockpit for "what actually drove the sale". A new Attribution → ROI Wizard: pick a type (⭐ Recommendation engine, Offer, Channel, Campaign, Creative), the exact detected value, and a period — and see orders, revenue, cost, net, ROAS and ROI %. AIEO's own contribution is front and centre: recommendation-assisted sales and offer effectiveness (free shipping, gifts, discounts) sit next to marketing channels and campaigns. Revenue is the order AIEO computes; offers carry their real cost automatically (free-shipping uses the courier rate already computed in Fulfillment), and channels/campaigns use the ad spend you enter or sync.
- Ad-spend ledger + bulk CSV. A per-period, per-dimension ad-spend ledger backs channel / campaign / creative ROI — enter spend inline, or export a CSV, fill a whole quarter in a spreadsheet, and re-import. Manual entry, CSV and the connectors all land in one place.
- Ad-spend connectors — Google Ads, Meta, TikTok. Connect each platform once through a guided credential wizard (with exactly what to ask your ad agency for); AIEO pulls campaign spend nightly into the ledger so ROI becomes automatic — one cockpit for spend and your own recommendation / offer / channel attribution. Credentials are stored encrypted; the pull is read-only.
- One canonical order revenue + channel. A single source of truth for each order's revenue and marketing channel, reading from the order AIEO computes, with a documented map of where every order fact lives (including why the WooCommerce total and the ERP invoice total are intentionally different). The offer-effectiveness report now reads the canonical channel, so per-channel offer ROI now attributes orders correctly instead of leaving them "unattributed".
- Accurate engagement & attribution. The engagement score is now one canonical formula everywhere; re-delivered tracking beacons now count each add-to-cart total once; the Attribution dashboard's channel back-fill moved off the page render to an hourly background job, and its channel cards use one consistent 7-day window.
- Storefront & block editor. Carousels gained an optional "Recos carousel" slider style (pink scroll-progress bar) selectable per block; the Google Reviews block gained a manual swipe-scroll mode; and a WordPress-7 block-editor registration mismatch on AIEO blocks ("Invalid parameter(s): attributes") was resolved by registering the shared responsive / section-header attributes server-side.
7.0 - 2026-06-05
Product-page layout builder (block + classic themes), a reusable product/variation picker, and a master Button Styles control — plus side-cart mobile-bar styling (glass, per-icon, bubble), padding/min-max/glass for the master buttons, wishlist & brand in the layout builder, and sticky admin navigation
- Side-cart mobile bottom bar. Theme-independent colours (bar background + height, icon, cart-count number + circle), a glass effect (transparent + backdrop blur), per-option "selected" colours for Navigator / Search / AI Chat / Cart, an optional cart-only floating bubble (like the desktop cart), and refined alignment for the lone-cart badge. The whole side-cart surface also moved to a shared class so the runtime can render it without the admin plugin.
- Product Needs — Pills. New tag-style "pills" display alongside the list, with full pill styling (size, radius, padding, gap, colours, border).
- Master Button Styles — padding, sizing, glass. Per-group Top/Right/Bottom/Left text padding, min/max width + height, an opt-in glass effect, and full Secondary hover (border + hover background / text / border).
- Layout builder — Wishlist + Brand. "Add to Wishlist" is now placeable (Beside image / Beside the product title / Under image), and Brand Display gained the "Beside the product title" option; the builder wins over the per-module Brand position.
- Admin polish. Refined the toolbar icon layout; reordered the AI Optimizer submenu (Data Prep → e-shop Manager → AI Chat → Interactivity (IAPI) → Rec Cache) and removed the Session Schema Migrator from the menu; the top bar + e-shop Manager sub-tab navigation are now sticky.
- Product-page layout builder. One drag-and-drop "Display Order" list (Storefront Display → Single Product Page) now sets the vertical order of the whole product info column — the core elements (title, rating, short description, sale / free-shipping messages, price, add-to-cart) and the info modules (meta, categories, brand, payment logos, trust badges, waitlist, gifts, complementary, product needs, role-pricing login) — with a per-module "Beside image / Under image" choice. The same order is applied on both block (FSE) themes and classic themes (Botiga / FemmeFatale), so the page looks the same either way. Core blocks that ignore styling and the Brand Display placement now follow the list too.
- Categories line restored. The clickable "ΚΑΤΗΓΟΡΙΕΣ" comma-list is back as its own positionable module, styled to match the SKU/Barcode rows; the role-pricing login message is positionable too; and Product Categories now sits next to Product Meta in the menu.
- Reusable product / variation picker. A modal browser — pick simple products, whole variable products, or specific variations — replaces the free-text ID/SKU boxes on Product discounts, Free gifts and Free shipping (included and excluded lists), the Product Exchanger and the marketplace feed exporter. Existing selections migrate automatically.
- Master Button Styles (Tools). One place sets the default background, text, border and radius (plus hover) for every AIEO storefront button, with separate Primary, Secondary and Archive masters; per-button colour pickers (Waitlist, Complementary, Sticky Add-to-Cart, Side-Cart) inherit the master and override only when set. The side-cart, save/share-cart, coupon-apply and multi-select buttons now follow the master, and the admin colour-picker swatches now render reliably.
- Admin discoverability. The Ctrl / ⌘-K navigator indexes the layout card and the Saved & Abandoned Carts report; the AI Insights chat gained an abandoned-carts playbook and feature-location pointers.
- Auto-restock. The e-shop's own sales (a distinct ERP invoice type) are excluded from physical-store demand so restocks stay accurate; out-of-stock cancellations now surface in the Stock Recovery Unsuccessful-Restocks KPI.
For brevity, only recent releases are shown here. The complete version history (back to 1.0) is bundled with the plugin in changelog.txt.