描述
One plugin instead of dozens. 471 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 140 screens and 471 tools, 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: 697 of the 1,085 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 663 addressable places: 140 screens, 52 tabs and 471 tools, each one openable directly. All Features lists every one, with pinnable favourites. 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.
Free — everything above except where marked: AI chat and semantic search, the whole SEO engine, pricing and merchandising, storefront features, measurement and consent, product feeds and the catalogue importer, 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.
Pro adds the operational half:
- The front-end runtime plugin — serves the storefront without loading the admin half. The biggest speed difference between free and Pro.
- 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, physical retail and ERP, events and competitions, Action Scheduler cleanup.
Activated by connecting the site to your Rooster One account — no per-feature keys. Everything Pro-locked stays visible, with an explanation of what it does.
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.
屏幕截图































区块
该插件提供了 45 个区块.
- AIEO Google Reviews Live Google reviews pulled from the local cache. Single location, mixed feed, or cards grid.
- 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 Opening Hours A store location's opening hours. 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 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 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 Business Info A store location's address, phone, opening hours and Google links — from your Locations & Reviews data.
- 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 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 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 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.
- 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 Product Card Swatches Variation swatch column for a product card inside any block-based product loop (wp:woocommerce/product-collection, query loop, recommendations, blog→taxonomy template). Reads block-context postId and renders the same cached swatch HTML the classic-loop path emits — so CSS/JS keep working unchanged.
- 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 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 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 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 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 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 Loyalty Connection Bonus-card loyalty — connect/identify, then show the most recent points.
- 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 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 Related content Related articles, guides and products, chosen by the semantic engine.
- 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 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 Latest Posts Overlay Latest blog posts with image overlay + category badge. Mobile: horizontal slider with bullet nav. Desktop: grid.
- 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 Professional Signup Professional / student registration via Gravity Forms (renders [membership_gf]).
- 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 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 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 Post Related Brands Brand-logo slider for the current blog post. Reads wp_aieo_dmm_term_relations for product_brand → post edges.
- 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.
- 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 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 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 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 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 Category Hero The queried category's hero — image, title and description — auto-filled from the term, for product or blog category archive headers.
- AIEO Category Chips A row of clickable category chips for the current archive — the term's child categories.
- 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 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 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 Category Lead The current category's description, falling back to its name when it has none. For blog category archive headers.
- 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.
安装
- 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.
常见问题
-
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, and the product feeds 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: courier fulfilment and order documents, marketplace order import, attribution and ROI, audiences and automated campaigns, web push, customer intelligence, Insights Chat, physical-retail and ERP tooling, and events and competitions. Pro also delivers the front-end runtime plugin — a separate, frontend-only companion that serves the storefront, SEO head, sitemap and redirects without loading the admin half, which is the biggest single speed difference between free and Pro.
-
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.
评价
贡献者及开发者
更新日志
11.0.11 – 2026-08-18
- New: Duplicate products (Pro). Suppliers often send the same product several times, once per colour or size, so the catalogue ends up carrying three separate products where it should carry one product with three variations. Tools & Settings Duplicate products finds those groups, shows the evidence behind each one, and can merge a group into a single variable product. It reads the difference out of the product titles, so it can tell you these three differ by colour, or by size, or by both, and it refuses to merge any group whose difference it cannot name rather than guessing. Groups you know about yourself can be assembled by hand with checkboxes and a running selection that survives searching again.
- Merging always shows you what it will do first, and can always be undone. There is no one-click merge anywhere in the screen: you see the product that would be created, each variation with its SKU, price and stock, and the numbers behind it, including how many past order lines are involved. The originals are never deleted, only retired, so undo puts everything back exactly as it was. Past sales keep counting towards the merged product, because a register records which old product became which new variation and the reports follow it.
- Related content can now appear on any kind of content, not just posts. The automatic related-content section had exactly one content type built into it, so a site whose content is listings, courses or guides could switch the feature on and see it on its handful of blog posts and nowhere else. Internal Linking Settings now asks which content you want it on, and lists every content type your site has.
- The block and the shortcode can show one kind of content. A listing page can now recommend other listings instead of products: set “Show only these content types” in the block, or
show="listing"in the shortcode. Left empty, both behave exactly as before. The shortcode’s oldtypeattribute still means what it always meant, which is the source page rather than what gets shown, and it now has a clearer name:source_type. - The block is findable and shows what it will do. It was called “Semantic Related Content”, so searching the inserter for “AIEO” or “Rooster” never found it, and it drew an empty dashed box in the editor. It is now “AIEO Related content”, it previews the real cards while you edit, it has controls for the heading, the number of cards and the content types, and it says so plainly when the engine has nothing related to that page.
- Article and guide cards look like cards. A card for content with no featured image used to render with no image area at all, so it collapsed while the cards beside it kept full height. It now keeps its place in the grid, carries a date for articles or the content type’s name for everything else, and asks for the same image size products do instead of one that could be six times larger in the same row.
- Views and clicks on content sites are recorded again. The tracking script was loaded only when WooCommerce was active, so on a site with no shop the related-content section could be seen and clicked all day and nothing was ever logged. Where it did run, every view was recorded against “no page”, because the code only knew how to identify a product page. Both are fixed, and each view and click now records what kind of content it showed and what kind of page it was shown on.
- Fix: unticking a content type on the Internal Linking settings screen did nothing. The three checkbox lists on that screen could grow but never shrink, because the save merged the new list into the old one item by item. Unticking now removes.
- Fix: a supplier feed that lists each variant as its own row rewrote the parent product instead of the variant. When a row’s SKU or barcode belonged to a variation, the import walked up to the parent product and wrote the row there, so the product’s name and description were replaced by whichever colour or size came last in the file, its barcode was overwritten by the variant’s, and in “enrich” mode that one variant’s categories were added to it. Rows now update the variation they actually name, and the parent is left alone. Worth checking any product whose name reads like one of its variants, because this release stops the damage but cannot undo what earlier imports wrote.
- Fix: per-variant prices and stock never updated from a feed. Because those rows were being applied to the parent, and a parent with variations carries no price or stock of its own, the price and stock on them were discarded without a word. A variant’s price and stock could sit unchanged for months while the feed ran every night. They now land on the variant, and the parent’s price range is recalculated afterwards.
- Related content can be told who it is for (Pro). The engine scores how alike two pieces of text are, and a men’s cologne and the women’s cologne of the same range are almost the same text, so each was the other’s best recommendation. That is not a ranking fault: who a product is for simply is not something similarity can see. Internal Linking Settings now carries a grid of which audiences may be recommended to which, and a scan that reads your categories, tags, brands and attributes and proposes what each one is for. The scan proposes and you confirm, always, because on our own reference shop it proposes the shop’s own brand name as a women’s audience, correctly by its own rules and wrongly in fact. Descriptions are deliberately never read: measured on a real catalogue, reading them classified almost half the products and was wrong more often than it was right. Ships switched off.
- Related content can be told how old is too old (Pro). A yearly announcement is nearly identical to last year’s, so the best matches for this year’s page were the same page from 2025, 2024 and 2023, and the reader was being sent to a superseded copy of what they were already reading. You can now set how old content may be before it stops being recommended, separately for each kind of content, and mark the kinds that never go stale as evergreen so they stay recommendable for ever. Evergreen matters more than the window does: today’s news article pointing at your permanent guide is the single best recommendation on the board, and a plain “prefer recent” rule would suppress exactly that. Off by default, and never applied to products, where a two-year-old product is not a worse one.
- Choose the language model the semantic engine runs on (Pro). Internal Linking Settings lets you pick the model, and change your mind: switching re-analyses the site in the background while related content carries on showing the previous results until the new ones are ready, so nothing goes blank while it works. Leaving it unset uses the default for your site, which is also the way back from a model that turned out to be no better.
- Fix: cart-adds from the related-content rail were credited to WooCommerce Related Products. The rail was never registered as a place of its own, so every product added to a basket from it was recorded against
product_relatedinstead. Anyone reading their attribution reports has been reading an over-credited WooCommerce Related Products and a semantic row that was always empty. Both halves are fixed, and the rail is now counted wherever it appears, including on articles and listings. Rows written before this release cannot be separated retrospectively, so treat the split between those two surfaces as unknown before today rather than as measured. - Fix: the semantic engine kept superseded rows after a model change. Both artifact clean-ups only ever collected rows belonging to the model in use, so the day a site changed model the previous model’s rows were never visited again and survived indefinitely, looking current. Measured on a live site: changing the model took the cluster table from 300 rows to 600, every cluster silently gaining a twin. Clean-up now collects every row older than the run that replaced it, whichever model produced it.
- “What the import creates” is now “Import products from a marketplace”, which is what the page does; the old name described one section of it. That heading stays where it belongs, over the preview of what a feed would create.
- Imported images are converted to WebP. The importer used to store whatever the marketplace served, which is JPEG and PNG, and WordPress then generated a full set of thumbnails in the same format for every one of them. On a catalogue import that was the single largest cost in disk and in backups. Images are now converted before they are stored, so every thumbnail is made from the WebP and no JPEG is kept beside it, and the camera and location data that marketplace photography routinely carries is removed at the same time. Quality is yours to set and defaults to 82. Images already in WebP or AVIF are left alone, a conversion that would have made a file larger is discarded rather than kept, and a server that cannot write WebP imports the original format and says so instead of failing.
- A supplier feed that lists a product once per colour or size can now build one product with variations. Where a feed says which rows belong together, those rows become a single variable product instead of five near-identical ones. What they vary by is read from the feed where it names the field, and from the product names otherwise, using the same detection the Duplicate products screen uses. A group whose difference cannot be named is imported as separate products and the reason is reported, rather than guessed at: variations nobody can name are variations nobody can edit.
- New: build your own import source from a sample feed, and put it on a schedule (Pro). Paste a sample of any XML feed, or give its address, and Rooster One reads its structure: which node is one product, what fields hang off it, and how often each field is actually filled in, which is the number that tells you a barcode is present on 4% of rows. It proposes what each field means, you confirm every one of them, and you see the first products exactly as they would be created, including which rows become one product with variations, before anything is written. Name it and it is saved as a source you can import from like any marketplace, or leave to run on its own every hour, day or week. A scheduled run creates drafts and adds only new products unless you say otherwise, because nobody is watching it; a catalogue too large for one run records where it stopped and the next one carries on. What is stored is a mapping, never generated code: a pasted feed is untrusted, and turning it into something that then runs on every import is not a thing we will do.
- The whole admin is in Greek again. 1,210 pieces of wording had gone untranslated across several releases and were showing in English on a Greek shop: the entire sign-in security screen, the Semantic Internal Linking screens, every block name and description in the editor’s inserter, and the SEO description and search-query screens. All of them are translated, and the wording follows the terms the rest of the plugin already uses.
- Tweak: the related-content settings are written in content language rather than product language, and the paragraphs explaining the block and the shortcode have moved out of the brand-limit row they were hidden in.
- Feeds belong to suppliers now. A feed source can be assigned to one of your suppliers — the same suppliers you manage at Products Suppliers — or create one as you save it, and every product the feed creates or updates is placed under that supplier. That one assignment is what makes lead times, payment terms and the reorder lists cover feed-imported products, which they never could while the feed only wrote its name on the product. Which feed wrote a product is still recorded separately, because one supplier can send several feeds.
- A supplier directory, with the ERP’s own record on each supplier. Tools & Settings Supplier metadata now lists every supplier with its commercial terms and how much of the catalogue it reaches, and each supplier carries the fields the ERP keeps: ERP id and supplier code, VAT number, address, telephones and corporate contact. If the previous implementation’s tables are still in your database, one button migrates all of it — supplier fields, the ERP master, per-product supplier names and the pre-order history — filling only blanks, never overwriting your edits, and safe to run twice.
- The brand’s supplier is a real field now, not the read-only note it used to be, and a product’s supplier is resolved in a stated order: the product’s own supplier first, the ERP catalogue second, the brand’s supplier third.
- Build an import source from JSON and CSV feeds, not just XML. The same reader recognises which of the three it was given, a JSON feed’s nested rows can read fields from their parent exactly as XML variants do, and a CSV keeps your column headings as labels even when they are Greek.
- The pin and the supplier are visible on products. The products list gained a Supplier column that reads the supplier assignment itself, and the product editor gained the pin that protects a product from feed updates — both existed underneath, neither could be seen or set without code.
- Fix: a flat feed row that matches a product with variations no longer overwrites it. In the add-and-update modes, one such row would have rewritten the product’s name from a single variant and stripped its categories. It is now refused and reported, with “price and stock only” named as the mode that updates it safely.
- A store can take stock (Pro). Each store on the Locations & Reviews screen has a “Stock-taking” box: tick it and everything the Branch Stock Scanner needs is created for you — the stock board, its audit and pre-order triggers, a first fill of your own catalogue so the first scan already finds its product, and a published scanner page locked to that store. Untick and the branch is disabled; nothing is deleted.
- The scanner is the full phone tool, on its own path. Scan barcodes with the phone camera on every major browser, switch cameras, save stock and requested quantity and go straight to the next scan; a barcode the board does not know is logged once, with the camera frame that saw it, so the buyer can see what was actually on the shelf. Scanner pages live under /scanners/, are served bare with no theme header or footer, require signing in, and are never indexed. A new role — Rooster Stock Scanner — lets floor staff use them without any shop-management rights.
- Pre-orders have an approval flow. What staff request from the shop floor can now be approved, marked ordered, received with a quantity, or rejected, each step recording who and when. Received and rejected lines leave the outstanding totals that drive the next purchase order.
- Fix: “Confidence” was translated as self-confidence. The statistical sense is now Βεβαιότητα everywhere.
11.0.10 – 2026-08-15
- New: third card design source, “Theme design” — hands your precomputed recommendations to the theme’s own related-products and up-sells blocks, so the theme draws the cards with its own markup, CSS and carousel.
- Fix: “Display the product short description” and the rating toggle were enforced only by a stylesheet the two non-default card modes switch off, so both settings did nothing in Neutral and Theme modes. Enforcement moved to the card renderer and now behaves the same in all three modes.
- Fix: a global rating toggle set to off also hid ratings that a Product Slider block had explicitly enabled.
- Fix: recommendation rank is now preserved when the theme renders the cards (WooCommerce shuffles related products by default).
- Tweak: recommendation card type scale, alignment and star sizing brought into proportion with theme cards.
Earlier versions
The full history from 11.0.9 back is in changelog.txt, shipped with the plugin.
