Merchant Guide

SmartCart - Magento 2 contextual cart recommendations

SmartCart delivers Magento 2 cart recommendations showing shoppers the right add-on products at checkout - on the cart page, mini-cart, and checkout sidebar.

Overview

SmartCart delivers Magento 2 cart recommendations in your shoppers' path at the moment they're most likely to add something extra. When a customer has items in their cart, SmartCart evaluates a set of rules you've created, picks the most relevant complementary products, and shows them as add-on tiles - directly on the cart page, in the slide-out mini-cart, or in the checkout sidebar.

SmartCart admin configuration overview

Every recommendation is entirely rule-based and runs locally with no third-party calls at runtime. You decide which products appear and when, through a rule editor with three trigger types (specific SKUs in cart, category in cart, or attribute match) and three pool types (specific products, a category, or an attribute value). Optional guardrails keep out-of-stock, already-in-cart, or previously-purchased products off the list automatically.

A separate offline toolset - association mining and an optional AI provider - can analyse your order history and propose draft rules for your review. You approve or reject each draft; nothing goes live without your sign-off.

This module helps you:

  • Present relevant add-on products in the cart, mini-cart, and checkout sidebar without touching theme templates
  • Suppress products a shopper already owns, has already added, or has dismissed - keeping suggestions fresh and useful
  • Build recommendation rules manually or let the system propose them from your order history
  • Track impressions, clicks, add-to-carts, and revenue per rule so you can see what's actually working
  • Restrict offers by customer group, cart subtotal threshold, or coupon status
  • Explain why each suggested product belongs in the cart with AI-written reasons tailored to the shopper's specific items
  • Group suggestions under a clear heading so shoppers scan by theme instead of reading each tile independently
  • Show star ratings and a one-line review snippet on each suggestion so shoppers can judge relevance at a glance

When to use this

Use SmartCart when you want to:

  • Surface complementary accessories or consumables at the point in the journey where the shopper has already committed to buying
  • Replace a static "You may also like" cross-sell block with context-aware suggestions that respond to what's actually in the cart
  • Test which add-on products convert best - rule-level stats show impressions, add rate, and purchase rate over 30 days
  • Avoid pestering returning customers with products they already bought - purchase history suppression handles that automatically
  • Get rule suggestions from your own order data without having to comb through reports yourself

Key capabilities

  • Rule-based recommendations - define triggers (SKU, category, attribute) and pools (specific products, category, attribute) per rule
  • Three placement zones - cart page, mini-cart, and checkout sidebar, each independently enabled
  • Guardrail filtering - automatically removes out-of-stock, already-in-cart, excluded, and incompatible candidates
  • Dismissal memory - dismissed offers stay hidden for a configurable number of hours per shopper, per store
  • Purchase history suppression - skip products the shopper has already ordered, matched by customer ID or guest email
  • Performance stats - 30-day impressions, add rate, purchase rate, and revenue visible on the Rules grid without extra queries
  • Offline AI tooling - mine co-purchase associations from order history, optionally enrich with AI tags, generate draft rules for admin review
  • Draft approval workflow - mined and AI-generated rules require explicit approve or reject before going live
  • Event tracking - impressions, clicks, dismissals, and purchases logged with placement context for analysis
  • ProfitEasy integration - SmartCart-attributed revenue appears as a smartcart source bucket in ProfitEasy reporting
  • AI combo reasons - Generates short, specific explanations for each suggestion (e.g. "Both are waterproof and UV-resistant") so shoppers understand the recommendation at a glance
  • Grouped suggestion headings - Suggestions are grouped by recommendation theme with a short heading (e.g. "Complete your travel workout kit") so shoppers scan by context instead of reading every tile
  • Star ratings on offer tiles - Each suggestion shows a compact star rating and review count when review data is available, so shoppers can judge fit without leaving the cart
  • Review snippet - Optional one-line excerpt from a real customer review shown below each suggestion tile (off by default; useful for A/B testing)

Installation

SmartCart installs via Composer, then activates with a license key from your Moogento.com account. The whole flow takes about 5 minutes.

Step 1: Get your Composer keys from Moogento.com

  1. Sign in at https://www.moogento.com and open My Plugins in your account menu.
  2. Find SmartCart in the list of plugins you own.
  3. Generate (or reveal) the Composer access keys for that plugin - a public key and a private key.
  4. Add your install domain to the key. Each Composer key is tied to a specific domain - if you're installing on yourstore.com, add yourstore.com to the key's allowed domains. The Composer download will be rejected on any other domain.

If you run staging and production on different domains, add both - separate keys per environment are fine too.

Step 2: Install the module with Composer

From your Magento 2 root directory:

composer require moogento/module-smartcart

When Composer asks for credentials, paste the public key as the username and the private key as the password. They'll be cached in ~/.composer/auth.json for future runs.

Step 3: Enable the module in Magento

php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:clean

If you run php bin/magento module:status Moogento_Smartcart you should see it listed as enabled.

Step 4: Add your license key in the Moogento admin

  1. Still on https://www.moogento.com > My Plugins, copy the license key for SmartCart (separate from the Composer keys you used above).
  2. In your Magento admin, go to Stores > Configuration > Moogento > Licenses.
  3. Find the row for SmartCart and paste the license key.
  4. Click Save Config, then run php bin/magento cache:clean once.

The license validates within a few seconds. You should see the module's status flip to active. If it stays inactive, double-check the domain on the license matches where you've installed - domain mismatch is the most common cause.


Setup overview

Most setup happens in:

Stores > Configuration > Moogento > SmartCart

You'll mainly work with:

  • General - master on/off switch, offer limit, cache TTL, and debug logging
  • Setup: Placements - choose which zones (cart page, mini-cart, checkout sidebar) show recommendations, intent requirements, and suppression behaviour
  • Setup: Eligibility Rules - customer group restrictions, minimum cart subtotal, excluded SKUs and categories, coupon suppression
  • Setup: Compatibility Constraints - filter candidates by attribute compatibility with cart contents (Growth and Pro)
  • Setup: Dismissal Memory - how long dismissed offers stay hidden per shopper
  • Setup: Purchase History - suppress products the shopper has already ordered
  • Setup: Event Tracking - record impressions, clicks, dismissals, and purchases for analysis; optional UTM tagging
  • Setup: Security - auto-generated context hash key for request signing (rarely touched manually)
  • Setup: AI-Powered SmartCart Rules - configure an AI provider and trigger rule generation from order history
  • Presentation - grouped suggestion headings, optional AI-polished titles, star ratings, and review snippets
  • Smart Bundles (Pro) - let shoppers add multiple recommendations at once with an automatic discount
  • Pro: Focused Checkout - hide navigation distractions on the checkout page
  • Pro: Free-Shipping Progress Bar - show shoppers how close they are to a free-shipping threshold
  • Pro: Tier-Boost Suggestions - suggest products that help shoppers reach the next free-shipping tier

Rules and draft review live under the Moogento menu:

  • Moogento > SmartCart > Rules - create, edit, enable, disable, and delete recommendation rules
  • Moogento > SmartCart > Drafts - review, approve, or reject AI-mined draft rules

Common setups

Turn SmartCart on and place it on the cart page

New installations have SmartCart disabled by default so you can create at least one rule before shoppers see anything. Once a rule is ready, enable the module and choose where offers appear.

How to set it up

  1. Go to: Stores > Configuration > Moogento > SmartCart > General

  2. Set:

    • Enable = Yes
    • Maximum Offers = 2 (1-2 converts best; you can test with 3 if your layout allows it)
    • Cache TTL (seconds) = 300 (default - keeps server load low; set to 0 to disable caching during rule testing)
  3. Go to: Stores > Configuration > Moogento > SmartCart > Setup: Placements

  4. Set:

    • Show: Cart Page = Yes
    • Show: Mini-Cart = No (enable separately once cart placement is working)
    • Show: Checkout Sidebar = No
  5. Save Config

SmartCart General configuration group

Notes

  • The module will not show any suggestions if there are no active rules. Go to Moogento > SmartCart > Rules and create at least one rule before enabling.
  • If you change cache TTL during testing, remember to set it back to 300 or higher in production - a TTL of 0 fires a pipeline call on every cart page load.

Create a manual recommendation rule

Rules tell SmartCart which products to suggest and when. Each rule has a trigger (what must be in the cart) and a pool (which products to suggest).

How to set it up

  1. Go to: Moogento > SmartCart > Rules

  2. Click Add New Rule.

  3. Fill in the form:

    • Code - a unique slug for this rule, e.g. camera-accessories
    • Priority - higher numbers run first when multiple rules match; start at 10 and leave gaps to insert later
    • Status - set to Enabled when ready to go live
    • Store View - choose a specific store or leave as All Store Views
    • Trigger Type - choose SKU in Cart, Category in Cart, or Attribute in Cart, then fill the trigger values
    • Pool Type - choose Specific Products, Category, or Attribute, then select the candidates
    • Display Copy - optional title and helper text shown above the offer tiles
  4. Save the rule.

Notes

  • Rules only fire if a shopper's cart matches the trigger. A rule with trigger type "SKU in Cart" and no matching SKU in the cart will never show.
  • Guardrails run automatically - out-of-stock, already-in-cart, and excluded products are filtered out before display regardless of pool contents.
  • The Rules grid shows 30-day impressions, add rate, and purchase rate per rule once event tracking is enabled. Check back after a week to compare rule performance.

Restrict offers by customer group and minimum cart value

Not every offer is right for every customer. Use eligibility rules to limit suggestions to guests, logged-in customers, or specific groups - and only show when the cart is large enough to make the add-on relevant.

How to set it up

  1. Go to: Stores > Configuration > Moogento > SmartCart > Setup: Eligibility Rules

  2. Set:

    • Show to: Customer Groups - select the groups you want to target (leave empty for all groups)
    • Threshold: Minimum Cart Subtotal - enter a value, e.g. 50 to only show offers on carts worth $50 or more (use 0 for no minimum)
    • Exclude: Product SKUs - paste any SKUs that should never appear as suggestions, comma-separated
    • Exclude: Categories - select any categories whose products should never be suggested
    • Disable: When Coupon Applied - set to Yes to hide all recommendations whenever a coupon code is active
  3. Save Config

SmartCart Eligibility Rules configuration group

Notes

  • Coupon suppression (Disable: When Coupon Applied) is useful if your coupons already give a discount - showing an add-on alongside a discount code can dilute the incentive.
  • Excluded SKUs and categories act as a blocklist across all rules. You can also exclude a pool at the rule level by simply not including those products in the pool.

Use purchase history suppression to avoid re-suggesting owned products

Recommending a product someone already bought feels out of touch. Enable history suppression so SmartCart automatically skips candidates the shopper has ordered before.

How to set it up

  1. Go to: Stores > Configuration > Moogento > SmartCart > Setup: Purchase History

  2. Set:

    • Enable: Purchased Product Suppression = Yes
    • Look Back: Days = 90 (how far back to check; increase for slow-moving products)
    • Include: Guest Orders = Yes (if you want to match by email for guests)
  3. Save Config

SmartCart Purchase History configuration group

Notes

  • Guest order matching requires the guest's email to be available in the session. If a guest checks out without logging in, the email from their most recent checkout attempt is used.
  • History lookups are cached (Cache: History TTL in the same group, default 60 minutes) so the database is not queried on every page load.

Generate rule drafts from order history (offline AI workflow)

SmartCart can mine your order history to find products that are frequently bought together, then generate pending draft rules for you to review. AI is optional - mining and draft creation work without a provider configured.

How to set it up

  1. Go to: Stores > Configuration > Moogento > SmartCart > Setup: AI-Powered SmartCart Rules

  2. Set:

    • Enable: AI-Powered Rule Generation = Yes
    • Provider: AI Service - select your preferred provider if you want AI-enhanced tagging; leave as None for mining-only workflow
    • Credentials: API Key - paste the API key from your provider's console (only required if a provider is selected)
  3. Save Config.

SmartCart AI-Powered SmartCart Rules configuration group

  1. From the server command line, run the mining and draft generation sequence:
php bin/magento smartcart:mine:associations --since=90 --min-support=3
php bin/magento smartcart:tag:products --batch=50   # optional, requires AI provider
php bin/magento smartcart:generate:drafts --min-confidence=0.1
  1. Go to Moogento > SmartCart > Drafts. Review each pending draft - you'll see the trigger, pool, copy, evidence (pair count, confidence, lift), and source. Click Approve to create a live rule, or Reject to discard it.

Notes

  • Mining requires qualifying orders (status processing or complete) containing two or more distinct products. Stores with few multi-product orders may produce few associations.
  • Association mining runs weekly on a cron schedule (by default Sunday at 4 AM). The rule-generation pipeline (mine → tag → generate drafts) then runs Monday at 5:15 AM, with a change-detection guard that skips weeks with no new orders or products - no need to re-run the CLI commands each week.
  • AI tagging enriches draft copy (helper text) but is not required for the pipeline to work. Even without a provider, mined rules produce useful draft rules.

Enable AI-written reasons for cart suggestions

AI combo reasons are short, product-specific sentences that appear below each suggestion tile, explaining why that product pairs with what's already in the cart. Reasons are pre-generated in the background so they show instantly at render time.

Requirements

  • Pro plan license active
  • AI provider and API key already configured in Setup: AI-Powered SmartCart Rules

How to set it up

  1. Go to: Stores > Configuration > Moogento > SmartCart > Setup: AI-Powered SmartCart Rules

  2. Set:

    • Enable: AI-Powered Rule Generation = Yes
    • Provider: AI Service - select your preferred provider and paste the API key
  3. Set:

    • Enable: AI Combo Reasons = Yes
  4. Optionally adjust:

    • Combo Reasons: Daily Budget - how many product pairs to generate per day (default 500; set to 0 to pause)
    • Combo Reasons: Batch Size - product pairs per AI call (default 10)
    • Combo Reasons: Max per Add-to-Cart - how many pairs are queued for background generation when a shopper adds an item (default 6; set to 0 to rely on batch/CLI only)
  5. Save Config.

Reasons are pre-generated by the daily cron (runs at 4:30 AM). To generate immediately without waiting for the cron, run:

php bin/magento smartcart:reasons:generate --store=1

Replace --store=1 with your store view ID. Add --limit=N to cap the number of pairs processed in one run.

Notes

  • Until the cron or CLI has generated a reason for a given product pair, the offer tile shows a templated fallback phrase. The coverage readout in admin shows what percentage of tracked pairs already have an AI reason ready.
  • Reasons are stored in the database, not the Magento cache. Flushing the cache does not erase or delay them.

Features reference

Setup: Placements

Controls where add-on suggestions appear for shoppers. Each zone can be enabled or disabled independently.

  • Show: Cart Page (default Yes) - recommendations appear below the main cart form; highest visibility and conversion
  • Show: Mini-Cart (default No) - compact suggestions in the slide-out mini-cart; good for impulse adds
  • Show: Checkout Sidebar (default No) - last-chance prompts alongside the order summary before purchase
  • Show: Checkout Shipping Step (default No) - also show on the shipping-address step; leave off to keep the early checkout step quieter
  • Place: Checkout Offer (default Inside Item List) - whether the checkout tile sits inside the expandable product list or below the order summary
  • Show: Minimum Items for Cart-Level Offers (default 2) - hide general cart-level offers until the cart has at least this many items; item-specific inline offers can still appear
  • Require: Checkout Essential Intent (default Yes) - only rules whose intent is set to Essential appear in checkout; keeps the checkout placement focused
  • Require: Mini-Cart Essential Intent (default No) - when enabled, limits mini-cart to Essential-intent rules only
  • Suppress: Express Checkout (default Yes) - hides SmartCart and suppresses later quiet-placement offers after a shopper starts Apple Pay, Google Pay, PayPal Express, or a similar wallet flow
  • Suppress: After Quiet Offer Shown (default Yes) - after a mini-cart or checkout impression, no further quiet-placement offers are shown for that quote session

Config path: Stores > Configuration > Moogento > SmartCart > Setup: Placements (moogento_smartcart/placement/)

SmartCart Placements configuration group


Presentation

Controls how suggestion tiles are laid out and what supporting information is shown alongside each product.

  • Group suggestions by reason (default Yes) - groups offer tiles under a short heading; when off, tiles render as a flat list identical to previous behaviour
  • Use AI-polished group titles (default No, Pro only) - replaces the deterministic heading with an AI-generated use-case phrase pre-generated offline; no live AI call at cart render time
  • Fall back to standard titles (default Yes) - when AI titles are enabled but one has not been generated yet, shows the deterministic heading; no blank headings
  • Show star ratings (default Yes) - compact star widget and review count per tile; silently hidden when Magento_Review is disabled or the product has fewer reviews than the minimum
  • Minimum reviews before showing (default 1) - products with fewer reviews skip the rating display entirely
  • Show a one-line review (default No) - one-line truncated customer review snippet below each tile; designed for A/B testing; silently hidden when no review text is available

Config path: Stores > Configuration > Moogento > SmartCart > Presentation (moogento_smartcart/presentation/)


Setup: Compatibility Constraints

Filters suggestions so that only products compatible with what's already in the cart are shown. Each row in the Compatibility Rules table specifies a product attribute and a match mode: must_match (candidate shares the attribute value with a cart item), must_differ (candidate has a different value), or any (no constraint on that attribute).

  • What it does: prevents recommending, for example, a US-spec accessory when the cart contains a UK-spec product
  • When to use it: stores with region-specific or voltage-specific products where mismatched accessories would be a poor experience

Config path: Stores > Configuration > Moogento > SmartCart > Setup: Compatibility Constraints (moogento_smartcart/compatibility/)


Setup: Dismissal Memory

When a shopper closes a suggestion, SmartCart remembers it so the same tile does not keep reappearing. Dismissal state is stored in browser localStorage (per shopper, per store, per rule).

  • Remember: Dismissed Offers (hours, default 24) - how long a dismissed offer stays hidden
  • Set to a higher value (e.g. 168 for one week) for products with long purchase cycles
  • Dismissed offers clear automatically when the TTL expires - no admin action needed

Config path: Stores > Configuration > Moogento > SmartCart > Eligibility & Suppression > Dismissed Offers TTL (moogento_smartcart/eligibility/dismissal_ttl_hours)


Setup: Event Tracking

Records impressions (50% visible for 250ms), clicks, dismissals, add-to-carts, and purchases per rule. Once enabled, the Rules grid shows 30-day stats columns - Shown, Adds, Orders, Revenue, Add Rate, Purchase Rate, and Dismiss Rate - updated every 15 minutes.

  • Enable: Event Tracking = Yes to start collecting data
  • Retention: Tracking Data (days, default 180) - events older than this are auto-deleted by a daily cron
  • UTM: Source (default smartcart) - stored in event metadata; useful when pushing events downstream to GA4 or another analytics platform
  • UTM: Medium (default widget) - labels the SmartCart surface that fired the event
  • UTM: Campaign (default event_tracking) - groups SmartCart rows in reporting

Config path: Stores > Configuration > Moogento > SmartCart > Setup: Event Tracking (moogento_smartcart/tracking/)


Setup: Security

Holds the auto-generated context hash key used to sign cart context payloads. The key is created on first use - you do not need to set it manually.

  • Secret: Context Hash Key - a 64-character key auto-generated on first use. Changing it invalidates all in-flight event hashes immediately; only change it if you have reason to believe the key is compromised.
  • Grace Window: Accept Legacy Hashes Until - a Unix timestamp. If you rotate the key, set this to a future timestamp to accept old hashes during the transition window. Leave at 0 to require signed hashes immediately after a key change.

Config path: Stores > Configuration > Moogento > SmartCart > Setup: Security (moogento_smartcart/security/) - global scope only

Enable grouped suggestions and star ratings

Grouped headings and star ratings are on by default. This section explains what each toggle does and when to turn things off.

Grouped suggestion headings

When grouping is enabled, offers are organised under a short heading that describes the recommendation theme - for example "Complete your travel workout kit" instead of repeating the anchor product name on every tile. The heading is generated from a deterministic template (always available on any plan) or, on a Pro plan, optionally polished by the AI generator.

How to configure

  1. Go to: Stores > Configuration > Moogento > SmartCart > Presentation

  2. Set:

    • Group suggestions by reason = Yes (default) to show themed headings, or No for a flat list
    • Use AI-polished group titles = Yes (Pro plan only) to replace the templated heading with a short use-case phrase generated offline; leave as No to use the deterministic heading
    • Fall back to standard titles = Yes (default) - when AI titles are enabled but one has not been generated yet for a group, show the deterministic heading instead of leaving it blank
    • Show star ratings = Yes (default) to show a compact star rating and review count per tile; requires Magento Reviews to be enabled for your store
    • Minimum reviews before showing = 1 (default) - increase to only show ratings on products with at least N reviews
    • Show a one-line review = No (default) - enable to show a short excerpt from a real customer review below each tile; useful for A/B testing; hidden automatically when no review text is available
  3. Save Config.

Notes

  • Grouped headings work on all plan tiers. The deterministic heading is always shown even when AI titles are disabled.
  • AI-polished group titles require a Pro plan, the AI provider configured in Setup: AI-Powered SmartCart Rules, and "Use AI-polished group titles" set to Yes. Titles are generated offline by the daily cron (5:30 AM); no AI call happens at cart render time. To generate immediately without waiting for the cron, run:
    php bin/magento smartcart:group-titles:generate --store=1
    
    Replace --store=1 with your store view ID.
  • Star ratings and review snippets are read from Magento's native Reviews module. If Reviews is disabled for your store, SmartCart silently skips the rating display - no errors, no blank space.
  • The review snippet is one line, truncated, and always rendered as plain text. It is off by default because results vary by product and category - turn it on for a subset of your catalogue and compare add-rates before rolling it out globally.

AI combo reasons (Pro)

Generates short, product-specific explanations for each cart suggestion so shoppers understand why the item is being recommended. Requires a Pro plan and an AI provider configured.

AI Settings configuration group including AI Combo Reasons fields

How it works

  • Reasons are pre-generated offline by the daily cron (smartcart_combo_reason_generation, runs at 4:30 AM) and stored in the database.
  • At render time, the module looks up ready reasons for each product pair and substitutes them for the default templated fallback phrase.
  • When no reason has been generated yet for a pair, the templated fallback shows automatically - no blank tiles.
  • Reasons survive Magento cache flushes because they are stored in the database, not the cache.
  • Disabled or deleted products are cleaned up automatically by the daily maintenance sweep so stale rows do not accumulate.

Coverage readout

Go to Stores > Configuration > Moogento > SmartCart > Setup: AI-Powered SmartCart Rules and look for the "AI Combo Reasons - Coverage" field. The panel shows (per store):

  • Coverage % - what fraction of tracked product pairs already have a ready AI reason
  • Generated today vs daily budget - how many pairs were generated today against the configured cap
  • Permanent-fallback % - pairs that were skipped (failed or permanently suppressed by the AI provider)

The readout is visible only when combo reasons are enabled and the Pro plan gate passes. Stats refresh on each admin page load.

Config paths

Setting Config path Scope Default
Enable AI Combo Reasons moogento_smartcart/ai/combo_reasons_enabled Store View No
Daily Budget moogento_smartcart/ai/combo_reasons_daily_budget Global 500
Max Stored Reasons moogento_smartcart/ai/combo_reasons_max_rows Global 50000
Reason Freshness (days) moogento_smartcart/ai/combo_reasons_ttl_days Store View 30
Batch Size moogento_smartcart/ai/combo_reasons_batch_size Global 10
Max per Add-to-Cart moogento_smartcart/ai/combo_reasons_max_per_cart_event Store View 6

Config path: Stores > Configuration > Moogento > SmartCart > Setup: AI-Powered SmartCart Rules (moogento_smartcart/ai/)


Smart Bundles (Pro)

Lets shoppers add multiple recommended products at once, with an automatic discount applied when they select a qualifying number of items. Requires a Pro plan license.

  • Enable Smart Bundles - master toggle; Pro plan required
  • Discount Mode - None (no automatic discount), Percent (% off each item), or Flat (fixed amount off the bundle total)
  • Discount Value - the percentage or flat amount to apply, depending on the mode above
  • Minimum Items to Qualify for Discount (default 3) - shoppers must select at least this many bundle items to trigger the discount
  • Minimum Unit Price for Bundle Inclusion (default $2.00) - products priced below this are excluded from bundles
  • Heuristic Strictness - Permissive (widest set), Balanced (default), or Strict (highest-confidence matches only)
  • Use AI Bundle-Intent Classification - when enabled, only products tagged as bundle-friendly by the AI provider appear in bundles; leave off to rely on heuristic signals alone

Config path: Stores > Configuration > Moogento > SmartCart > Smart Bundles (moogento_smartcart/bundles/)


Pro: Focused Checkout

Removes navigation and search distractions on the /checkout page while preserving the sign-in link. Useful for reducing cart abandonment. Requires a Pro plan license.

  • Enable: Focused Checkout - master toggle
  • Hide: Top Navigation (default Yes) - removes the main nav bar on checkout
  • Hide: Search Bar (default Yes) - removes the search field from the checkout header
  • Hide: Account Links (default No) - hides the account link area; the sign-in link is preserved separately
  • Keep: Sign-In Link (default Yes) - always keeps the login link visible even when account links are hidden
  • Logo: Image URL - optional custom logo URL for the focused checkout header; leave blank to use the store default
  • Logo: Alt Text - alt text for the custom checkout logo
  • Show: Secure Checkout Badge (default Yes) - displays a trust badge next to the checkout logo
  • Badge: Text (default "100% Safe & Secure Checkout") - the text shown inside the badge

Config path: Stores > Configuration > Moogento > SmartCart > Pro: Focused Checkout (moogento_smartcart/focused_checkout/)


Pro: Free-Shipping Progress Bar

Shows a progress bar on the mini-cart, cart page, and checkout telling shoppers how much more they need to spend to reach a free-shipping threshold. Supports multiple tiers (e.g. Standard Shipping at $50, Express at $80, Free at $120). Requires a Pro plan license.

  • Enable: Free-Shipping Bar - master toggle; requires at least one tier row and a Pro plan
  • Show: Mini-Cart / Cart Page / Checkout Page - individual placement toggles (all default Yes)
  • Calculate: Subtotal Basis - whether discounts reduce progress toward free shipping (subtotal before or after discounts)
  • Tiers: Free-Shipping Thresholds - dynamic rows: each row sets a threshold amount, label, sub-label, tone (bar colour), and whether this tier represents free shipping
  • Message: Qualified - text shown when the cart reaches the final free-shipping tier
  • Message: Remaining Amount - text shown while the cart is below the next tier; use {{amount}} as the placeholder for the formatted remaining amount

Config path: Stores > Configuration > Moogento > SmartCart > Pro: Free-Shipping Progress Bar (moogento_smartcart/free_shipping_bar/)


Pro: Tier-Boost Suggestions

Displays product suggestion chips below the free-shipping progress bar. Each chip is ranked by how well the product closes the remaining gap to the next free-shipping tier. Requires a Pro plan license and the Free-Shipping Progress Bar enabled.

  • Enable: Tier-Boost Suggestions (default Yes) - master toggle
  • Rank: Strategy - Single Item (cheapest product that closes the gap first) or Near Miss (products closest in price to the remaining amount)
  • Show: Max Suggestions (default 3) - number of chips to display
  • Threshold: Minimum Remaining Amount (default 0) - hide suggestions when the remaining amount is below this value
  • Cap: Max Overshoot % (default 50) - hide products priced more than this percentage above the remaining amount

Config path: Stores > Configuration > Moogento > SmartCart > Pro: Tier-Boost Suggestions (moogento_smartcart/tier_boost/)


Advanced configuration

Offline AI rule generation pipeline

The offline tooling layer mines your order history for frequently co-purchased product pairs, optionally enriches them with AI-generated semantic tags, and proposes draft rules. Nothing in this layer touches the storefront runtime.

What it does

  1. Association mining (smartcart:mine:associations) reads qualifying orders in batches of 500, counts product co-occurrences, and calculates confidence and lift scores. Results land in the database.
  2. Product tagging (smartcart:tag:products) sends product names, SKUs, and descriptions to the configured AI provider and stores semantic tags for each product. This step is optional but improves draft helper-text quality.
  3. Draft generation (smartcart:generate:drafts) combines associations and tags into pending draft rules. Each draft shows the mined evidence so you can judge whether it's worth approving.

Association mining runs weekly on a cron schedule (by default Sunday at 4 AM). The rule-generation pipeline (mine → tag → generate drafts) then runs Monday at 5:15 AM, with a change-detection guard that skips weeks where no new orders or products exist.

Setup

  1. Enable AI-Powered Rule Generation in: Stores > Configuration > Moogento > SmartCart > Setup: AI-Powered SmartCart Rules

  2. Optionally select an AI Provider and paste the API key.

  3. Run the pipeline manually for the first time:

    php bin/magento smartcart:mine:associations --since=90 --min-support=3
    php bin/magento smartcart:generate:drafts --min-confidence=0.1
    
  4. Review drafts at Moogento > SmartCart > Drafts.

  5. Click Generate: Rules Now in the config section to re-run at any time without SSH access.

Notes

  • AI is never called during runtime recommendation generation - only the CLI commands and the weekly cron invoke external AI APIs.
  • Associations require orders with 2+ distinct products and status processing or complete. Fewer than 3 orders sharing a pair (the --min-support default) produce no association rows.
  • --min-confidence=0.1 means "at least 10% of orders containing product A also contained product B". Raise this for higher-confidence suggestions; lower it to see more (but noisier) drafts.
  • The Generate button in admin (Setup: AI-Powered SmartCart Rules > Generate: Rules Now) runs the same pipeline in force mode, bypassing the change-detection skip. Use it after adding a new product range or importing a batch of orders.

Tips & best practices

  • Start with 1-2 rules covering your highest-volume cart scenarios before scaling up. Check 30-day stats before creating more - rule quality matters more than quantity.
  • Keep Maximum Offers at 2. Showing 3 or more offer tiles increases visual noise and typically reduces conversion on each individual tile.
  • Set a cache TTL of at least 300 seconds in production. A TTL of 0 runs the full pipeline on every cart page load and adds latency.
  • Use priority numbers with gaps (10, 20, 30) so you can insert new rules between existing ones without renumbering.
  • Enable event tracking from day one. The 30-day stats columns on the Rules grid are the fastest way to tell which rules are worth keeping.
  • If a rule's dismiss rate is consistently above 40-50%, the pool is probably too broad or the product is not a good fit for that trigger. Narrow the pool or revise the trigger.
  • Use the Disable: When Coupon Applied toggle if your promotions already offer a clear incentive - adding an upsell alongside a coupon code can feel pushy and reduce trust.
  • Run association mining against 90 days of orders first. If your catalogue changes seasonally, re-run after each season ends.
  • Approve AI-generated drafts selectively. Check the evidence column - pair count below 5 or confidence below 15% usually means a weaker association. Reject freely.

Troubleshooting

No recommendations appear on the cart page

  • Cause: Module is disabled, no active rules exist, or placement is off
  • Check: Stores > Configuration > Moogento > SmartCart > General > Enable = Yes
  • Check: Stores > Configuration > Moogento > SmartCart > Setup: Placements > Show: Cart Page = Yes
  • Check: Moogento > SmartCart > Rules - at least one rule must be enabled and scoped to the current store

Recommendations appear but never include a specific product

  • Cause: The product is filtered out by a guardrail
  • Check: The product is in stock and salable
  • Check: The product SKU is not in Excluded: Product SKUs (moogento_smartcart/eligibility/excluded_skus)
  • Check: The product's category is not in Excluded: Categories (moogento_smartcart/eligibility/excluded_categories)
  • Check: The product is not already in the shopper's cart (SmartCart never suggests items already in cart)
  • Check: If history suppression is enabled, the shopper may have purchased the product before

A dismissed offer keeps coming back after the browser is refreshed

  • Cause: The dismissal TTL has expired, or localStorage is being cleared between sessions
  • Check: Stores > Configuration > Moogento > SmartCart > Setup: Dismissal Memory > Remember: Dismissed Offers - increase the value if needed
  • The dismissal key includes the context hash - if the cart changes (a different item is added), the context hash changes and dismissed offers may reappear

Rule stats columns show zeros even though the module is active

  • Cause: Event tracking is disabled
  • Check: Stores > Configuration > Moogento > SmartCart > Setup: Event Tracking > Enable: Event Tracking = Yes
  • Note: Stats aggregate on a 15-minute cron. Allow up to 15 minutes after enabling before expecting data

Mining produces no associations or drafts

  • Cause: Not enough qualifying orders, or minimum support threshold is too high
  • Check: Orders must have status processing or complete and contain 2+ distinct products
  • Try: Lower --min-support to 2, or extend --since to 180 days
  • Check: var/log/moogento_smartcart.log for pipeline output

AI provider returns no results or a 401

  • Cause: API key is missing, wrong provider selected, or key does not match the provider
  • Check: Stores > Configuration > Moogento > SmartCart > Setup: AI-Powered SmartCart Rules - verify Provider and API Key match
  • Check: var/log/moogento_smartcart.log - the error from the provider API is logged there
  • Note: Changing the provider requires a matching API key - a key issued for OpenAI will not work if Provider is set to Anthropic

Free-Shipping Bar does not appear on the storefront

  • Cause: Pro plan not active, no tier rows configured, or the bar is not enabled for the relevant placement
  • Check: Stores > Configuration > Moogento > SmartCart > Pro: Free-Shipping Progress Bar > Enable: Free-Shipping Bar = Yes
  • Check: At least one row exists under Tiers: Free-Shipping Thresholds with a positive threshold amount
  • Check: The relevant placement toggle (Show: Mini-Cart / Cart Page / Checkout Page) is set to Yes
  • Check: Stores > Configuration > Moogento > Licenses - the SmartCart Pro plan must be active

Smart Bundles discount is not applied at checkout

  • Cause: The shopper selected fewer items than the Minimum Items to Qualify for Discount setting
  • Check: Stores > Configuration > Moogento > SmartCart > Smart Bundles > Minimum Items to Qualify for Discount - confirm the minimum matches the number of bundle items the shopper selected
  • Check: Discount Mode is not set to None
  • Note: The bundle discount appears in the order summary as "Bundle Discount" and requires the moogento_smartcart/bundles/enabled flag and a Pro plan

FAQs

How do I add product recommendations to my Magento 2 cart?

Install SmartCart, create at least one recommendation rule under Moogento > SmartCart > Rules, and enable the module at Stores > Configuration > Moogento > SmartCart > General. Offers appear automatically on the cart page without any template changes.

Why are no recommendations showing even though the module is enabled?

SmartCart needs at least one active rule whose trigger matches the current cart contents. Go to Moogento > SmartCart > Rules and confirm a rule is enabled, scoped to the right store view, and that the trigger SKU, category, or attribute is present in the shopper's cart. See Troubleshooting for a full checklist.

Can I show add-on suggestions in the mini-cart or during checkout?

Yes - SmartCart supports three independent placement zones: the cart page, the mini-cart slide-out, and the checkout sidebar. Enable each one at Stores > Configuration > Moogento > SmartCart > Setup: Placements. Mini-cart and checkout placements use a compact tile layout without product images.

How does SmartCart choose contextual cart recommendations?

SmartCart evaluates your active rules in priority order against the current cart contents. Each rule has a trigger (which products or categories must be in the cart) and a pool (which products to suggest). Only in-stock, eligible, and compatible candidates from the winning rules are shown. See Create a manual recommendation rule for how to build rules.

Does SmartCart work with Hyvä, Luma, or Porto themes?

SmartCart is compatible with Luma and Porto themes out of the box. For Hyvä, the module requires the Hyvä compatibility layer - check the Moogento.com plugin page or contact moo@moogento.com to confirm compatibility with your specific Hyvä version before installing.

Will shoppers keep seeing a suggestion for something they already bought?

Not if you enable purchase history suppression. Set Stores > Configuration > Moogento > SmartCart > Setup: Purchase History > Enable: Purchased Product Suppression = Yes and SmartCart will automatically skip products the shopper has ordered before. See Use purchase history suppression for setup steps.

Can I hide recommendations when a discount code is applied?

Yes. Set Stores > Configuration > Moogento > SmartCart > Setup: Eligibility Rules > Disable: When Coupon Applied = Yes. All recommendations will be hidden for that cart session while a coupon code is active.

How much does SmartCart cost and do I need a paid plan?

SmartCart is a paid Moogento plugin. Pricing and plan details are on the Moogento.com plugin page. You need a valid license key (entered at Stores > Configuration > Moogento > Licenses) for the module to remain active.

What happens if I disable SmartCart?

When Enable is set to No, no recommendations are fetched or displayed on the storefront. Existing rules, drafts, and event data are preserved. Re-enabling the module restores normal operation - no reconfiguration needed.

How do I know which recommendation rules are performing best?

Enable event tracking at Stores > Configuration > Moogento > SmartCart > Setup: Event Tracking, then check the Rules grid at Moogento > SmartCart > Rules. The grid shows 30-day impressions, add rate, purchase rate, and revenue per rule, updated every 15 minutes.

How do I add a free-shipping progress bar to my Magento 2 cart?

Enable the Pro: Free-Shipping Progress Bar group at Stores > Configuration > Moogento > SmartCart, add at least one tier row with a threshold amount, and set the bar to show on the placements you want. The bar updates automatically as customers modify their cart. This feature requires a SmartCart Pro plan.

Can SmartCart suggest products that help customers reach free shipping?

Yes - the Pro: Tier-Boost Suggestions feature places product chips below the free-shipping bar ranked by how well each product fills the remaining gap to the next threshold. See Pro: Tier-Boost Suggestions for the strategy and threshold options.

How do I hide the navigation bar on my Magento 2 checkout page?

Enable the Pro: Focused Checkout feature at Stores > Configuration > Moogento > SmartCart > Pro: Focused Checkout. It hides the top navigation and search bar on the checkout page while keeping the sign-in link accessible. This feature requires a SmartCart Pro plan.

Yes - the Smart Bundles feature (Pro plan) lets shoppers add multiple recommended products at once and automatically applies a percentage or flat discount when they select a qualifying number of items. Configure the discount mode and minimum item count at Stores > Configuration > Moogento > SmartCart > Smart Bundles.

Why do some suggestions still show generic text instead of AI reasons?

AI reasons are pre-generated; a templated fallback shows until the daily cron (or a manual CLI run) has generated a reason for that specific product pair. The coverage % in the "AI Combo Reasons - Coverage" readout panel in admin shows what fraction of tracked pairs already have an AI reason ready. Run php bin/magento smartcart:reasons:generate --store=1 to generate immediately without waiting for the cron.

Do AI reasons survive a Magento cache flush?

Yes. AI reasons are stored in the database, not the Magento cache. Flushing the cache does not erase or delay them - existing ready reasons continue to appear on the next page load.

Why are my suggestion tiles not grouped under headings?

Check that Group suggestions by reason is set to Yes at Stores > Configuration > Moogento > SmartCart > Presentation. If your cart only has offers from a single group, no heading is shown because there is nothing to separate. Multiple groups produce a visible heading before each section.

Can I use AI-polished group titles without upgrading to Pro?

No - AI-polished group titles require a Pro plan. On Seed or Growth plans the deterministic heading is shown instead (e.g. "Recommended with your item" or "Frequently bought together"). You can turn off grouped headings entirely at Presentation > Group suggestions by reason = No if you prefer the flat list.

Why are star ratings not showing on my suggestion tiles?

Star ratings require Magento's native Reviews module to be enabled for your store. If it is disabled, ratings are silently hidden. Also check that Presentation > Show star ratings = Yes and that the products in your suggestion pool have at least the configured minimum number of reviews (Presentation > Minimum reviews before showing).

Will AI group title generation slow down my cart page?

No. Group titles are pre-generated offline by a daily cron job (5:30 AM) and stored in the database. The cart render path only reads pre-stored rows - it makes no AI provider call. When no title has been generated yet for a group, the deterministic heading is shown instead. To generate titles immediately without waiting for the cron, run php bin/magento smartcart:group-titles:generate --store=1.


  • Pulse - real-time dashboard with a SmartCart ecosystem widget showing add-on performance at a glance
  • ProfitEasy - revenue attribution reports with a dedicated SmartCart source bucket

Need help?

  • moo@moogento.com
  • Include:
    • Magento version
    • Module name
    • What you're trying to do

Was this helpful?

Need source? Raw markdown is available for AI agents, plain-text copying, and diffs.

Raw markdown