What is Storzen AI Recommends?
Storzen AI Recommends for WooCommerce brings intelligent, conversion-boosting product recommendations to your store without any external API calls or subscriptions. The AI engine runs entirely on your server using your own order history — no account, no API key, no third-party dependency.
It is built as a fully modular system: each recommendation surface (Frequently Bought Together, Related Products, Cart, Post-Purchase, Recently Viewed) can be enabled or disabled independently. Social proof badges and low stock urgency badges layer on top of every surface automatically.
System Requirements
WooCommerce is a hard requirement — the plugin checks for it on activation and deactivates itself with an admin notice if it isn't active. Elementor is entirely optional; the widget only registers if Elementor is detected.
| Component | Minimum | Notes |
|---|---|---|
| WordPress | 6.6 | Tested up to 7.0 |
| PHP | 8.1 | Required for the plugin's typed codebase |
| WooCommerce | 8.0 | Required — the plugin deactivates itself without it. Tested up to 9.9 |
| Elementor | Optional | Smart Recommendations widget only registers if Elementor is active |
Installation
Method A — WordPress Plugin Directory (Recommended)
Search in WordPress Admin
Go to Plugins → Add New and search for Storzen AI Recommends for WooCommerce.
Install & Activate
Click Install Now, then Activate. WooCommerce must already be installed and active.
Go to Storzen Reco
A Storzen Reco menu appears in your WordPress admin sidebar. Click it to open the analytics dashboard and configure each module.
Rebuild the co-purchase matrix
For best results on existing stores, open Storzen Reco → Dashboard and click Rebuild co-purchase matrix to index your order history immediately.
Method B — Manual Upload
Download & Upload
Download storzen-ai-recommends.zip from wordpress.org/plugins. Go to Plugins → Add New → Upload Plugin and install the ZIP.
Activate
Click Activate Plugin. The Storzen Reco menu appears in your WordPress admin sidebar.
Configure Settings
Go to Storzen Reco → Settings and use the module tabs (FBT, Related, Cart, Recently Viewed, Post-Purchase, Social Proof, Low Stock, Analytics) to enable and tune each feature.
Quick Start
After activation, all core modules are enabled by default. The plugin starts learning from orders immediately — no manual setup required for basic usage.
- The Frequently Bought Together widget appears on single product pages automatically. Go to Settings → FBT to configure position, max products, and bundle discount.
- Related Products AI replaces WooCommerce's default related products on single product pages. Go to Settings → Related Products AI to pick the scoring mode (co-purchase, taxonomy, or hybrid).
- Cart Recommendations appear on the cart page and mini-cart automatically. Go to Settings → Cart to toggle each placement independently.
- The Recently Viewed widget appears on product pages by default. Place it anywhere else using the
[sprwoo_recently_viewed]shortcode or Gutenberg block. - Post-Purchase Recommendations show on the order thank-you page automatically — no shortcode needed.
- Go to Settings → Social Proof and Low Stock to fine-tune badge thresholds so new stores never show misleading data.
- Click Rebuild co-purchase matrix on the Dashboard after activation if your store has existing order history to seed recommendations immediately.
Frequently Bought Together
An Amazon-style "customers also bought" widget displayed on single product pages. It's powered by the co-purchase frequency matrix — the products that most frequently appear alongside the current product in completed orders are ranked to the top. On stores with sparse order history, the taxonomy-based fallback provides relevant companion suggestions immediately.
Bundle discount
When enabled, the FBT widget shows a single Add All to Cart button and a discount line showing the savings. The discount can be configured as a percentage (e.g. 10% off) or a fixed currency amount. Both the button label and the section title are fully customizable.
Display position
Choose where the FBT widget appears relative to the product summary:
| Position | Hook used |
|---|---|
| After add to cart button | woocommerce_after_add_to_cart_form |
| After product summary | woocommerce_after_single_product_summary, priority 5 |
| After related products | woocommerce_after_single_product_summary, priority 25 |
Cart Recommendations
Displays contextual product suggestions at two points in the cart experience: the full cart page and the mini-cart sidebar. Products are scored in real time from the current cart contents and items already in the cart are automatically excluded from suggestions.
Placements
- Cart page — rendered below the cart table using the
woocommerce_after_cart_tablehook - Mini-cart — rendered inside the mini-cart widget using the
woocommerce_before_mini_cart_contentshook
Each placement can be toggled independently under Settings → Cart. The section title and maximum number of recommended products are also configurable.
Recently Viewed Products
Tracks which products a shopper has browsed using the browser's built-in sessionStorage — no cookies, no server-side queries for tracking, and no data stored in your database. The list clears automatically when the browser tab closes.
Automatic placements
- Product pages — the Recently Viewed widget appears below the product content automatically (toggle via Settings → Recently Viewed → Show on product pages)
- Cart page — optionally display recently viewed products on the cart page (toggle via Settings → Recently Viewed → Show on cart page)
Shortcode
[sprwoo_recently_viewed]
64Recently viewed[sprwoo_recently_viewed max="4" columns="2" title="Your browsing history"]
Post-Purchase Recommendations
Shows a "Complete your purchase" recommendation widget on the WooCommerce order-received (thank-you) page — catching customers at their highest-intent moment, immediately after they've just bought something.
How product seeding works
The module identifies the highest-value item in the completed order and uses it as the anchor product for the recommendation query. Products that were just purchased are excluded from the results so shoppers only see genuinely new suggestions. The widget renders using the same AI scoring engine as the rest of the plugin (hybrid mode by default).
Display controls
Under Settings → Post-Purchase you can configure the section title, maximum number of recommendations, column count, and whether to show price, star rating, and Add to Cart button on each card.
Low Stock Urgency Badges
Shows urgency badges on recommendation cards when a product's WooCommerce stock level falls at or below your configured threshold. The badge renders before social proof badges on all recommendation surfaces.
Badge styles
| Style | Output example |
|---|---|
| Quantity | Only 3 left! |
| Simple | Low stock |
Variable product handling
For variable products, the badge checks all available variations and uses the lowest remaining stock count across them. Products that don't have WooCommerce stock management enabled are never shown a low stock badge, regardless of the threshold setting.
Analytics Dashboard
A built-in analytics dashboard inside WP Admin tracks the performance of every recommendation widget — without sending any data outside your server.
Tracked events
- Impressions — a recommendation widget was rendered and visible on the page
- Clicks — a shopper clicked a recommended product card
- Add-to-cart — a shopper clicked Add to Cart on a recommendation card
Events are stored in the {prefix}sprwoo_analytics database table and can be filtered by 7, 30, or 90-day windows. The table auto-purges rows older than your configured data retention window to keep your database lean.
Gutenberg Block
A native WordPress block with server-side rendering lets you place the Smart Recommendations widget on any page or post without code. Find it in the block inserter by searching for "Smart Recommendations" or "Storzen".
Block controls (in the editor sidebar)
- Recommendation type — choose from related, cart-based, or recently viewed
- Max products — how many recommendation cards to render
- Columns — grid column count (1–4)
- Section title — heading text displayed above the widget
- Show price — toggle product price visibility on cards
- Show rating — toggle star rating visibility
- Show add to cart — toggle the Add to Cart button on cards
blocks/build/index.js. The human-readable source is in blocks/src/index.js and is also published on GitHub at github.com/webtend/storzen-ai-recommends.
Elementor Widget
When Elementor is active, a Smart Recommendations widget appears in the Elementor panel (search keywords: recommendations, products, woocommerce, storzen, AI). It renders the full recommendations widget with a live canvas preview and additional style controls that go beyond what the shortcode offers. The widget only loads at all if Elementor is detected as active — it adds zero file weight to sites that don't use Elementor.
Style controls
- Title color — customize the section heading color independently of the theme
- Title spacing — control the gap between the heading and the product grid
Shortcode
[sprwoo_recently_viewed]
64"Recently viewed"For placing other recommendation types anywhere on your site without code, use the Gutenberg block or the Elementor widget, both of which support any recommendation type.
All Settings
Every option, grouped by the settings tab it lives under (Storzen Reco → Settings in the admin menu). All settings are stored as a single serialized option under the key sprwoo_settings.
Frequently Bought Together
| Key | Default | Notes |
|---|---|---|
| fbt_enabled | 1 | Enable or disable the FBT module entirely |
| fbt_position | after_add_to_cart | after_add_to_cart, after_summary, or after_related |
| fbt_max_products | 3 | Maximum companion products to show (1–6) |
| fbt_title | Frequently Bought Together | Section heading text |
| fbt_discount_enabled | 0 | Enable the bundle discount and Add All to Cart button |
| fbt_discount_type | percent | percent or fixed |
| fbt_discount_value | 10 | Discount amount — percentage or fixed currency depending on type |
Related Products AI
| Key | Default | Notes |
|---|---|---|
| related_enabled | 1 | Enable or disable the AI related products override |
| related_mode | hybrid | hybrid, copurchase, or taxonomy |
| related_max_products | 4 | Number of related product cards to show |
| related_columns | 4 | Grid column count |
| related_title | You may also like | Section heading text |
Cart Recommendations
| Key | Default | Notes |
|---|---|---|
| cart_enabled | 1 | Enable or disable the cart recommendations module |
| cart_on_cart_page | 1 | Show recommendations on the full cart page |
| cart_on_mini_cart | 1 | Show recommendations inside the mini-cart widget |
| cart_max_products | 3 | Maximum recommendation cards to show in the cart |
| cart_title | You might also like | Section heading text |
Recently Viewed
| Key | Default | Notes |
|---|---|---|
| rv_enabled | 1 | Enable or disable the recently viewed module |
| rv_on_product | 1 | Auto-display on single product pages |
| rv_on_cart | 0 | Auto-display on the cart page |
| rv_max_products | 6 | Maximum products shown in the widget |
| rv_columns | 4 | Grid column count |
| rv_title | Recently viewed | Section heading text |
| rv_show_price | 1 | Show product price on cards |
| rv_show_atc | 1 | Show Add to Cart button on cards |
Post-Purchase
| Key | Default | Notes |
|---|---|---|
| pp_enabled | 1 | Enable or disable the post-purchase module |
| pp_title | Complete your purchase | Section heading text |
| pp_max_products | 4 | Maximum recommendation cards |
| pp_columns | 4 | Grid column count |
| pp_show_price | 1 | Show product price on cards |
| pp_show_rating | 1 | Show star rating on cards |
| pp_show_atc | 1 | Show Add to Cart button on cards |
Social Proof
| Key | Default | Notes |
|---|---|---|
| social_proof_enabled | 1 | Enable or disable social proof badges globally |
| social_proof_type | velocity | velocity, rating, or purchases |
| social_proof_velocity_days | 30 | Lookback window in days for sales velocity calculation |
| social_proof_min_sales | 5 | Minimum sales count before velocity badge shows |
| social_proof_min_reviews | 3 | Minimum review count before rating badge shows |
| social_proof_min_purchases | 10 | Minimum total purchases before purchase count badge shows |
Low Stock
| Key | Default | Notes |
|---|---|---|
| ls_enabled | 1 | Enable or disable low stock urgency badges globally |
| ls_threshold | 5 | Stock quantity at or below which the badge appears |
| ls_badge_style | quantity | quantity ("Only X left!") or simple ("Low stock") |
Analytics
| Key | Default | Notes |
|---|---|---|
| analytics_enabled | 1 | Enable or disable analytics event tracking |
| analytics_retention | 90 | Days to keep analytics rows before auto-purge |
How the AI Works
The engine builds a co-purchase frequency matrix from your completed WooCommerce orders. Every time two products appear together in a single completed order, their co-occurrence count is incremented in the {prefix}sprwoo_copurchase table. Products bought together frequently accumulate a higher score and rank higher in recommendations.
Matrix updates
The matrix updates incrementally with every new completed order via the woocommerce_order_status_completed hook — there's no batch job to schedule. On first install, click Rebuild co-purchase matrix from the Dashboard to process your historical order archive.
Taxonomy fallback
On new stores with no order history, a taxonomy-based scoring fallback calculates relevance from category and tag overlap between products. This ensures recommendations are meaningful from day one, even before any sales data exists.
Scoring modes summary
| Mode | Co-purchase weight | Taxonomy weight |
|---|---|---|
| Hybrid (default) | 70% | 30% |
| Co-purchase | 100% | 0% |
| Taxonomy | 0% | 100% |
Performance
Scoring results per product are cached as WordPress transients with a 1-hour TTL. After the initial warm-up, the AI query never runs on a live page load. The flush_scoring_cache() method is called automatically after a matrix rebuild to force fresh scores.
wpdb queries. There are no machine learning APIs, no cloud inference, and no third-party services — ever.
Privacy & Data
Storzen AI Recommends does not collect, transmit, or share any data with external servers. All scoring, storage, and analytics run entirely within your WordPress database. No account or API key is required at any point.
What the plugin stores
| Table | Purpose | Cleared on uninstall? |
|---|---|---|
| {prefix}sprwoo_copurchase | Co-purchase frequency matrix — product pairs and their co-occurrence counts. Contains only product IDs and integers; no customer data. | Yes |
| {prefix}sprwoo_analytics | Impression, click, and add-to-cart event counts per product and recommendation surface. No user identifiers stored. | Yes |
Recently viewed — no server storage
The recently viewed tracking uses the browser's built-in sessionStorage exclusively. No data is written to the server for this feature. The data is temporary, client-side only, and is automatically cleared when the browser tab closes.
uninstall.php routine removes both custom database tables, all plugin options, and all transient cache entries. No manual cleanup required.
Frequently Asked Questions
Does this plugin require an API key or external service?
How does the AI scoring work?
Does it work with variable products?
Will it slow down my store?
Does it conflict with my theme or other plugins?
woocommerce_related_products via the official WooCommerce filter — not by modifying template files — so it works with any properly coded WooCommerce theme. All CSS classes are namespaced under .sprwoo- to avoid conflicts.How do I use the recently viewed shortcode?
[sprwoo_recently_viewed] anywhere on your site. Optional attributes: max (default 6), columns (default 4), title (default "Recently viewed"). Example: [sprwoo_recently_viewed max="4" columns="2" title="Your browsing history"].How do I place recommendations on a custom page?
[sprwoo_recently_viewed] shortcode specifically for recently viewed products.Can I customize the widget appearance?
public/css/sprwoo-public.css which you can override via your theme's CSS. All elements use prefixed .sprwoo- class names to avoid conflicts with your theme. The Elementor widget also exposes style controls for title color and spacing directly in the Elementor panel.What data does the plugin store in the database?
{prefix}sprwoo_copurchase for the co-purchase frequency matrix (product IDs and integer counts — no customer data), and {prefix}sprwoo_analytics for impression and click tracking (no user identifiers). Both tables are created on activation and removed on uninstall. The analytics table auto-purges rows older than your configured retention window.Is the recently viewed feature GDPR compliant?
How does the low stock badge decide what to show?
What happens to my data if I uninstall the plugin?
Is the plugin translation ready?
storzen-ai-recommends text domain and the languages folder is properly set up for WP.org language pack distribution.How do I get support?
Changelog
storzen-ai-recommends.
Social Proof Badges
Social proof badges appear automatically on recommendation cards across all surfaces — FBT, related products, cart, post-purchase, recently viewed, Gutenberg block, and Elementor widget. All data comes from WooCommerce; no third-party lookups or external services are involved.
Badge types
12 sold this month★ 4.8 · 240 reviews1,240 people bought thisChoose which badge type to display under Settings → Social Proof → Badge type. Minimum thresholds for purchases, reviews, and sales can all be set independently — so stores with sparse data never show badges with misleading low numbers.