Skip to content

Shipping Goal Progress Bar

Add-on ID: kv_free_shipping_progress_bar · Edition: CS-Cart & Multi-Vendor · Latest version: 1.1.1 · Compatible with: CS-Cart & Multi-Vendor 4.17.2 – 4.21.x, PHP 7.4 – 8.3 · Changelog: view

The add-on shows shoppers how much more they need to spend to unlock free shipping, a free gift or a discount, for example “You are $12.50 away from free shipping”. The bar fills as the cart grows and updates without a page reload after add to cart, quantity changes and item removal. Once the customer reaches a goal, the bar switches to a “reached” state with a short celebration animation.

  • Real goals, no double bookkeeping. In Automatic mode, the free-shipping threshold comes from your manual shipping rates (a cost range that drops to 0) and from cart promotions that grant free shipping. It is calculated for the customer’s own rate area and the vendor’s shipping methods.
  • Promotion tiers. Active cart promotions with a “Subtotal ≥ X” condition (free gift, order discount, …) appear as extra goals on the same bar, with a marker for each tier.
  • Manual threshold per storefront, with optional per-currency amounts (EUR=45, GBP=40).
  • Placements: mini-cart dropdown, cart page, checkout (above the shipping methods), the “Added to cart” popup, the product page, a sticky top/bottom bar, and a Block Manager block you can place anywhere.
  • Live AJAX updates through the CS-Cart AJAX layer (result_ids), with a self-healing refresh for themes and add-ons that use different result IDs.
  • Multi-currency. Amounts are formatted with the store’s common/price.tpl in the visitor’s currency.
  • Multi-Vendor aware. Free shipping is shown per vendor when the cart is split across vendors.
  • Accessible. role="progressbar" with aria-valuenow/aria-valuetext, a polite live region, and support for prefers-reduced-motion.
  • Theme-agnostic styling. Scoped CSS, colors as CSS custom properties, admin color settings, and RTL support.
  • All texts are language variables with [amount] / [goal] placeholders.
CS-Cart / Multi-Vendor 4.17.2 – 4.21.x (tested on CS-Cart 4.17.2, Multi-Vendor 4.17.2 and Multi-Vendor 4.21.2)
PHP 7.2.5 – 8.3 (the code is PHP 7.4-compatible; tested with PHP 8.1 and 8.3)
Themes Responsive and Bright theme, plus child themes based on Responsive

On every storefront render, the add-on reads the session cart and builds a list of goals. Free shipping is detected from the cart’s product groups and their shipping methods, with promotions or the manual threshold as the other sources. Promotion goals are the cart promotions that would apply if the subtotal reached their “Subtotal” condition, checked with the core promotion engine. Each goal is placed on one axis, the cart subtotal, so several goals can share a single bar. The bar markup sits in containers whose IDs match the core AJAX wildcards (cart_status*, checkout*). Core AJAX responses therefore re-render it automatically. Each storefront AJAX response also carries a cart fingerprint, and a small script refreshes any bar that is still out of date.