Cart Add-ons

The cart makes room it already had.

One more item, offered inside the cart the shopper has already built — ticked in place, counted in the open, and nothing standing between them and checkout.

WooCommerceBuilt for WordPress · WooCommerce

A LUMÉ demo store, on its cart page. The cart already holds two lines and three units: Classic White Tee at $18.00 with a quantity of two, so $36.00; Zip Hoodie at $54.00. The Subtotal reads $90.00, shipping is calculated at checkout, and the Total is therefore $90.00 as well. The cart badge in the store header reads 3, because it counts units rather than lines — that is why the tee with a quantity of two contributes two. Inside the Zip Hoodie’s own row, below its title and above its Remove link, sits the one element SalesMax draws: a block headed Add-ons carrying a Best offer badge and two unticked checkboxes, one per suggested product: Canvas Tote Bag, listed at $39.00 and offered at $31.20, and Ankle Socks · 3-pack, listed at $12.00 and offered at $9.60. Both are 20% off — LUMÉ’s own rule, not the plugin’s. A pointer crosses to the Canvas Tote Bag’s checkbox and ticks it once; the socks box is never ticked, so nothing it lists reaches the cart and no figure on the stage moves for it. A third line lands in the cart table below the hoodie, flagged Add-On, with its own price, its own subtotal of $31.20 and a plain quantity of one rather than a stepper. The Subtotal counts up to $121.20; the Total follows it only once the count has settled, so no half-counted figure is ever printed; the store header tally follows the Subtotal and the badge steps from 3 to 4. The pointer then crosses to the totals column, rests on the arithmetic, moves down to Proceed to checkout and presses it once. The button lights and the loop ends there — nothing navigates, no page changes. Nothing dims, nothing floats over the page and no popup appears at any point. The two original rows, their quantities and their line subtotals never change, and neither does the step breadcrumb. After a pause the cart is cut back to its opening state and the loop restarts; that cut is instant, never an animation, because a cart total seen counting downwards would stage a removal that never happens here.

LUMÉ is a demo store — every product, price, discount and total is its catalogue’s, not the plugin’s.

▲ typically +10–30%** A range, not a figure, and printed here with no unit because the source carries none: SalesMax’s own booster registry prints exactly “typically +10–30%” for cart-page offers, and 8theme publishes no study behind it and no measurement of its own. Read it as 8theme’s own unsourced range for offers of this type — not a study, not a promise and not a SalesMax measurement. Where 8theme does attach a unit to the same range, on its own landing page, it calls it average order value. Your own number appears per booster in the SalesMax dashboard.

A LUMÉ demo store, on its cart page. The cart already holds two lines and three units: Classic White Tee at $18.00 with a quantity of two, so $36.00; Zip Hoodie at $54.00. The Subtotal reads $90.00, shipping is calculated at checkout, and the Total is therefore $90.00 as well. The cart badge in the store header reads 3, because it counts units rather than lines — that is why the tee with a quantity of two contributes two. Inside the Zip Hoodie’s own row, below its title and above its Remove link, sits the one element SalesMax draws: a block headed Add-ons carrying a Best offer badge and two unticked checkboxes, one per suggested product: Canvas Tote Bag, listed at $39.00 and offered at $31.20, and Ankle Socks · 3-pack, listed at $12.00 and offered at $9.60. Both are 20% off — LUMÉ’s own rule, not the plugin’s. A pointer crosses to the Canvas Tote Bag’s checkbox and ticks it once; the socks box is never ticked, so nothing it lists reaches the cart and no figure on the stage moves for it. A third line lands in the cart table below the hoodie, flagged Add-On, with its own price, its own subtotal of $31.20 and a plain quantity of one rather than a stepper. The Subtotal counts up to $121.20; the Total follows it only once the count has settled, so no half-counted figure is ever printed; the store header tally follows the Subtotal and the badge steps from 3 to 4. The pointer then crosses to the totals column, rests on the arithmetic, moves down to Proceed to checkout and presses it once. The button lights and the loop ends there — nothing navigates, no page changes. Nothing dims, nothing floats over the page and no popup appears at any point. The two original rows, their quantities and their line subtotals never change, and neither does the step breadcrumb. After a pause the cart is cut back to its opening state and the loop restarts; that cut is instant, never an animation, because a cart total seen counting downwards would stage a removal that never happens here.

Live Sales Notifications
Cart Add-ons Runs on the cart page
Cart Page Upsells

Where it shows

Inside a cart row. Not over it.

The article’s prose is vague — “a visually integrated block of product suggestions directly on the Cart page” — but its frontend captures and admin preview are not.

What the documentation does not place, and this page therefore does not claim.

Every field name, option and default on this page is read off one article: 8theme’s Cart Add-ons, dated 12 January 2025. Nothing was invented to fill a gap, and where the article is silent this page says so. One placement is documented and it is the one drawn above. There is no position picker anywhere in the article, no second slot and no list of pages. Everything below is unanswered by the source, so nothing here is asserted either way — check each on a staging copy before you build on it:

  • Whether the block can be moved at all. No position setting appears in any screenshot.
  • The mini-cart, the cart drawer, the block cart and checkout. None is mentioned; every rendering shown is a classic cart table.
  • How many rows carry a block at once, and whether there is a per-cart cap. The screenshots show one.
  • How many products a block lists. The only published number is a plugin-wide Maximum number of products to list of 20, and the article never says whether it governs this block.
  • What unticking does. Ticking is documented; unticking is not.
  • How the discount reaches the line, as a price or a coupon. Discount type and value are real settings; the route to the line is not written down, so the demo draws it as a price.
  • Any name the block prints. It prints none — the dashed SalesMax tag and the sweeping outline on every drawing here are this page’s own marks for the single element the plugin draws; the cart table, the totals panel and the added line are WooCommerce’s.
  • An empty cart. Never mentioned, and there is no empty state or fallback setting. Every documented rendering nests inside a cart line, so no lines plausibly means no block — plausibly, which is not documented.
  • Ordering, de-duplication and stock filtering. The troubleshooting list asks you to check stock yourself, which implies they are not automatic.
  • Variable products at add time. A variation does appear on the added line, so variations reach the cart — how one gets chosen is not written down.

Confirmed and worth stating plainly: the booster is described as fully responsive on desktop and mobile, and the admin preview carries desktop and mobile toggles alongside an Advanced preview button.

Templates & appearance

Two templates, two strings, one colour.

A two-entry design picker and exactly two strings — the admin’s whole list, so the whole control set here.

Template
Accent (preview)
Cart page · inside a qualifying row

The math

The math, disclosed.

An attach rate, not a conversion rate — the cart was already full. Say 400 orders, 12 in 100 tick the box, an add-on worth $30: 400 × 12% × $30 = +$1,440/mo. Press the keys.

Monthly orders
400
Tick the box
12%
One add-on is worth
$30
Extra revenue example
extra revenue in this example

The control room

What fills it, what it costs, how many.

Three decisions carry this booster — products, discount, quantity. Everything else is targeting; the cards beside it flag what is left to check on your own store.

Cart-page booster illustrative

Tap the chips — the rule sentence rewrites itself. Every chip here is an option the article names.

Products — the suggestion method
Discount type
Cart item quantity
Filter logic
Optional settings

What you set on this booster
Products — five ways to fill the block

One radio, five mutually exclusive options: WooCommerce’s own Related products (matched on shared tags or categories), the Cross-sell or Upsell products from the product’s Linked Products panel, Custom products, or Specific products you find with the product search. Two cautions: the Custom option is absent from the prose and its tooltip is cut off mid-sentence in the only screenshot, so what separates it from Upsell is genuinely unclear — and none of the five descriptions says the block reads what is already in the cart.

Discount type, and a value

A dropdown and one number field. No discount shows regular prices. Percentage discount (%) takes a percentage off each product individually. Fixed discount ($) takes an amount off each. Free makes the selected product $0.00 in the cart. On the frontend a discount renders as the struck-through original beside the new price in the accent colour. The article’s own examples: $3 off each add-on for simple bundles, or 20% off each for accessories.

Cart item quantity

Three modes. Sync quantity with main product quantity matches the trigger item — two of the parent, two of the add-on. Allow customer to change quantity gives them a stepper in the cart. Fixed quantity locks it, and a Value field sits underneath: the screenshot shows 12, so “fixed” does not mean “one”. The frontend capture corroborates it — the added line shows a plain number where the parent row shows a stepper.

Apply to — five targets, two logics

All Products, Specific Products, Product Categories, Product Tags or Product SKUs, evaluated with Match any (OR) or Match all (AND). What the docs do not say is which product they are evaluated against on a cart page — each line item on its own, or the cart as a whole. The screenshot showing one block under one row implies per-line-item; the article never states it.

Conditions, on top of the filters

A separate optional panel: “Add conditions if you would like to personalize based on the items in the cart, order total etc.” The full list is grouped — Order: products, categories, tags, SKUs, number of line items, item quantity, applied coupons, order total. Purchase history: first order, number of orders, orders with specific products, total spent. User: role, logged in, specific users. Date & time: time, days. The operators, and whether several conditions are ANDed or ORed, are not published.

What every SalesMax booster gets
You create it like any other booster

SalesMax → Sales Boosters → + New Booster, choose Cart Add-ons as the booster type, name it, configure it and save.

Optional Settings: priority and a date window

The panel at the foot of the configuration holds Priority (10 in the screenshot), a Start date, a Set end date checkbox and the End date it reveals. Scheduling is day-granular, not hour-granular — for a time-of-day window you use Conditions → Date & Time → Time instead. What Priority actually orders, which direction wins and what timezone the dates use are all unpublished.

Set once, plugin-wide — not per booster
Maximum number of products to list = 20

Settings → Boosters → Listing. It is a global cap across boosters, and the article never says whether it governs how many rows this block shows. There is no per-booster row limit anywhere in the screenshots.

Discount calculate from

Settings → Boosters → General: “You can choose either the regular price or the sale price to calculate a discount.” It reads Regular price in the screenshot. Beside it sits the toggle that excludes already-discounted products from a second discount — shown off, and its exact label is hidden behind an open tooltip in the only capture we have.

“Smart upsell products display”

A plugin-wide toggle in the same panel, shown off, with its tooltip not visible. We cannot tell you what it does or whether it touches this booster, and we are not going to guess at a setting with that name.

If nothing shows on the cart page
The article’s own checklist, in full

Confirm the booster is enabled. Ensure conditions match the current cart state. Check the add-on products are published and in stock. Make sure no conflicting plugins or boosters are overriding the cart content. Test without caching or page-optimisation plugins temporarily. Try viewing the cart as a guest and as a logged-in user to verify visibility logic.

What is not measured here

An Analytics section exists plugin-wide, but nothing booster-specific is documented for this one — no attach rate, no per-block reporting, no A/B split. Translation and RTL specifics, AJAX behaviour and theme compatibility beyond that generic conflict warning are likewise unpublished.

FAQ

Questions merchants actually ask

Can I show different add-ons for different products?

Yes. The documentation’s own answer is “Use conditions to display different boosters or offers based on what’s in the cart.” In practice that means one booster per offer: build several, point each at its own products, categories, tags or SKUs under Apply to, and use the Conditions panel — products in the order, categories, tags, SKUs, line-item count, item quantity, applied coupons, order total, and more — to decide which one runs. What is not documented is how two boosters that both qualify on the same cart behave together. A Priority field exists in Optional Settings, but nothing published says what it orders or whether a high number wins, so test that combination on a staging copy before you rely on it.

Will the add-ons affect shipping calculations?

Yes, if the suggested product has weight or dimensions — WooCommerce will update totals accordingly. That is the documentation’s answer in full, and it follows from the mechanism: once ticked, the add-on becomes a standard WooCommerce line item, so shipping treats it like any other product in the cart. Tax and coupon interaction is a different question, and one the article does not answer: whether the discount is applied as a real price change or as a coupon is nowhere stated, so how it lands alongside your own coupons and tax rules is worth checking before a sale rather than during one.

Can customers remove the add-ons from the cart?

Yes. They behave like standard WooCommerce products and can be removed like any other item — the added line carries its own Remove link, its own price and its own subtotal, exactly like the rows above it. One thing the documentation does not cover: what happens if the shopper instead unticks the checkbox in the block that offered it. Ticking is documented as the way in; unticking is not documented as a way out, and in the article’s screenshots the box stays ticked and the block stays visible after the item is added. Assume the Remove link is the reliable route until you have tested the other.

Can the shopper change how many of the add-on they get?

That is your choice, and it is a single setting called Cart item quantity with three modes. Sync quantity with main product quantity matches the item that triggered the booster — two of the parent, two of the add-on. Allow customer to change quantity gives them a stepper on the added line in the cart. Fixed quantity locks it, and the Value field beneath the dropdown sets the number: the documentation’s screenshot shows 12, so “fixed” does not have to mean one. What is not published is whether that Value field also applies in the other two modes, what Sync does if the parent quantity later changes or the parent is removed, and how stock limits are handled — so if you plan to sell a fixed multi-pack this way, test it against a low-stock product first.

Nothing is showing on my cart page. What do I check?

Run the documentation’s own list, in order: confirm the booster is enabled; ensure conditions match the current cart state; check the add-on products are published and in stock; make sure no conflicting plugins or boosters are overriding the cart content; test without caching or page-optimisation plugins temporarily; and try viewing the cart as a guest and as a logged-in user to verify visibility logic. Two of those are worth reading twice. “Ensure conditions match the current cart state” is the only place the documentation acknowledges that cart contents gate the block at all — so an empty or non-qualifying cart is the first thing to rule out. And “check the add-on products are published and in stock” implies the booster does not filter unpurchasable items for you, so a sold-out suggestion may simply produce nothing.

Works well with

The rest of what the cart page can do.

This block is one thing that can happen on a cart page. The row starts with the boosters that share the same screen, then runs through the rest of the suite.

Use the left and right arrow keys to scroll this list.

Cart Page Upsells

Small upgrades and companion products, one tap from the cart summary.

▲ +29% sales*Learn more

Free Shipping Bar

“You’re $11 away from free shipping” — the most effective sentence in e-commerce.

▲ +30% AOV*Learn more

Checkout Offers

A last relevant order bump right before payment — accepted with one checkbox.

▲ +35% conversions*Learn more

Frequently Bought Together

Show the products that naturally belong with this one, added in one click.

▲ +35% sales*Learn more

Smart Recommendations

Condition-based suggestions by category, cart contents, order history or totals.

▲ +31% revenue*Learn more

Product Add-Ons

Offer catalogue extras on the product page — ticked in one go, each with its own discount.

▲ +20% AOV*Learn more

Upsell Popups

A relevant offer the moment something is added to cart — one popup, not a maze.

▲ +20% conversions*Learn more

Stock Scarcity

Live inventory counts that create honest urgency — real stock levels, never fabricated.

▲ +17% conversions*Learn more

Live Sales Notifications

Subtle purchase notifications — from your real recent orders, or from name lists you write.

▲ +15% conversions*Learn more

Buy More, Save More

Tiered quantity discounts that make the bigger order the obvious choice.

▲ +30% order value*Learn more

Goal Order Discount

“Spend $80, get 10% off” — tiered rewards that pull the total upward.

▲ +18% avg. spend*Learn more

One-Click Double Order

Let buyers duplicate their purchase with a single click — popular for consumables and gifts.

▲ +73% uptake*Learn more

Thank You Page Offers

Upsells on the order-confirmation page, where trust is already established.

▲ up to 3.1% conversion*Learn more

Post-Purchase Offers

One-click additions right after “Place order” — no re-entering payment details.

▲ +10% revenue*Learn more

Next Order Coupon

A unique coupon — the reason they come back.

▲ +25% repeat orders*Learn more

* Industry benchmarks and vendor-observed averages for each booster type — not a guarantee.

Cart Add-ons

One more line, on the way past.

The cart is the last page where a shopper is still deciding — and every booster in the suite, on every plan, no feature gating, ever.

SalesMax — from $5/mo14-day money-back guarantee
Get SalesMax