SU wpezo Smart Upsell

Smart Upsell & Frequently Bought Together for WooCommerce

Complete setup, feature reference, compatibility notes and developer documentation for the WooCommerce upsell suite by wpezo.

Documentation version Version 1.0.0
Last updated: 2026-06-07
Plugin slug: wpezo-smart-upsell
No sections match your search. Try a broader term such as "campaign", "coupon", "margin" or "hook".

Overview

wpezo Smart Upsell helps WooCommerce stores increase average order value through multiple offer surfaces that run inside WordPress and WooCommerce. The plugin combines Frequently Bought Together bundles, checkout bumps, product add-ons, post-purchase offers, next-order coupons, campaign targeting, margin-aware discounts and local analytics.

Local-first recommendationsMarket-basket analysis runs against store order data in WordPress/MySQL.
Multiple offer surfacesProduct page, cart, checkout, thank-you page, exit intent and emails.
Merchant controlUse automatic, manual, hybrid or campaign-driven offers.
The plugin works without activating a license. License activation is used for update entitlement and support verification.

Requirements

RequirementVersion / note
WordPress6.9 or later, as declared by the plugin header.
WooCommerce10.8 or later, as declared by the plugin header.
PHP8.2 or later.
DatabaseMySQL/MariaDB supported by WordPress and WooCommerce.
WooCommerce featuresHPOS compatible. Classic cart/checkout and Cart/Checkout Blocks are supported.

For best results, test the plugin on a staging copy of the store before installing it on a production site.

Installation

From the installable ZIP

  1. Download or extract the installable plugin ZIP named wpezo-smart-upsell.zip.
  2. Go to WordPress admin > Plugins > Add New Plugin > Upload Plugin.
  3. Choose the ZIP and click Install Now.
  4. Click Activate Plugin.
  5. Open Smart Upsell from the WordPress admin menu.

Updating

When an update package is available, the WordPress updater can show it after a valid purchase code has been activated. You can also update manually by uploading the new ZIP and choosing to replace the existing plugin.

Always back up the database before updating a WooCommerce extension on a production store.

Quick start

  1. Open Smart Upsell > Frequently Bought Together and enable the widget.
  2. Choose the recommendation source: automatic, manual or hybrid.
  3. Set a bundle discount if you want to reward shoppers for buying the complete set.
  4. Open Recommendation Engine and click Recompute recommendations.
  5. Enable Order Bumps or create a targeted campaign for a specific product or category.
  6. Visit a product page, cart and checkout as a shopper to confirm the surfaces are visible.
  7. Open Analytics after traffic starts to review impressions, clicks, add-to-cart events and attributed conversions.

Dashboard map

TabPurpose
OverviewRevenue summary, quick actions, status and resource links.
Frequently Bought TogetherProduct-page and cart bundle settings.
Order BumpsCheckout bump and Double the Order settings.
UpsellsRecommended products and exit-intent popup behavior.
Smart BundlesAutopilot bundle generation from recommendation data.
Next CouponPost-order coupon generation and email output.
CampaignsTargeted offers with conditions, schedule and priority.
AnalyticsAttribution, funnel, holdout and product performance reports.
DesignWidget copy, CTA labels, colors and A/B copy.
Recommendation EngineMarket-basket thresholds and recompute schedule.
SettingsPrivacy, cleanup, margin protection and advanced behavior.
LicenseOptional purchase-code activation for updates and support entitlement.

Frequently Bought Together

The FBT widget shows a set of related products and lets shoppers add selected items to the cart together. The bundle discount is applied server-side in the WooCommerce cart.

Sources

  • Automatic: uses market-basket recommendations generated from completed orders.
  • Manual: uses products selected by the merchant.
  • Hybrid: starts with manual selections and fills missing slots with automatic recommendations.

Product-level manual bundles

Edit a WooCommerce product and use the wpezo FBT metabox to choose manual related products for that product. This is useful for curated kits, accessories and bundles that must stay stable regardless of order history.

Smart Bundle Autopilot

Smart Bundle Autopilot can turn strong recommendation pairs into active FBT campaigns. It is designed for merchants who want the store to keep surfacing strong bundles without hand-curating every offer.

  • Uses recommendation metrics such as support, confidence and lift.
  • Can create bundle campaigns from the admin interface.
  • Can refresh top bundles after recommendation recomputes when enabled.
If margin protection is enabled and cost data is available, discounts may be capped to preserve the configured margin floor.

Campaigns

Campaigns let you run targeted offers with their own type, products, audience rules, schedule and priority. When more than one campaign matches a shopper, the highest-priority campaign wins.

Campaign typeWhere it appearsTypical use
FBTProduct page or cart surfacesCurated bundles for a product or category.
UpsellRecommended-products surfacesShow premium alternatives or complementary products.
Order bumpCheckoutOffer one low-friction add-on before payment.
Post-purchaseThank-you pageOffer a related product immediately after checkout.
Add-onProduct/cart add-on surfacesGift wrap, warranty, insurance, setup services or accessories.

Order bumps and Double the Order

Order bump

The checkout order bump displays a highlighted add-this offer in classic checkout and block checkout. The selected product is added to the cart and the discount is applied server-side.

Double the Order

Double the Order shows a checkout offer that adds a discounted second copy of each current cart item. It is useful for consumables, repeat purchases and low-complexity products.

Because discounts are applied by WooCommerce cart calculations, always test with your active tax, shipping, coupon and payment setup.

Upsells and exit intent

Upsell surfaces can recommend additional or alternative products on product, cart and checkout-related contexts. The exit-intent popup can show a last-chance offer when a desktop shopper appears to be leaving.

  • Use upsells for premium alternatives, add-on accessories or product discovery.
  • Use exit intent carefully; keep the message short and the offer relevant.
  • Disable exit intent for stores where popups conflict with theme or compliance requirements.

Post-purchase offers

Post-purchase offers appear on the WooCommerce thank-you page after an order is placed. For pay-later/offline gateways, accepted offers can be added to the existing order. For prepaid gateways, the default behavior adds the product to cart and sends the shopper through checkout unless a supported off-session charge integration is added with filters.

This is not a universal off-session charge system for every payment gateway. Test each gateway before advertising the flow as true one-click post-purchase charging.

Product add-ons

Add-ons appear as opt-in selections on product and/or cart surfaces. Each selected add-on is added to the cart as a normal WooCommerce product.

  • Recommended for gift wrap, warranty, protection, installation or accessory products.
  • Use clear product names and prices because the add-ons become cart line items.
  • Campaigns can target add-ons by product, category or broader cart conditions.

Next-order coupons

Next-order coupons encourage repeat purchases by generating a WooCommerce coupon after an order. Coupons can be locked to the buyer email, single-use and set to expire automatically.

  1. Enable Next Coupon.
  2. Set the coupon amount and expiry window.
  3. Optionally set a minimum order amount.
  4. Place a test order and check the thank-you page and customer email.

Analytics

The analytics tab reports impressions, clicks, add-to-cart events, attributed conversions and revenue. A small holdout group can be used to compare exposed shoppers with shoppers who did not see offers, giving a conservative estimate of lift.

  • Use attribution data to identify surfaces that produce add-to-cart and revenue.
  • Use holdout data as directional, not as a full experimentation platform.
  • For low-traffic stores, allow enough time before reading conversion-rate changes.

Recommendation engine

The recommendation engine analyzes completed WooCommerce orders and scores product pairs using market-basket metrics.

MetricMeaning
SupportHow often a pair appears across analyzed orders.
ConfidenceHow often product B is bought when product A is bought.
LiftHow much stronger the pair is than random co-occurrence.

If recommendations are empty, use manual or hybrid bundles until the store has enough completed order data.

Design and A/B copy

The Design tab controls storefront wording, button labels and visual accents. Variant B copy can be used to compare add-rate against the default copy.

  • Keep headings short and specific to the offer.
  • Use CTA text that describes the shopper action, such as "Add all" or "Add selected".
  • Test copy changes over enough traffic before selecting a winner.

Shortcode and block

The plugin includes a shortcode and a Gutenberg block for rendering the FBT widget where supported.

[wpezo_su_fbt]

Use the shortcode in product-aware contexts. If used outside a product context, the plugin may not have enough information to resolve recommendations.

The Gutenberg block is dynamic; storefront output is rendered server-side and hydrated by the frontend script.

Privacy and licensing

Local store features

Recommendations, campaign matching, storefront rendering and analytics storage run inside WordPress/WooCommerce. Analytics session identifiers are hashed and should not be treated as customer profiles.

Optional license/update service

License activation is optional for store functionality. When a merchant activates a purchase code, the plugin sends the purchase code, site URL and plugin version to the wpezo license/update service. Active licenses may then check for update metadata.

The plugin should not contact the wpezo update endpoint during activation, normal admin page loads or WordPress update checks before a license has been activated.

Compatibility

  • WooCommerce HPOS: supported through WooCommerce CRUD APIs.
  • Cart/Checkout Blocks: supported through frontend integration and REST hydration.
  • Classic checkout: supported through WooCommerce hooks.
  • Cache plugins: storefront placeholders hydrate through REST, which helps with page caching. Always test the final cache setup.
  • Themes: the frontend CSS is scoped, but theme CSS can still affect spacing and typography. Test product, cart, checkout and thank-you templates.

Uninstall and data cleanup

Deactivation is a soft stop: scheduled tasks are cleared, but plugin settings and custom tables are preserved. Full cleanup happens only when uninstalling and when the merchant has enabled the plugin's data removal setting.

Before uninstalling on a production store, export any analytics or campaign data you may need later.

Developer hooks

Product cost for margin protection

add_filter( 'wpezo_su_product_cost', function ( $cost, $product_id ) {
    if ( $cost > 0 ) {
        return $cost;
    }

    return (float) get_post_meta( $product_id, '_my_cost_field', true );
}, 10, 2 );

Post-purchase offline gateways

add_filter( 'wpezo_su_post_purchase_offline_gateways', function ( $gateways ) {
    $gateways[] = 'cod';
    $gateways[] = 'bacs';
    return $gateways;
} );

Custom post-purchase charge integration

add_filter( 'wpezo_su_post_purchase_charge', function ( $charged, $order, $product, $amount ) {
    // Return true only after your gateway has successfully charged the customer.
    return $charged;
}, 10, 4 );

License/update configuration

add_filter( 'wpezo_su_envato_item_id', function () {
    return 'YOUR_ENVATO_ITEM_ID';
} );

add_filter( 'wpezo_su_license_server', function ( $endpoint ) {
    return $endpoint;
} );

add_filter( 'wpezo_su_license_signature_key', function ( $key ) {
    return $key;
} );

Lifecycle actions

  • wpezo_su_activated fires after plugin activation tasks.
  • wpezo_su_deactivated fires after plugin deactivation tasks.
  • wpezo_su_booted fires after the plugin container has booted.
  • wpezo_su_log fires when the internal logger records an event.

Troubleshooting

Recommendations are empty

  • Confirm there are enough completed WooCommerce orders.
  • Lower support/confidence/lift thresholds temporarily.
  • Run Recompute recommendations.
  • Use manual or hybrid bundles for important products.

Widgets do not appear

  • Check that the relevant surface is enabled.
  • Confirm the product or campaign targeting rules match the current cart/product.
  • Clear object/page cache and click Clear widget cache.
  • Check the browser console and WordPress debug log.

Checkout offer discount does not match expectation

  • Review coupons, taxes, shipping, custom fees and other discount plugins.
  • Check margin protection settings and product cost data.
  • Test with only WooCommerce and wpezo Smart Upsell active on staging.

Support checklist

When requesting support, include:

  • WordPress, WooCommerce, PHP and plugin versions.
  • Theme name and version.
  • Whether HPOS is enabled.
  • Whether checkout uses Blocks or classic shortcode checkout.
  • Exact page URL and steps to reproduce.
  • Relevant screenshots, console errors and debug log entries.