Description
One plugin instead of dozens. 554 tools, and they agree with each other.
Rooster One does the work that would otherwise take dozens of separate plugins, and it does it from one place, on one set of numbers.
Dozens of plugins means dozens of different vendors, dozens of renewal dates to keep track of, dozens of update cycles that have to keep working alongside each other, and a different support desk to write to depending on which part has gone wrong. One plugin means one licence, one update, one place to ask, and one thing for WordPress to load on every request instead of dozens.
What is actually in it: a full SEO engine that replaces Yoast or AIOSEO. Product recommendations built from your real sales. Role, wholesale and tiered pricing. Meta, Google Ads, GA4 and TikTok measurement, sent server-side so an ad blocker cannot silence it. Sixteen couriers with vouchers, labels, tracking and daily closings. Marketplace feeds and order import for Skroutz, Shopflix, eMAG, Etsy, Amazon and more. Side cart, wishlist, back-in-stock waitlist, swatches, trust badges. Popups and scheduled announcements. Abandoned-cart recovery, email and web push campaigns, audiences. Surveys, competitions and events. Invoices, packing slips and credit notes. A GDPR consent banner with a cookie scanner. The EU withdrawal button that Directive 2023/2673 now requires. And an AI assistant that answers from your own catalogue rather than making things up.
That is 188 pages and the 554 tools inside them, and there is a written description of what every one of them is for.
Why one plugin rather than dozens
Because separate plugins cannot see what the others know, so they disagree, and each one works the same thing out again while your customer waits.
Rooster One measures your whole business on a schedule instead: every product, page, customer, order and session, written into flat tables. Which products sell and which never do, which pages are read, who bought and who nearly did. The SEO engine, the recommendations, the audiences, the ad ROI report and the AI assistant then all read those same tables. That is why they agree, and why the plugin gets faster to use as you switch more of it on: the heavy work already happened, before the request arrived. The trade-off is timing and we would rather say so plainly. A figure is only as new as its last run.
And it is one plugin to load, not dozens
This part has nothing to do with how well any plugin is written. WordPress loads every active plugin on every request, before it knows whether that request needs it: a file to read from disk, hooks to register, options to fetch, a translation catalogue to load. That toll is paid on the home page, on every admin screen and on every REST call, by every plugin, including the ones that will do nothing at all on that particular request. A site carrying a hundred of them pays it a hundred times before a single line of useful work happens.
Rooster One is one plugin, and the parts you have not switched on register nothing. On Pro, the storefront is served by a separate lightweight runtime rather than the admin half, so your customer’s page load carries the code that draws the page and not the code that runs the shop.
Everything is off by default. It installs beside your current SEO plugin, pixel manager and consent tool and changes nothing until you switch a piece on.
Rooster One runs on your own server. Everything it ever sends to an outside service, and what triggers it, is listed under «What does Rooster One send to an outside service, and when?» in the FAQ below.
The free version is a complete product, not a demo: 754 of the 1,268 screens, tools and actions are in it. Pro adds the operational half and the separate front-end runtime plugin.
Who builds it
Rooster One is built by Oxford Metadata Ltd, whose organisation is approved under Anthropic’s Cyber Verification Program for dual-use security work such as penetration testing and vulnerability research. That is the same discipline the plugin’s own defensive features come out of: the bot filtering, the form captcha, the consent and proof-of-consent log, and the login hardening. The AI features run on Anthropic Claude for chat and reasoning and Voyage AI for embeddings.
It reads your site for what it is
- Shop — sales and add-to-carts are the measure.
- Catalogue — products published but not sold; engagement is the measure.
- Content — no WooCommerce; visits, engagement and forms are the measure.
Auto-detected, overridable in one click. Scoring, cornerstones and applicable signals all follow from it.
You can find all of it
Ctrl+K reaches 742 places: 188 pages and the 554 tools inside them, each one openable directly. All Features lists every one, with pinnable favourites, and prints the figure for your own install. Every page carries a written description of what you can do there, and that text feeds the search.
What gets measured
Computed on a schedule, stored flat. Everything below reads these.
- Product vitals — velocity, out-of-stock history, price history, basket role, returns, and a 0–100 demand score.
- Content vitals — reach, engagement, freshness and a content-demand score for every post, page and custom type.
- Customer vitals — an omnichannel profile: purchases, affinities, lifecycle stage, survey answers, return risk.
- Session and attribution rollups — engagement joined to conversion on one session id, with landing page, campaign and five UTMs.
- Effective prices — every price rule resolved ahead of time into one row per product per audience.
The features
AI chat & semantic search
- Chat widget on Anthropic Claude, grounded in your catalogue — only real, in-stock items with exact links.
- Semantic search on Voyage AI embeddings across products, posts, pages and terms.
- A knowledge base you control, with identity guardrails so it cannot mis-describe you.
- Chat analytics — what was asked, how it was rated, which questions found nothing, which chats ended in an order.
- Related content on articles, guides, listings and products, from the same index. Added automatically to the content types you choose, or placed by hand with the AIEO Related content block or the
[aieo_semantic_related]shortcode; either can be narrowed to one kind of content, so a listing recommends listings rather than products.
SEO engine
A drop-in replacement for AIOSEO/Yoast. Stays gated behind your current SEO plugin until you switch over; read-only importer and head-parity check included.
- Head, canonical, robots, Open Graph, Twitter and JSON-LD, assembled once into a cache.
- Commerce schema from the same tables —
ProductGroup+hasVariant, per-variant colour,gtin, brand, shipping and return policy. - AI titles and descriptions written against the live SERP. Drafts await approval, or run on Autopilot.
- Opportunity grid — traffic × conversion: hidden gem, intent mismatch, defend, prune.
- Rank tracking (optional DataForSEO, under your spend cap).
- Redirects and 404s, slug monitor, static sitemap, robots.txt, alt-text filling, EU Omnibus history, hreflang, Local SEO.
Selling more
- Recommendations — up-sell, cross-sell and same-need alternatives from your real sales patterns.
- Rails you order by drag-and-drop, block and classic themes, with custom slots.
- Pricing engine — role and wholesale prices, brand discounts, loyalty tiers, points, free gifts. Stacked, resolved ahead of time.
- Merchandising — swatches, labels, trust badges, payment logos, galleries, layout builder, custom tabs, one master button style.
- Lift measurement — the incremental orders and revenue the engine adds.
Cart, checkout, recovery
- Side cart, sticky add-to-cart, wishlist, back-in-stock waitlist.
- Saved and abandoned carts — share and resume, cookieless restore that survives CDN caching.
- Checkout tuning — distraction-free checkout with A/B assignment, minimum order, and business-invoice fields.
- Full block and classic parity.
Reaching customers
- Audiences — top, lapsed, lookalike, abandoned-cart, reactivation, competition entrants. Recomputed nightly.
- Automated campaigns — abandoned cart, win-back, birthday, back in stock, post-purchase. Email and web push, quiet hours honoured.
- Social posts from your catalogue, competitions on any Gravity Form, surveys scored into NPS and voice-of-customer.
Knowing what worked
- Server-side measurement you own — Meta CAPI, GA4, Google Ads Enhanced Conversions, TikTok Events API. Deduplicated, sent after the order is saved, with a daily safety net.
- Consent / GDPR CMP — first-party banner, Consent Mode v2, proof-of-consent log, cookie scanner.
- ROI Wizard — orders, revenue, cost, net, ROAS and ROI by engine, offer, channel, campaign or creative.
- Ad spend typed, by CSV, or nightly from Google Ads / Meta / TikTok. Conversion goals for non-shops.
- Insights Chat — ask your shop questions in wp-admin. Customers pseudonymised, no data export.
Running the shop
- Marketplace order import — Skroutz, Shopflix, eMAG, eFood, Wolt, Etsy, Amazon native WooCommerce orders. The catalogue importer runs it in reverse.
- Streaming feeds — ready-made templates for Amazon Inventory Loader, BestPrice, eBay File Exchange, eFood, EMAG, Etsy, Facebook Product Catalog, Facebook Marketplace, Google Shopping, Google Local, Google AdWords Custom Remarketing, Shopflix, Skroutz, Tolstoy and Wolt, plus Generic CSV and a fully custom builder.
- Sixteen couriers — vouchers, labels, COD, tracking, bulk printing, daily closings. ACS, BOX NOW, Courier Center, ELTA, Geniki Taxydromiki, Speedex, DHL Express, FedEx, UPS, USPS, Royal Mail, DHL Paket, Colissimo, BRT, Correos Express, Sendcloud — plus a manual carrier for one with no API.
- Order documents — invoices, packing slips, proformas, credit notes. Singly or merged across a date range.
- Delivery economics — real break-even free shipping from your carrier costs, per-carrier × zone P&L.
- Operational intelligence — stock recovery, missing hot sellers, out-of-stock predictor, branch stock, barcode scanning, optional ERP.
The withdrawal button — Directive (EU) 2023/2673
Every EU distance seller must now give consumers a prominent, permanently available button to declare withdrawal electronically. No transition period.
- A real button, for the whole statutory period.
- 14 calendar days from receipt — computed from delivery, not the order date.
- Guests included. An account is offered afterwards, never required.
- No reason, no prior contact, partial withdrawal by item and quantity.
- Acknowledgement on a durable medium with content, date and time.
- Cancellation stays distinct from withdrawal — one you may refuse, the other you may not.
- Return vouchers checked by an operator before the customer sees them. Ships disabled.
Content, blocks and regional selling
- Events with RSVP and self-registration, FAQ accordions, Store Pages, Food & Beverages option groups, Google reviews, Media Cleanup that quarantines before it deletes.
- Dozens of server-rendered blocks — store, product, recommendation, swatch, brand, category, blog, competition and event, plus Custom Slot regions.
- Regional checkout — COD by country or courier, «from X,XX €» labels before a postcode is entered, and per-country payment and shipping rules.
Speed and resilience
- Pre-computed into flat tables; the storefront reads single cached rows.
- A thin front-end runtime plugin (Pro) serves the storefront even when the admin plugin is trimmed from the request.
- Self-healing jobs re-arm after updates, stay dormant until used, and collapse runaway third-party tasks.
- Tables are never dropped on update, activation or deactivation — only on explicit uninstall.
Free and Pro
GPLv3. The free version is a complete, working product — not a demo with the useful parts removed.
GPLv3 throughout. There are three separate things here, and it is worth being precise about which is which, because two of them are called «Pro».
1. This plugin, free. A complete, working product, not a demo with the useful parts removed: AI chat and semantic search, the whole SEO engine, pricing and merchandising, storefront features, measurement and consent, product feeds and marketplace feed export, courier fulfilment across all sixteen carriers, the block library, Ctrl+K — and the complete withdrawal button. That last is a legal obligation for every EU distance seller; charging for it would be a poor thing to do.
2. A Pro subscription (or the 14-day trial), activated by connecting the site to your Rooster One account. No per-feature keys. It unlocks the Pro screens whose code is already inside this download:
- Marketplace order import — Skroutz, Shopflix, eMAG, eFood, Wolt, Etsy, Amazon.
- Attribution and ROI — dashboard, ROI Wizard, ad-spend connectors, shipping cost against margin.
- Audiences and campaigns — audience builder, email and web-push flows, social posts, AI-suggested offers.
- Customer intelligence — customer lookup, surveys, cancellations and returns analysis, chat analytics.
- Insights Chat, events and competitions, Action Scheduler cleanup.
3. Two companion plugins, included with a Pro subscription and installed separately. A subscription on its own does not put their code on your server, so these screens ask you to install the plugin rather than pretending to work:
- Rooster One Runtime — serves the storefront, SEO head, sitemap and redirects without loading the admin half. The biggest single speed difference between free and Pro.
- Rooster One Pro — carries six engines this download does not contain: supplier invoice scanning, the accounting and ERP connectors (Entersoft, Galaxy, Soft1, Zoho Books, and Oxygen supplier sync), the catalogue importer for building a product source from a supplier feed, the product exchanger for sharing content between WP sites, the duplicate-product merge engine that auto detects simple products and converts them to variations, and semantic internal linking.
Everything Pro-locked stays visible with an explanation of what it does, and where a screen also needs the Pro plugin it says so before you buy, not after.
Optional integrations
Rooster One runs entirely on your own server. Nothing below is required for the plugin to work — each is an opt-in add-on you enable only if you want that capability, using your own account.
- Rooster AI credits (rooster.systems) — powers the AI chat, AI SEO copy and Insights Chat via Anthropic Claude and Voyage AI embeddings, with no per-provider API keys to manage.
- Recommendations service (eshop-optimizer.com) — graph-database up-sell/cross-sell analysis of your order history.
- DataForSEO — optional keyword rank tracking under a spend cap you set.
- Ad and measurement platforms — Google Ads, GA4, Meta and TikTok, each independently selectable.
- Couriers and marketplaces — your own carrier and marketplace accounts, for vouchers and order import.
- Google Places / Search Console for location data and search performance.
Screenshots































Blocks
This plugin provides 45 blocks.
- AIEO Blog Subcategories (Dropdown) A dropdown of the current blog category's subcategories, styled like the blog-post categories dropdown. Renders nothing when the category has none.
- AIEO Category Footer Hero The category's SEO footer text beside the category image (image left, rich text right) with the hero divider line. Auto-fills from the queried product category.
- AIEO Page Hero Manual hero — top title, left headline, right description and desktop/mobile images. Identical look to the category hero, usable on any page.
- AIEO Blog Hero (Latest Post) Featured latest-post hero with the category-hero look: a top title, the newest post's title as the headline, its excerpt as the description and its featured image — all clickable. On a blog category/tag archive it features that term's latest post.
- AIEO Category Lead The current category's description, falling back to its name when it has none. For blog category archive headers.
- AIEO Category Chips A row of clickable category chips for the current archive — the term's child categories.
- AIEO Category Hero The queried category's hero — image, title and description — auto-filled from the term, for product or blog category archive headers.
- AIEO Opening Hours A store location's opening hours. Auto-resolves on a store page, or set a location slug.
- AIEO Store Info (address, phone, hours) Structured store contact info — address, clickable phone, and per-day hours. Reads from post meta + the linked Google location row.
- AIEO Google Reviews Live Google reviews pulled from the local cache. Single location, mixed feed, or cards grid.
- AIEO Store Map A single store's location map (keyless Google Maps embed) plus a directions link. Auto-resolves on a store page, or set a location slug.
- AIEO Store Locator Grid or list of all your store locations — address, phone, opening hours and Google Maps / review links.
- AIEO Business Info A store location's address, phone, opening hours and Google links — from your Locations & Reviews data.
- AIEO Store Hero Shop-page header hero in the category-hero style (centred image, title, horizontal line). Listing title, heading and description come from the bound location. Auto-resolves on a store page, or set a location slug.
- AIEO Loyalty Connection Bonus-card loyalty — connect/identify, then show the most recent points.
- AIEO Brand Rails Stacked curated brand rails (Featured / New / Your Favourites / Top). Each rail has its own count and slides-per-view, configurable in the inspector.
- AIEO Product Slider A horizontal product slider with the SAME look as the product-page recommendations (thin uppercase title + line, then cards). Set the title manually and pick products by category, tag and/or specific product IDs.
- AIEO Product Swatches Variation swatches for a product. Inside a block product loop it picks up the current product automatically; anywhere else, set a product ID. Renders the same cached swatch HTML every other placement uses.
- AIEO Post Related Needs Need-tag chips for the current blog post. Reads wp_aieo_dmm_term_relations for pa_need → post edges. Each chip links to the need archive.
- Event Registration A self-registration form for an event — guests sign up by email and are taken to their RSVP page. Auto-binds to the event it's placed on, or pick a specific event.
- AIEO Latest Posts Overlay Latest blog posts with image overlay + category badge. Mobile: horizontal slider with bullet nav. Desktop: grid.
- AIEO Product Variations Gallery Variation-aware product gallery: when a shopper selects a variation, the main product image and its gallery swap in place to that variation's own images. Reads each variation's existing image set, so there is no data migration.
- AIEO Custom Slots Region Placeholder block that, at render time, enumerates every enabled slot from the Custom Slots admin store and emits each as a sibling div. Designed to sit inside the .ff-recommendations-cluster flex container so each slot participates in the Recommendations Ordering CSS (`order:` / `display:none`) alongside the built-in aieo/recos rails. This block emits NO wrapper of its own — slot divs are direct flex children of the parent group.
- AIEO Related content Related articles, guides and products, chosen by the semantic engine.
- Competition Renders a competition — hero image, title, short description, the entry form and share buttons. Auto-binds to the competition page it's placed on, or pick a specific competition.
- AIEO Lowest Price Message EU Omnibus: on on-sale products, shows the operator-configured message with the lowest price before the reduction. Auto-hides when the product is not on sale.
- AIEO Professional Signup Professional / student registration via Gravity Forms (renders [membership_gf]).
- AIEO Post Related Product Categories Dropdown of related product categories for the current blog post. Reads wp_aieo_dmm_term_relations for product_cat → post edges.
- AIEO Custom Slot Renders one operator-defined slot (Tolstoy widget OR free-form HTML/code) from the Custom Slots admin store. Used inside the single-product recommendations cluster so each slot can be drag-positioned alongside the built-in reco rails. Resolve target via slotId.
- AIEO Sale Eligibility Message Conditional badge that appears under the price WHEN the current product is on sale, telling the shopper how they qualify for the sale price (everyone, signed-in only, PRO role, etc.). Auto-hides on non-sale products. Token replacement: {regular_price}, {sale_price}, {savings_amount}, {savings_pct}, {role}.
- AIEO Product Needs Renders the 'This product covers:' Επιθυμίες (needs) list for the current single-product page. Wraps the existing AIEO_DMM_Product_Needs renderer so non-block themes keep their PHP path; on a block-themed PDP this is the canonical entry. Reads from `wp_aieo_dmm_product_needs` and `pa_need` taxonomy.
- AIEO Breadcrumb SEO-consistent breadcrumb. Uses the SAME pinned canonical category as AIEO's canonical URL and JSON-LD BreadcrumbList, so the visible trail never disagrees with what Google reads.
- AIEO Brand Story Renders brand long-form copy (history, ambassadors, importer, footer) on the brand archive page. Reads queried brand term + wp_aieo_dmm_brand_extras. Emits nothing for sections with no copy.
- AIEO Brand A-Z Index Server-rendered A-Z brand directory. Every letter A–Z (plus '#' for non-Latin brands) is always present; empty letters render disabled. Sticky letter bar + per-letter brand grid with product counts. Reads exclusively from wp_aieo_core_brand_vitals.
- AIEO Taxonomy Archive Hero Generic per-term archive hero. Auto-detects queried taxonomy (product_brand / pa_need / product_tag / product_cat) and dispatches to the right data source — brand vitals + extras for product_brand, need_extras for pa_need, term thumbnail + description for product_tag, category extras for product_cat. Filterable via aieo_taxonomy_archive_hero_data for new taxonomies.
- AIEO Brand Archive Hero Per-brand hero for the brand archive (taxonomy-product_brand). Reads queried brand term, joins core_brand_vitals + dmm_brand_extras. Renders hero image, logo overlay, headline, product count, wishlist heart, rating stars.
- AIEO Recommendations Renders one AIEO recommendation surface (same_needs / crosssells / upsells / related / recently_viewed / semantic_related) as the placeholder div the lazy-recommendations.js bundle hydrator picks up on first user interaction. Same emitted markup as the legacy inline `<div id="aieo-X-placeholder">` blocks so the existing JS hydrator works unchanged.
- AIEO Taxonomy Related Articles Renders 'From the Blog' article cards related to the queried term — works for any taxonomy (product_cat, pa_need, product_tag, supplier, custom). Reads bidirectional edges from wp_aieo_dmm_term_relations (the same source brand-related uses for product_brand). On the brand archive itself, prefer aieo/brand-related — this block is for the OTHER taxonomies.
- AIEO Free Shipping (PDP bar) Per-product free-shipping progress bar. Reads threshold + messages + appearance from AIEO_DMM_Free_Shipping (admin: DMM → Free Shipping + COD) and the current cart subtotal from WC()->cart. Self-hides when the operator's `display_product` setting is off, when the threshold is 0, when the product is on the no-free-shipping exclusion list, or when the cart is empty AND the operator chose to suppress the empty-cart message. Updates client-side on every cart change via a tiny REST poll.
- AIEO Brand Slider Lazy-hydrated brand carousel. Modes: top, new_brand, new_product, favourites (per-user affinity), manual. Server-renders the first N cards as a noscript fallback; client hydrates into a vanilla scroll-snap carousel with arrow nav.
- AIEO Popup Panel The split layout for a popup: a content pane you fill with any blocks, and a full-bleed image pane that sits beside it on desktop and moves above it on mobile — with a separate mobile image so a landscape photo never gets cropped to nothing on a phone. Built for the aieo_popup post type, but usable inline on any page.
- AIEO Product Post Meta (SKU + Barcodes) Renders the SKU + per-variation barcode rows for the current product. Wraps AIEO_DMM_Product_Meta — the same module the `[om_ppe_product_meta]` shortcode uses (admin-configurable via DMM settings: show_sku, show_barcode, label customisation). On variable products the barcode row expands to one barcode per variation, hidden behind a `+ more` toggle.
- AIEO Brand Related Cross-link strip for the brand archive: related product categories (chips), related blog articles (3-card row), and 'other brands you love' for logged-in viewers. Reads wp_aieo_dmm_term_relations + customer brand affinity.
- AIEO Taxonomy Archive Footer Per-term editorial / SEO footer copy. Reads the queried taxonomy's *_extras table footer column when present (need_extras.footer_text, brand_extras.footer_text, category_extras.footer_text). Emits nothing when no footer copy exists for the term.
- AIEO Post Related Brands Brand-logo slider for the current blog post. Reads wp_aieo_dmm_term_relations for product_brand → post edges.
Installation
- Install through Plugins Add New and search for «Rooster One», or upload the plugin zip to
wp-content/plugins/. - Activate it. Nothing changes on your site yet — almost everything ships off by default.
- Open Rooster One in the admin menu. The header shows whether your site was read as a shop, a catalogue or a content site; correct it in one click if it is wrong.
- Switch on one capability at a time. Each runs alongside your existing tools until you retire them.
Press Ctrl+K on any admin screen to find anything.
FAQ
-
This is an enormous amount of functionality. Am I supposed to use all of it?
-
No, and nobody does. Everything is off by default. Rooster One installs beside your current SEO plugin, pixel manager and consent tool and changes nothing at all until you switch a piece on. Turning one thing on does not commit you to the next.
The right way in is to pick the single problem that is costing you most right now and switch on only that. Most shops start with recommendations or the AI chat, see what it does for a fortnight, and only then look further. There is no configuration you must complete before anything works.
-
Why is this one plugin rather than twelve?
-
Because it is one idea, not twelve features. Rooster One measures your whole business on a schedule — every product, page, customer, order and session, scored into flat tables — and every feature reads those same tables.
That is why the recommendations, the SEO engine, the audiences, the ad ROI and the AI assistant agree with each other instead of each maintaining a private version of the truth. Twelve plugins cannot do that: they would each need their own copy of your catalogue, their own idea of who your best customers are, and their own cron job to build it.
It is also why the plugin gets faster to use as you switch things on rather than slower. The expensive thinking already happened, on a schedule, off your customer’s request. The second feature you enable reads figures the first one already paid for.
-
How do I find anything in here?
-
Ctrl+K from anywhere in wp-admin reaches every addressable place in the plugin, pages, tabs and individual panels, searchable by what a thing does rather than by what it is called. All Features lists every one with pinnable favourites, and every page carries a written description of what it is for. If you cannot remember where something lives, you are not expected to.
-
Can you help me set it up?
-
Yes. Pro customers get direct support, and there is a support group one click from the top bar in wp-admin for everyone. Beyond support we offer paid set-up and configuration, and further customisation where a shop needs something the plugin does not do out of the box.
Worth saying plainly: the plugin is built for a real shop we run ourselves, so what a working shop needs tends to already be in it, and when it is not, we are the people who can add it. If you would rather hand the configuration to somebody who has done it before, that is a service we sell rather than a favour we occasionally do.
-
We have our own developers. Can they work with it directly?
-
Yes, and this is the case we design for rather than tolerate. The plugin is GPLv3, so there is nothing to license and nothing obfuscated. Your team gets 218 filters and 48 actions with the
aieo_prefix covering the parts most likely to need bending, a REST surface, and nine WP-CLI commands for anything that belongs in a deployment script rather than in a browser.Behaviour is switchable in code as well as in the admin, so a decision your team wants to own can live in your own plugin instead of in our settings table. Where an integration is genuinely missing we would rather add the hook than have you patch the plugin, since a patched copy stops receiving updates. Send us the case.
We are also happy to work alongside an in-house team rather than instead of one: they keep the domain knowledge and the deployment pipeline, we cover the parts of the plugin nobody outside it should have to reverse-engineer.
-
Do I need WooCommerce?
-
No. Rooster One works on content sites and catalogues too, and adapts what it measures: a content site is scored on visits, engagement and form submissions rather than sales. A badge in the header tells you which of the three it has decided you are, so you are never guessing why a number looks the way it does.
-
Is the free version crippled?
-
No. It is a complete product: the AI assistant, the full SEO engine, the whole pricing and merchandising stack, the storefront features, measurement and consent, product feeds and courier fulfilment are all in the free version. Pro adds operational capability, not the basics. The withdrawal button is free as well, because it is a legal obligation for every EU distance seller and charging for it would be a poor thing to do.
-
What does Pro add?
-
The operational half: marketplace order import, attribution and ROI, audiences and automated campaigns, web push, customer intelligence, Insights Chat, and events and competitions. Those screens are already in this download and a subscription switches them on. Pro also includes two companion plugins you install separately — Rooster One Runtime, which serves the storefront without loading the admin half and is the biggest single speed difference between free and Pro, and Rooster One Pro, which carries supplier invoice scanning, the accounting and ERP connectors, the catalogue importer, the product exchanger, the duplicate-product merge engine and semantic internal linking.
-
I started the trial. Why does one screen still say a plugin is missing?
-
Because two different things are called Pro, and only one of them arrives when you connect. The trial and the subscription grant an entitlement, which unlocks the Pro screens whose code is inside this plugin — AI chat, managed AI credits, attribution, audiences and the rest. Six features live in the separate Rooster One Pro plugin: invoice scanning, the accounting and ERP connectors, the catalogue importer, the product exchanger, the merge engine and semantic internal linking. An entitlement cannot switch on code that is not on the server, so those screens tell you to install the plugin, which your subscription includes. Install and activate it and they come alive with no further setup.
-
If my Pro licence lapses, does my storefront change?
-
No, and that is deliberate. Pro gates the screens where you curate and configure, never the code that draws your shop. The semantic related-content section, the recommendation rails and the policies you have already set keep rendering from what was already worked out, on the free plugin, with no Pro plugin loaded at all. What you lose is the ability to change them: the Duplicate products screen, Semantic Internal Linking and the feed-source generator stop opening, and their controls stop answering. We would rather a lapsed licence cost you the settings screen than blank a live section of your website in front of your customers.
-
Do I have to pay for AI to use the plugin?
-
No. The plugin is GPLv3 and a great deal of it — the chat, recommendations, the SEO engine and every storefront and pricing tool — runs without any subscription. Only features that actually call a model consume Rooster AI credits, and the ones that do say so before they run rather than after.
-
Will it slow my site down?
-
The design goal is the opposite. Expensive work is pre-computed on a schedule into flat tables, and the storefront reads single cached rows, so enabling a feature adds a feature rather than a per-request query. On Pro the runtime plugin serves the front end without loading the admin half at all.
-
Will it cope with a large catalogue?
-
That is what the architecture is for. Heavy analysis runs on a schedule into flat pre-computed tables; the storefront reads single cached rows regardless of how many products sit behind them. Background jobs re-arm themselves after updates, stay dormant until a feature is actually used, and will collapse a runaway third-party task rather than queue politely behind it.
-
What can the AI chat actually answer?
-
Questions about your catalogue, grounded in it. It recommends only real, in-stock products and links to them exactly, because it answers from your data rather than from a general model’s memory. You control a knowledge base for the things a catalogue cannot tell it — opening hours, delivery times, returns policy — and identity guardrails stop it describing your business as something it is not.
-
What happens when the chat does not know something?
-
It says so, and then tells you. Chat analytics show what was asked, how answers were rated, which questions found nothing, and which conversations ended in an order. The list of questions that found nothing is usually the most valuable screen in the plugin: it is your customers writing your content backlog for you.
-
Can the chat quote a wrong price?
-
It reads the same prices the storefront does, including role and wholesale pricing, so a logged-in trade customer and a retail visitor are told different and correct numbers. It is not working from a snapshot taken when the model was trained.
-
Where does my data go when the AI features run?
-
Chat runs on Anthropic Claude and semantic search on Voyage AI embeddings. Nothing else leaves your site for those features. Insights Chat, which answers questions about your own shop inside wp-admin, pseudonymises customers and exports no data at all. Every external service the plugin can talk to is listed under «What does Rooster One send to an outside service, and when?» below.
-
Does semantic search replace the WooCommerce search box?
-
It can. Semantic search indexes products, posts, pages and terms as embeddings, so «something for dry hair in winter» finds the right products without those words appearing in any title. It runs alongside the built-in search rather than ripping it out, so you can compare before you commit.
-
How do the recommendations decide what to show?
-
From what your customers actually did, not from tags you maintain by hand. Up-sells, cross-sells and same-need alternatives are derived from real order history and refreshed on a schedule, so a new product earns its place as soon as it starts selling and a discontinued one leaves without you remembering to remove it.
-
Can I control where recommendations appear?
-
Yes. You order the rails by drag and drop, they work on both block and classic themes, and custom slots let you place one anywhere a theme accepts a block. Each rail can be turned off independently, which matters more than it sounds: the commonest cause of a slow product page is four rails nobody asked for.
-
Can I tell whether the recommendations are actually working?
-
Yes, and this is the part most plugins leave out. Lift measurement reports the incremental orders and revenue the engine adds, rather than counting every order that happened to contain a recommended product. The second number is always bigger and always flattering, which is presumably why it is the one usually reported.
-
Can I do wholesale or B2B pricing?
-
Yes. The pricing engine handles role and wholesale prices, brand-level discounts, loyalty tiers, points and free gifts, and it stacks them in a defined order rather than letting the last filter to run win. Prices are resolved ahead of time into the same pre-computed tables everything else reads, so a complicated rule set does not become a slow product page.
-
Do you support variation swatches?
-
Yes, with colour, image and button styles, and they render on archives and product pages from a cache rather than by loading every variation. Alongside them sit labels, trust badges, payment logos, gallery handling, a layout builder, custom tabs, and one master button style so the shop stops looking like four plugins bolted together.
-
How does abandoned-cart recovery work, and do I need an email service?
-
Carts are saved server-side, and the restore is cookieless so it survives CDN caching and a customer moving device. Recovery messages go out through automated campaigns by email or web push, using WordPress’s own mail path or your SMTP plugin. You do not need a third-party marketing service, and quiet hours are honoured so nobody is pushed a cart at three in the morning.
-
What else can the campaigns do?
-
Win-back, birthday, back-in-stock, post-purchase follow-ups and reactivation, all triggered from the same audience data. Audiences themselves — top customers, lapsed, lookalike, abandoned-cart, reactivation, competition entrants — are recomputed nightly, so a campaign aimed at «lapsed» means lapsed today rather than lapsed whenever the segment was last built by hand.
-
How are audiences built?
-
From behaviour the plugin already records, recomputed nightly rather than assembled by hand. The ready-made ones are top customers, lapsed, lookalike, abandoned-cart, reactivation and competition entrants, so «lapsed» means lapsed as of last night rather than lapsed whenever somebody last exported a spreadsheet.
-
Can I define my own audiences?
-
Yes. The audience builder takes rules over what customers bought, browsed, abandoned or responded to, combined the way you would say them out loud: ever purchased this brand, not in the last ninety days, opted in. An audience is a live definition, not a frozen list, so it repopulates itself as people move in and out of it.
-
What can I do with an audience once it exists?
-
Send it a campaign, target an offer at it, exclude it from another campaign, or push it as a segment for advertising. The same definitions feed the ROI reporting, so you can ask what a segment actually returned rather than only how many people are in it.
-
Do I need a separate service for web push?
-
No. Push is served from your own site with its own opt-in gating, and the same quiet-hours rules apply. It is part of the campaign engine rather than a separate product with its own dashboard.
-
Will it conflict with my current SEO plugin?
-
No. The SEO engine self-gates behind AIOSEO, Yoast and Rank Math and stays dormant until you explicitly switch it on. There is a read-only importer and a head-parity check, so you can compare the output before cutting over, and switch back if you do not like what you see.
-
What does the SEO engine do that a general SEO plugin does not?
-
It knows what you sell. Commerce schema is assembled from the same tables the rest of the plugin uses:
ProductGroupwithhasVariant, per-variant colour,gtin, brand, shipping and return policy. Titles and descriptions are written against the live search results page and wait for your approval, or run on Autopilot if you would rather they did not. -
Will I lose rankings if I switch SEO plugins?
-
That is exactly what the head-parity check exists to answer. It compares what your current plugin emits against what Rooster One would emit, page by page, before anything changes. The importer is read-only, so your existing plugin’s data is never altered, and the engine stays gated until you decide.
-
Which SEO problems does it actually find?
-
The opportunity grid plots traffic against conversion and sorts pages into hidden gems, intent mismatches, pages to defend and pages to prune. That is a different question from «what is my score out of a hundred», and a more useful one. Underneath it sit redirects and 404 monitoring, a slug monitor, a static sitemap, robots.txt, alt-text filling, hreflang, Local SEO, and EU Omnibus price history.
-
Do you track keyword rankings?
-
Optionally, through DataForSEO, under a spend cap you set. It is off unless you turn it on and give it your own credentials, because rank tracking is the one part of SEO with a per-query cost and we would rather you decided the size of that bill.
-
Does it work with the block checkout?
-
Yes, with full block and classic parity. That is deliberate and tested rather than assumed: the newer block checkout behaves differently enough that features working in one can silently do nothing in the other. Several bugs we have reported upstream to WooCommerce were exactly that shape.
-
Do I need my own courier accounts?
-
Yes. The plugin holds sixteen carrier integrations and talks to each with your credentials; it is not a reseller and takes no cut of your shipping. Vouchers, labels, cash on delivery, tracking, bulk printing and daily closings are handled in wp-admin, and a manual carrier covers anyone without an API.
-
How do I know what free-shipping threshold to set?
-
Delivery economics computes the real break-even from your actual carrier costs rather than from a round number that felt about right. It also reports profit and loss per carrier and per zone, which usually reveals that one zone has been quietly subsidised by the rest for a long time.
-
Can I print invoices and packing slips?
-
Yes: invoices, packing slips, proformas and credit notes, singly or merged across a date range for a whole day’s dispatch. They are generated from the order rather than from a template you keep in sync by hand.
-
Can I sell on marketplaces from my catalogue?
-
Both directions. Ready-made feed templates cover the major marketplaces and shopping engines, with a custom builder for anything not on the list, and marketplace orders come back as native WooCommerce orders rather than into a separate silo. The catalogue importer runs the same road in reverse when you want to pull a marketplace listing set in.
-
Does the measurement replace GA4 and the Meta pixel?
-
It complements them and makes them survive ad blockers and consent choices. Conversions go server-side to Meta CAPI, GA4, Google Ads Enhanced Conversions and the TikTok Events API, deduplicated against the browser tags you already have, sent after the order is saved so a failed send can never cost you an order, with a daily safety net that re-sends anything that slipped.
-
How does it handle consent?
-
A first-party consent banner with Google Consent Mode v2, a proof-of-consent log so you can show what a visitor agreed to and when, and a cookie scanner that reports what your site actually sets rather than what you believe it sets. Measurement respects the answer rather than working around it.
-
Can I see the return on my ad spend?
-
The ROI Wizard reports orders, revenue, cost, net, ROAS and ROI by engine, offer, channel, campaign or creative. Ad spend can be typed in, uploaded as CSV, or synced nightly from Google Ads, Meta and TikTok. Shops that do not sell can set conversion goals instead and be measured on those.
-
Does it suggest what to advertise?
-
Yes. The composer turns what the shop already knows — your product sets, brands, categories and demand signals — into a complete draft Google Ads campaign, written down in full before anything touches Google’s API. You read the campaign, the ad groups and the actual copy as plain text and decide.
-
Will it spend my ad budget without asking?
-
No, and this is the part we would want you to check rather than take on trust. A plan has three states. Draft exists only on your site. Created means it has been pushed to Google Ads and is sitting there paused, real objects spending nothing. Activated means a human enabled it in Google.
Rooster One records that third step. It never performs it. There is no code path in the plugin that turns a campaign on, which is deliberate: composing an advert and committing your money are different decisions and only one of them should be automatable.
-
What should I write about next?
-
Ask the customers who already told you. Content gaps are distilled from the storefront chat agent’s own conversations: the questions that returned no products, and the answers customers rated badly, weighted by how often they come up. That turns «what do people keep asking that we answer poorly» into a ranked list of things to write, sourced from demand rather than from a keyword tool’s guess.
It is the loop we are most pleased with in the whole plugin: the chat widget’s failures become the SEO team’s brief.
-
In two steps, kept separate on purpose. First it ranks which of your products and posts are worth promoting, using the same demand scores the SEO engine uses, so you are not promoting whatever happened to be published last. Then, for one object you choose, it drafts platform-native copy for Facebook, Instagram, X, LinkedIn or TikTok.
It only ever drafts. Nothing is published, and no social account tokens are touched by the drafting step. Ranking candidates is free; writing the copy is the part that consumes AI credits.
-
What is Insights Chat?
-
Somewhere to ask your shop a question in plain language inside wp-admin, instead of building a report. Customers are pseudonymised and no data is exported. It is the one AI feature aimed at you rather than at your visitors.
-
What does it do about stock?
-
Stock recovery finds sales you lost to out-of-stocks, missing-hot-sellers finds products you should be carrying, and an out-of-stock predictor warns you before the shelf empties. There is branch stock for multi-location retail, barcode scanning, and an optional ERP bridge.
-
What happens to my data if I update or deactivate?
-
Nothing is removed. Tables are never dropped on update, activation or deactivation — only when you explicitly uninstall the plugin. Deactivating to test something is safe.
-
Is it translated?
-
Yes. Admin and storefront are both fully translatable, a complete translation ships with the plugin, and source strings are English and extractable with Poedit.
-
It gives you the mechanism Directive (EU) 2023/2673 requires: a permanent, prominent withdrawal button that works for guests, a separate confirmation step, partial withdrawal on multi-item orders, and an email acknowledgement recording the content, date and time of the declaration. That is the part software can do. Every EU member state transposes the Directive into national law, so check the date that applies in your own market.
The rest is yours: your terms of sale, who pays return postage (Directive 2011/83/EU article 14 leaves that partly to your terms), and actually processing the declarations and refunds you receive. The plugin will not pretend those are done because a button exists. The feature ships disabled for that reason — switch it on when your policy is ready.
-
Is «cancel my order» the same as withdrawal?
-
No, and treating them as the same is the commonest way a compliant-looking implementation fails. Cancelling an unshipped order is a commercial courtesy you grant on your own terms and may refuse once the parcel has left. Withdrawal is a statutory right exercisable for 14 calendar days from receipt, which you cannot refuse and whose window you do not set. Rooster One keeps them as two separate flows.
-
What does Rooster One send to an outside service, and when?
-
Rooster One runs on your own server. It contacts an outside service only in the
cases listed here, and every one of them is either something you switched on or
something you pressed Send on.rooster.systems — our own service. Privacy policy: https://rooster.systems/privacy/
- Feedback. When you press Send in the feedback window, we receive your
message, the category and star rating you chose, the Rooster One screen you
were on, your site address, an install identifier, and the versions of Rooster
One, WordPress, WooCommerce and PHP. Your reply address is included unless you
tick «send anonymously». Nothing is sent if you close the window. - Surveys. When you press Send on the welcome or check-in survey, we receive
your answers as short codes (never the wording you saw, so every language
answers can be counted together), your site address, an install identifier, an
opaque per-person identifier that lets us tell two administrators of the same
shop apart without telling us who either of them is, the Rooster One version,
your admin language, and whether the site reports itself as production or
staging. Your reply address is included only if you leave it in. Closing the
window sends nothing. - Feature usage — Pro and trial only, and off unless you switch it on. A
weekly report of which Rooster One controls have been used on this site: a
control name, a screen and a count. Never an order, a customer, a price, or
anything typed into a field. A free installation schedules no background task
and makes no request. Turn it off under Rooster One and the schedule is
removed on the next admin page load. - AI credits. If you connect a Rooster account, AI chat, AI SEO copy and
Insights Chat are served through rooster.systems, which relays them to
Anthropic (Claude) and Voyage AI. Only the text needed to answer is sent.
No user agent and no browsing history is collected on any of these paths, and
none of them runs on your storefront — they are admin-only, and the first two
happen only when a human presses a button.Other services are listed under Optional integrations above; each is off until
you supply your own account details for it. - Feedback. When you press Send in the feedback window, we receive your
-
How is personal data handled?
-
For WooCommerce stores, product recommendations are produced by our graph-database service at https://eshop-optimizer.com. It is privacy-centric: you can opt out of sharing product and category names and prices with limited impact on quality, and withhold customer IDs for anonymity. Oxford Metadata Ltd maintains privacy provisions approved by both Google and Facebook — see https://eshop-optimizer.com/compliance.
Hashed PII is never stored or logged raw. Customers are pseudonymised in Insights Chat. Consent is recorded with an IP/UA-hashed proof-of-consent audit log.
Reviews
Contributors & Developers
“Rooster One” is open source software. The following people have contributed to this plugin.
Contributors“Rooster One” has been translated into 2 locales. Thank you to the translators for their contributions.
Translate “Rooster One” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
Earlier releases are listed in full in changelog.txt, which ships with the
plugin. Only the most recent are repeated here, to stay inside the length
WordPress.org allows for this section.
11.1.5 – 2026-08-29
- Search, consent and tracking scripts work again on cached pages. One entry in the list Rooster One hands WP Rocket contained a slash, and WP Rocket’s own pattern builder cannot escape one. The pattern failed to compile, and because a failed pattern is not told apart from «no match», every inline exclusion on the site stopped working: Rooster One’s, and every other plugin’s. Consent banner, Consent Mode, attribution, session tracking and the captcha token minter were all being delayed to page load despite being explicitly excluded, and on one shop it stopped the search autocomplete from starting at all for logged-out visitors. Only visitors saw it, never anyone signed in, because caching plugins leave signed-in pages alone.
- Thumbnails under a product image now work on a phone. Tapping a thumbnail moves the main image, and swiping the main image scrolls the strip to keep the current thumbnail in view. Neither did before on a narrow screen, where the strip scrolls sideways and the arrows are hidden, so the active thumbnail was usually off screen. The vertical strip on desktop follows the main image now too.
- The lightbox filmstrip is centred. When the thumbnails fit across the viewer they sit in the middle rather than pinned to the left edge, and when there are too many to fit the strip still scrolls from its true start.
- Variation images no longer depend on which script loaded first. Rooster One and WooCommerce both have a way to change product images when a variation is chosen, and which one won was decided by script load order, which differs between a cached page and a signed-in one. Ownership is now stated outright: with WooCommerce’s variation gallery switched on it swaps the whole gallery, thumbnails included, and Rooster One stands aside; with it off Rooster One swaps the image in place. Rooster One also stops filling in a variation gallery for shops that have the feature switched off, which was quietly turning it on for them.
- Private sign-in address and sign-up fixes. The custom sign-in address no longer leaks through a second path, the «not found» page no longer names WordPress, sign-ups get their own answer instead of being closed by accident, and two-factor enrolment works again.
- SEO redirects: fewer loops and a cleaner table. Loops that travel through WordPress’s own canonical hop are now caught, and the redirect table reconciles itself when the pinned category changes.
11.1.4 – 2026-08-27
- Branch restock worksheets with a real approval flow (Pro). Each branch gets a worksheet over the whole preorder-eligible catalogue with its own 30/60-day sales. Staff type shelf counts and requested quantities, press Submit requests, and the lines file under Supplier Orders as requests: approval, per-supplier order batches with XLSX and one-click email, receiving, and a read-only reconcile against the ERP’s deliveries. Every step is written to an audit trail with the real user behind it. The old board’s export quietly rewrote the sheet as a side effect; submitting is now an explicit, confirmed step that tells you how many lines it filed.
- Branch staff see only their own branch. Four assignable «Branch staff» roles, one per branch: each opens its own worksheet and nobody else’s, including staff at the head branch. The approval queue across all branches stays with the administrator, so the business owner decides who manages requests.
- A fullscreen product lightbox of Rooster One’s own. Built on the image viewer WooCommerce already ships, so nothing new loads and swipe, pinch zoom and the keyboard come free. Rooster One adds a scrollable thumbnail filmstrip along the bottom, pager dots, an image counter, autoplay with loop, a choice of arrow styles, and a backdrop that can be dark, light or frosted glass. One click or tap anywhere on the main product image opens it. Every setting lives on a new «Gallery thumbnails and lightbox» page in Storefront Display, together with the gallery thumbnail strip’s own height and count.
- The lightbox can open by itself when a visitor arrives. Always, only when they come from a product listing, or from any internal page but never from a search engine or a typed address. The decision is made in the visitor’s own browser, so it stays correct behind full-page caching, and it opens whichever viewer the shop uses, Rooster One’s or the theme’s.
- Choose whose look the gallery, the lightbox and the recommendation rails wear. The Theme compatibility screen now decides the product image gallery and the fullscreen lightbox as well, beside the variation swatches and the recommendation carousels it already covered: for each surface separately, keep the theme’s rendering or hand it to Rooster One. Gallery and lightbox are independent choices, so the theme can lay out the product page while Rooster One owns the fullscreen view. Nothing changes until you choose, and a shop that never opens the screen behaves exactly as it does today.
- Four ERP purchasing reports (Pro). Purchases by supplier, VAT reconciliation, landed cost and margin, and supplier price drift, built from the invoice scanner’s own data.
- The first charts on reports. A report can now carry a chart above its table, drawn from the current view and refreshed by the same filters and search as the rows.
- Every admin data table now behaves the same way. The long conversion completed: some 250 data tables across the whole admin share one component, with server-side sorting, filters, search, exports, bulk actions and honest empty states, and several reports that read retired third-party tables were rebuilt on the plugin’s own data.
- Who may see, edit, run and export reports is now yours to decide. Four new capabilities and two assignable roles (Rooster Data Exporter, Rooster Data Editor), seeded so nothing changes on upgrade day, and revocable from day two, which the old gates could never be.
- The event guest-list export now requires the export permission. Names, emails and phones leave the site only with the same permission every report export carries, no longer with any account that can edit posts.
- Stock Recovery honours the quantity you type. The Qty box was posted and ignored; the number you type is now the restock quantity, and an empty box still uses the engine’s suggestion.
- Both recoverable-value readings, side by side. The recovery queue shows the in-store-anchored recoverable figure and the sales predictor’s modelled estimate as two labelled columns. They measure different things; now they can be compared instead of confused.
- Customer records finally carry the shop’s own latest-order date. The eshop latest-transaction field had been empty since the day it was created. It now fills for every customer with an order and stays current as orders arrive.
- A product mapped onto one of your subcategories now lands in the whole tree (Pro). Matching a feed category to, say, «Portable fridges Igloo» filed the product under that leaf alone, so it appeared in neither «Portable fridges» nor «Camping». Every category attach in the import pipeline now carries the ancestors too, and «Refresh all details» repairs the products already imported without their tree.
- The variable parent gets the SKU rule too (Pro). A feed rule that prefixes SKUs reached every variation but left the parent with the bare vendor code. Parent and variations now go through the same rule by construction, and parents imported earlier with the bare code are found and re-keyed automatically on the next run instead of turning into duplicates.
- Rule the category mapping in bulk (Pro). The «Match the feed categories to yours» screen gains row selection with select and deselect all, Confirm selected, Reject selected, and «Set category on selected»: pick five feed categories and file them under one of your categories in a single click. Every mass ruling still teaches the matcher the way a one-by-one ruling does, and the Suggest and Accept-at-threshold buttons are untouched.
- A real import log (Pro). Every finished feed run now lands in an Import run history kept for 30 days: which products were created and updated, by name, which rows errored and why, and the feed-quality notes. «27 errors» stops being the whole story.
- The feed source tables join the house tables. «Your feed sources» and the scheduler’s «Feed imports on a clock» were still hand-rolled, with no sorting; both now render through the same component as every other table, sortable, with their row actions intact.
11.1.3 – 2026-08-23
- Product pages with many variations open in a fraction of the time. On a shop whose theme draws its own colour and image pickers, a product with dozens of variations could take fifteen seconds to appear whenever the page was not already cached. The list of variations was being rebuilt once for every swatch on the page, so a product with sixty shades built that list sixty times over instead of once. It is now built once and reused for the rest of the page. Nothing about the page changes, it is the same shop with the same pickers. Measured on a live shop: 15.5 seconds down to 1.2.
- A new screen decides what Rooster One takes over from your theme. Many themes draw their own variation swatches and product carousels, and where they do, both they and Rooster One were reaching for the same place on the page. Storefront Display now has a Theme compatibility screen that names the theme it found and lets you choose, for each part of the shop separately, whether the theme keeps it or Rooster One takes it over. Nothing changes until you choose, so a shop that never opens the screen behaves exactly as it does today.
- Our variation pickers can wear your theme’s design. If you hand the pickers to Rooster One, you can still keep the appearance your theme gives them. The page gets the speed without being redesigned.
- Rooster One now works out what your attributes are. Every swatch plugin has its own name for what a colour or an image attribute is, so a picker built by your theme could be one we did not recognise. A one-off detection reads your own products and works it out, and it is not repeated when a page loads.
- Variation swatches can be placed anywhere. A new
[aieo_product_swatches]shortcode, and a block that no longer has to sit inside a product loop, so the picker can be dropped into an Elementor or Bricks layout. - A Greek label read as a hardware term. The wording for the recommendations surface was translated as a name for mounting rails rather than a part of a shop page. Corrected.
11.1.2 – 2026-08-22
- Feeds can bring weight and box dimensions with them (Pro). The catalogue importer could read a code, a name, a price, stock, pictures and categories, and nothing about the physical thing — so every imported product arrived with no weight and no box, and somebody typed them in a second time. Weight, Length, Width and Height can now be mapped, from three separate fields or from one field written as «10x20x30». Both simple products and each variation of a variable one get their own figures, which is what shipping actually reads.
- When the feed’s units are not your shop’s (Pro). A supplier publishing kilograms into a shop that works in grams is out by a factor of a thousand, and nothing would have told you. Make a field that multiplies the supplier’s, and map that: the importer already had the arithmetic, and the four new fields explain it where you need it.
- «Refresh all details» (Pro). A repeating feed is deliberately allowed to change only price and stock, so a supplier cannot overwrite a name you rewrote. That also means products imported before today will never gain a weight. The new button beside a feed’s «Run now» re-reads it once and rewrites everything onto the products that already exist, filling in what they were imported without. It does not change what that feed does on its schedule, and anything you pinned is still left alone.
- Signing in by email works again. Asking for a sign-in link answered with a bare «not found» error, on every site, for as long as the feature has existed. The address the form posts to was only ever created on ordinary page views, and never on the request that actually uses it. The message read like a permissions problem and was not one.
- The sign-in form no longer stops accepting you. After about ninety seconds on a page, the security check behind the login and registration forms quietly stopped renewing itself, and a submission was then rejected with nothing on screen to explain why. It now waits for that check to be ready, renews when you start typing, and paces itself so renewing cannot trip your host’s rate limit.
- The «connect by email» button and its window survive any theme. In themes that rebuild the page as it is drawn, the button’s icon appeared at full picture size and the window opened at the very bottom of the page instead of over it. Both now carry their own appearance, so a theme that discards the stylesheet can no longer break them.
- Greek wording that said the wrong thing is corrected, across the whole admin. Sixty-two labels were translated into a real Greek word with the wrong meaning, which is why nothing looked broken. A tracking event was called a social function, so «Raw events», «Total events» and the Meta and TikTok «Events API» fields all read as though they were about running an event. Reconciliation was called making peace, on the courier invoice screen, the promotions report and the marketplace importer alike. A rejection said a date where it meant a marketplace name. Every one was checked against the screen it appears on before it was changed.
- «Event» now reads correctly in both of its meanings. The word was one entry serving two unrelated things: the column heading over a log of tracking events, and the name of the Events feature itself. Greek has a separate word for each, so the two are now separate entries. Your Events section keeps its name and the log columns say what they are.
11.1.1 – 2026-08-22
- Text that should have been in your language, and was not. Wording you can override in the settings, such as the wishlist tooltips, the free-shipping progress messages, the SALE and NEW badges, the SKU and barcode labels, the add-to-cart button and the checkout invoicing fields, could get stuck in English. It happened whenever the built-in wording was saved into the database instead of being looked up when the page is drawn, and once it was saved it stayed, whatever language your shop was set to. All of it now resolves as the page is built, and an update repairs the values already stored. Anything you typed yourself is left exactly as you typed it, in any language.
- Wording set by one language of admin no longer reaches everyone else. If a shop has staff working in different languages, the person who pressed Save decided what every visitor saw. That is no longer possible for settings, and search engine descriptions are now built in the shop’s language rather than in the language of whoever last edited the product.
- Two hundred pieces of text can be translated for the first time. The marketplace importer’s messages were written against a translation file that was never loaded, so they were English everywhere no matter what you did. They are now part of the normal translation set.
- Some text could not be translated at all. The badge labels, the add-to-cart button text, the product code labels and the trust badges were fixed English wherever you were. They are translatable now, and Greek is included.
- Your shop’s own loyalty points are recorded again. Rooster One awards points on an order, but the figure never reached the customer’s record, so the «Eshop Loyalty Points» field on a customer sat empty next to the points your accounting system had sent. It is now filled from the points ledger and stays correct, including for shops that were already awarding points before this update. Points that are not whole numbers are kept as they are rather than rounded down.
- A faster storefront on every page a visitor loads uncached. Rooster One was asking your database the same questions on every single page view: whether its tables existed, and what character set they use. Neither answer changes between page views. They are now looked up once and remembered, which removes about 22 milliseconds of database work per page, and every table check and table creation from the storefront entirely. Cart, checkout and account pages, which are never served from cache, benefit most.
- Table creation no longer runs on shopper page views. Setting up the database is now done where it belongs, in the admin, on the command line, and on scheduled tasks. Nothing about your data changes; it simply stops happening on a page a customer is waiting for.
11.1.0 – 2026-08-20
This release also carries everything listed under 11.0.13 below, which was never published separately.
- Pro features now carry their code in the Pro plugin. The catalogue importer, product feeds between sites, duplicate products, and the Greek text matching all three rely on, have moved into Rooster One Pro. The free plugin keeps every screen, every description and the upgrade path, so you can still find these features, read what they do and see what they would give you — and a screen whose engine is not installed says exactly that instead of failing. If you use any of them, update Rooster One Pro to 11.1.0 at the same time.
- Screens that were always Pro now say so. «Import products from a marketplace» and «Product feeds between sites» have been Pro in the capability list since it was written, but neither screen showed it and the feeds screen never checked. Both now show what Pro gives you, and the Connections page marks every Pro service in its directory instead of listing them as though they were included.
- The one-click marketplace import (eFood, Wolt, Etsy, Amazon) requires Pro. It always counted as a Pro feature; it simply never enforced it.
- Nothing changes on your storefront. Recommendation rails, related content and audience filtering keep reading what was already computed for them, exactly as before, and keep working if the Pro plugin is ever deactivated. Behavioural data collection stays in the free plugin so a shop that upgrades later still has its history.
11.0.13 – 2026-08-20
- Prefix or suffix the SKU a feed creates. A supplier’s code 101.55.3 can be stored as ELDIC0-101.55.3, so you can see at a glance which supplier a product came from. The rule is applied as each row is read, so the SKU the catalogue is searched on and the SKU a new product is created with are always the same value: a match updates, a miss creates, and the two can never disagree.
- Filter an import by SKU or barcode. Include or exclude by shape rather than by list:
101.55.3*takes only codes starting with it,*-ELonly those ending with it, and a plainEL-any code containing it. A dot stays a dot, so real codes behave the way you type them. - The same code patterns target offers. Brand discounts, brand gifts and free shipping accept the same include and exclude patterns, matched against a product’s SKU and barcode, so one supplier’s whole range can be covered without listing it.
- Products are identified by SKU only. A barcode can no longer establish identity, because the same article carries different barcodes per country and per revision, which meant an import could update the wrong product or duplicate one. Barcodes remain imported, stored and filterable.
- Give suppliers to products you already had. A feed records the supplier on everything it imports, but products that were in the shop first had none, and showed as unresolved on the re-order boards. A feed source can now link the brands it carries to its supplier, which repairs those older products without touching them: a product finds its supplier through its brand when it has none of its own. It previews what it would change first, never overwrites a brand that already names a supplier, and modifies no products.
- Supplier Orders: pick the orders first, then the supplier. The supplier list is built from what those orders actually contain, several suppliers can be chosen at once through the usual product-picker modal, and the item list no longer stops at the first 500 orders.
- Fixes a multi-select on the feed filter screen that lost its styling once you picked something, and a colour-swatch help text that could never be translated.
11.0.12 – 2026-08-20
- Feed rules: reshape a feed before it becomes products (Pro). Five ways to make a field out of what a feed really sends: cut at a delimiter or by pattern (the parent code hiding inside a SKU, an attribute inside a specifications blob), multiply (a feed that carries only the wholesale price maps it to Cost price, and a made field «retail» — the same price times 1.5 — becomes the Price), sum per-warehouse quantities into one stock figure, or pick one named warehouse’s value. «Set a value» rules watch feed fields and write stock, prices or a discontinued flag; conditions on repeating groups are paired within one entry, so «address is X AND it says available» is true only when that one warehouse says both.
- Filter what a feed imports (Pro). Per-feed include and exclude lists over the feed’s own categories, brands and tags, combined with AND or OR; an exclusion always wins. The pickers read the whole feed even when a test cap is set.
- Import at most N products (Pro). Set it to 1 and watch how a single product of a new feed actually lands before letting the whole catalogue through.
- The feed’s categories are matched to yours, and your rulings teach it (Pro). Vendor category paths are scored against your category tree, Greek-aware; a review panel shows every suggestion with its score, and you confirm, correct or reject each one. Rulings persist in a register that survives deleting the feed and transfers to other suppliers’ feeds: an exact path applies at full confidence, and a near match raises a lexical half-match to a strong one. A category with no match can be created locally, skipped, or keep the product out entirely — your choice per feed.
- Availability words teach a register too (Pro). A rule that says what a feed’s availability word means is remembered, and feeds that use the same word get the same reading without a rule.
- New: a discontinued state. A rule or availability word can mark a product discontinued: out of stock and hidden from the catalogue while its page stays live, and the state is sticky — a feed that simply stops mentioning the product never quietly revives it.
- Wholesale prices land in WooCommerce Cost of Goods. A new «Cost price (wholesale)» mapping target writes straight into Cost of Goods (WooCommerce 9.5+): set on create, moved on change, filled where empty on enrich — and never cleared by a feed that omits it.
- Feed schedules got a real calendar. Hourly, daily, weekly or monthly, with the hour, the weekday or the day of the month, all in the site’s own timezone and self-correcting across daylight-saving changes. The Data preparation page gained an audit card showing every source’s cadence and next run, and the Connections page now counts your own feed sources instead of reporting the importer «not set up».
- New: Supplier Orders. One page that answers «what should I order from each supplier»: items from open orders or any period, aggregated per product, exportable to XLSX, and emailable to the supplier’s order-taking address in one click. The staff pre-order boards moved here from the Branch Scanner, so purchasing lives in one place.
- The supplier is part of product vitals. Each product’s supplier is resolved nightly into the vitals table (direct assignment first, then the ERP catalogue, then the brand’s supplier), so order screens answer instantly instead of walking the chain per product.
- Duplicate products reads more Greek (Pro). Two colours in one variant («Τιρκουάζ/Πράσινο») stay one colour value; litres keep their unit; dimensions such as «40 X 127 Cm» bind the unit to the numbers so a trailing code stays a code; and colourway groups — the same sizes repeated across colours — coalesce into one product with both size and colour axes.
- Fix: a PHP 8 fatal on malformed text from imported catalogues. Invalid UTF-8 bytes in a title could take down the Duplicate products screen and the content indexer’s word count. Both now degrade instead of fataling, which is the resolver’s contract with catalogue data.
- Fix: editing a saved feed source no longer loses its address. The file picker stopped clearing the URL, an empty address on save keeps the stored one (a single – removes it), and re-picking «One product is» during an edit works from the stored sample. The default for «one product» now prefers the row that carries SKU and price signals over an equally-nested warehouse row.
- The whole new surface speaks Greek. 149 new strings translated, and the match-score column header corrected — it read «Αγώνας», a sports match.
- The update screen reads like an update screen again. The upgrade notice is one short paragraph; the story stays here in the changelog.
