Promo Cart Progress Bar for Magento 2

Cart progress bar for Magento 2: "Spend £18.00 more for free shipping" with several milestones (free shipping, free gifts, discount tiers, your own milestones) in the mini cart, cart, a sticky top bar and on product pages, plus upsell suggestions that close the gap. Luma and Hyvä.

  • Magento 2.4.7 – 2.4.9
  • PHP 8.2 – 8.5
  • Hyvä and Luma
  • Version 1.4.0
$149

One-off payment, with 12 months of updates.

What is included

  • Install with Composer, or download a zip from your account
  • Licence for one production domain, staging and development copies included

No subscription or automatic renewal. Keep using the versions included in your update period. Update and licence details

Key features

  • Several milestones on one bar, reached ones ticked
  • Free shipping, free gift and tiered discount thresholds found automatically
  • Your own milestones with groups, websites and dates
See all features

Composer package commercegears/module-promo-cart-progress-bar

  • Bigger baskets

    Customers see exactly how much more unlocks the next reward, and which products would get them there.

  • No double setup

    Free shipping minimums, free shipping rules, Free Gift rules and Tiered Discounts tiers become milestones on their own.

  • See what it does

    Carts and orders that reached each milestone, upsell clicks and adds, and the average order value of those orders.

All features

What is included

Milestones

  • Free Shipping method minimum and free shipping cart rules
  • CommerceGears Free Gift and Tiered Discounts when installed
  • Own milestones with groups, websites and dates
  • Sources on or off, with a sort order

Storefront

  • Mini cart and Hyvä cart drawer
  • Cart page with a list of milestones
  • Optional sticky bar on all pages
  • Product page line when the item reaches the next milestone
  • Messages with placeholders per store view

Upsell

  • 1 to 4 products priced to close the gap
  • Cross-sells, related, up-sells, a category or bestsellers
  • Add to cart without leaving the page
  • Cached per price band, store and customer group

Reports and tools

  • Carts and orders per milestone with CSV export
  • Average order value with and without a milestone
  • Promotions Overview integration
  • CLI preview of the bar for any cart amount

Live demo

Try it before you install it

A full Magento store with the module installed, on Luma and on Hyvä. The admin demo signs you in with one click.

Compatibility

Requirements and compatibility

Compatibility of Promo Cart Progress Bar
Magento2.4.7 – 2.4.9
PlatformsMagento Open Source and Adobe Commerce (one price)
Storefront themes Luma Blank Hyvä
PHP8.2 – 8.5
Latest version 1.4.0
composer.json requires php ~8.2.0||~8.3.0||~8.4.0||~8.5.0 magento/framework ~103.0.7 commercegears/module-core ^2.2 free, installed by Composer with this module commercegears/module-promo-core ^2.1 free, installed by Composer with this module magento/module-backend * magento/module-catalog * magento/module-catalog-inventory * magento/module-checkout * magento/module-config * magento/module-customer * magento/module-quote * magento/module-sales * magento/module-sales-rule * magento/module-store * magento/module-ui *

Installation

Up and running in minutes

After you buy, create a Composer key in your account. Then, in the root of your Magento project:

  1. 01Add the repository and your key (once per project)

    composer config repositories.commercegears composer https://repo.commercegears.com
    composer config --auth http-basic.repo.commercegears.com PUBLIC_KEY PRIVATE_KEY
  2. 02Install the module

    composer require commercegears/module-promo-cart-progress-bar
  3. 03Enable it

    bin/magento setup:upgrade
    bin/magento setup:di:compile
    bin/magento setup:static-content:deploy
    bin/magento cache:flush

    The last three are only needed in production mode.

Prefer a zip? Every version you are entitled to can be downloaded from My modules. More about Composer access

User guide

Setting up Promo Cart Progress Bar

The user guide has its own page: how to install Promo Cart Progress Bar, what each option does and how to use it in your store. Written for version 1.4.0; a copy ships with the module.

In the guide

Read the user guide

Changelog

Release notes

1.4.0

Latest
  • New: milestone reward and description per store view
  • New: {threshold} and {discount} in milestone texts show the amounts in the basket currency

1.3.0

  • Fix: shoppers no longer see the internal name of a cart price rule under a milestone.
  • Improvement: cart and mini cart boxes match the other CommerceGears promo boxes.
  • Improvement: colours follow your Luma or Hyvä theme; new German translation.

1.2.0

  • New: link a milestone to the cart price rule that gives its reward; it then shows as unlocked only when the rule applies
  • New: the milestone page warns when the milestone and its rule differ (amount, websites, groups, coupon, products)
  • Fix: the sticky bar no longer shows the empty cart message while the cart is still loading
  • Improvement: the documentation and admin texts use the names Tiered Discounts and Promo Scheduler

1.1.2

  • Fix: Luma cart: the order summary and checkout button no longer scroll out of reach

1.1.1

  • Improvement: free shipping milestones follow Magento and count the whole basket.

1.1.0

  • New: milestones count only the items their rule counts, so mixed baskets are not unlocked too early
  • New: limit your own milestones to categories or SKUs (Items That Count)

1.0.2

  • Improvement: demo links open a new demo product page.

1.0.1

  • Improvement: demo links for the Luma and Hyvä storefronts and the admin demo.

1.0.0

  • New: first release with a multi-milestone progress bar, item-count hints and upsell suggestions in the cart.

FAQ

Questions, answered

Something else on your mind? The developers who wrote the module answer before and after you buy.

Ask a question →

Already installed it? Open a support ticket

Where do the milestones come from?

From the Promotions core (commercegears/module-promo-core): the Free Shipping method's "Minimum Order Amount", cart price rules without a coupon that give free shipping and have a top-level "Subtotal equals or greater than" condition, CommerceGears Free Gift rules and CommerceGears Tiered Discounts tiers when those modules are installed and switched on, and the milestones you add yourself under CommerceGears > Promotions > Cart Progress Bar: Milestones.

My free shipping rule only covers some products. Does the bar count the whole basket?

Yes, the same way Magento does. Magento checks a free shipping rule's "Subtotal" condition on the whole basket; the "Apply to" conditions only decide which items the reward covers. So the bar counts the whole basket and shows free shipping as unlocked exactly when Magento gives it.

Only two kinds of milestone count some items: Tiered Discounts tiers whose campaign counts only some items, and your own milestones with Items That Count (categories, SKUs). They say "Only qualifying items count" on the cart page.

Does a milestone I add give the customer a discount?

No. Your own milestones only show a reward on the bar. Set up the reward itself as a cart price rule (or in the module that gives it) with the same amount and the same cart amount (subtotal excl. or incl. tax, before or after discounts).

What happens when two rewards need the same amount?

They share one marker and one message, for example "Spend £20.00 more for a free gift and 10% off". The sort order in the Milestone Sources table (and on your own milestones) decides which reward is named first.

Can I hide the milestones of one module?

Yes. Stores > Configuration > CommerceGears > Cart Progress Bar > Milestone Sources: set "Show" to No for that source. "Other Modules" decides for sources that are not listed.

Free Gift and Tiered Discounts already show their own notices. Will customers see two bars?

Both can show. If you prefer only the progress bar, switch off Free Gift's Spend More Notice and the cart and mini cart messages of Tiered Discounts. Their thresholds stay on the progress bar.

How are upsell products chosen?

From the sources you pick (cross-sells, related and up-sell products of the cart items, a chosen category, bestsellers), in that order, keeping only products that are enabled, visible in the catalogue, in stock, not in the cart yet and priced between the amount still needed and that amount plus a percentage (default 30%). Simple and virtual products without required options get an "Add" button; others link to their product page.

Does the bar slow down my pages?

Pages only contain an empty placeholder, so they stay in the full page cache. The bar's data is part of Magento's customer data, which loads after cart changes and logins. Upsell candidates are cached per price band, store, customer group and currency (default 30 minutes).

Does it work with several currencies and tax settings?

Yes. Milestone amounts are in the base currency and shown in the cart's currency. Each milestone is compared with the cart amount its source declares, for example the Free Shipping method's setting "Include Tax to Amount".

What are the lines with "Add 1 more item" under the bar?

Item-count hints. Some rewards count items instead of money, for example a Bundle Builder pack ("Add 1 more item to complete your pack") or a quantity tier ("Add 2 more items for 10% off"). They show under the bar in the mini cart and cart. Switch them off or set how many show under Where to Show the Bar, or hide one source in Milestone Sources.

When is the product page line shown?

Only when the product's own price would reach the next milestone, for example "Add this item and get free shipping". Discounts that would apply to the new item are not taken into account.

What does the report count?

Sessions that saw the bar with items in the cart, upsell clicks and adds, carts that reached each milestone (once per cart), and orders whose cart had reached each milestone, with revenue and average order value compared with all orders that were not cancelled.

Can customers hide the sticky bar?

Yes, with the close button. It stays hidden for the rest of the browser session.

Is it accessible?

The bar uses role="progressbar" with the current value and the message as text, the message is announced politely when it changes, buttons work with the keyboard and the animation is off when the visitor prefers reduced motion.

Support

Help from the developers who wrote it

From the blog

Guides and articles