Description
RewardCrate is a free cart goal bar for WooCommerce. It shows shoppers
how far they are from the next reward, such as free shipping, a free gift or a
discount, and suggests the products that close that exact gap, with a
one-click add button right inside the bar. When a goal is reached, the reward
applies by itself.
Everything runs on your own WordPress site. There is no SaaS, no account to
create, no API key and no per-order fee.
Why store owners choose RewardCrate
- More than a free shipping bar. Set as many goals as you like, each with
its own reward: free shipping, a free gift product, or a percentage or fixed
discount. One progress bar shows every goal as a marker. - Suggestions that fit the gap. A shopper $16 away from free shipping sees
in-stock products priced to get them there, not random best sellers, and
adds one without leaving the cart. - Rewards that apply themselves. The gift drops into the cart at $0, the
discount applies with no coupon code to share, and shipping turns free at
checkout. - Works with your cart. Classic and block cart and checkout, the
Mini-Cart block, a sticky bar, a shortcode and a block. - Shows what it earned. A Stats tab counts orders per goal, revenue from
suggested products and what the rewards cost you.
Perfect for
- Stores that want shoppers to reach the free shipping minimum.
- Raising average order value without a blanket sitewide discount.
- Gift-with-purchase promotions: “Spend $75, get a free sampler”.
- Tiered offers: free shipping at $50, a gift at $75, 10% off at $120.
- Moving accessories and add-ons that complete a bigger purchase.
How it works
- Open WooCommerce > RewardCrate and add your goals: the cart amount
that unlocks each one, its label and its reward. - Choose where the bar shows: cart, checkout, Mini-Cart, a sticky bar on
every page, or anywhere you place the block or the[rewardcrate_goal]
shortcode. - Shoppers see their progress, the next reward and the products that close
the gap. The bar updates live as the cart changes. - A reached goal pays out by itself: free shipping at checkout, the gift line
at $0, or the discount, labelled with your goal’s name. - Check the Stats tab to see orders per goal, suggestion revenue, reward cost
and average order value.
Goals and rewards
- Unlimited goals, each unlocking free shipping, a free gift or a discount.
- Free shipping: make the cheapest paid rate free, or follow the minimum
of your shipping zone’s own Free shipping method. - Free gift: any simple product or variation, added automatically at $0
with its quantity locked. A shopper who removes the gift is not given it
again for that goal. - Discount: a percentage or fixed amount, applied automatically and shown
under your goal’s name. Nothing to type, nothing to leak. - Goals are measured on the cart subtotal before discounts, so an unlocked
discount never pushes the cart back below its own goal. - Decide whether goal discounts combine with coupons marked “Individual use
only”.
Gap-filler suggestions
- Products priced from the gap up to a ceiling you set, so suggestions
actually unlock the next goal. - Your pinned products first, then cross-sells and products from the same
categories as the cart, then best sellers. - Exclude products or whole categories. Out-of-stock, hidden and
already-in-cart products are never suggested. - One-click add from the bar in classic and block carts; variable products
link to their page unless exactly one variation fits. - Fast on large catalogues: it reads WooCommerce’s product lookup table and
caches the results.
Display
- Cart and checkout (classic and block), the Mini-Cart block drawer, a
dismissible sticky bar, a block for any page, and a shortcode. - A celebration when a goal unlocks: confetti or a badge, never animated for
visitors who prefer reduced motion. - Your own colours and messages, with a live preview.
- Keyboard and screen reader friendly, and translation ready.
Built for modern WooCommerce
- High-Performance Order Storage (HPOS) and the Cart and Checkout blocks.
- No custom database tables and no external requests.
- Loads its scripts only on pages that show the bar.
Source code and build
The JavaScript in the build/ folder is compiled from the plugin’s own
human-readable source, which ships inside the plugin:
build/admin.jsfromresources/js/admin/index.tsx(the settings screen)build/widget.jsfromresources/js/widget.ts(the bar in classic carts, the mini-cart widget and the sticky bar)build/blocks.jsfromresources/js/blocks/cart-goal.tsx(the bar in the Cart and Checkout blocks)build/blocks-editor.jsfromresources/js/blocks/editor.tsx(the Cart goal block in the editor)build/goal-bar-editor.jsfromresources/js/blocks/goal-bar-editor.tsx(the standalone goal bar block in the editor)build/coupon-labels.jsfromresources/js/blocks/coupon-labels.ts(goal discount labels in the Cart and Checkout blocks)
Block metadata lives in resources/blocks/ and styles in resources/css/.
No third-party library is bundled: WordPress and WooCommerce packages are
loaded from the site at runtime.
To rebuild the files, install Node.js 20 or newer, then run npm install
and npm run build in the plugin folder. The build uses @wordpress/scripts
(webpack) with the included webpack.config.js.
Screenshots










Blocks
This plugin provides 1 block.
- Cart Goal Progress The shopper's progress towards the cart goals, with suggestions that close the gap. Updates as the cart changes.
Installation
- In your WordPress admin, go to Plugins > Add New, search for RewardCrate, then install and activate it. WooCommerce must be active.
- Open WooCommerce > RewardCrate.
- On the Goals tab, add a goal: the cart amount, a label and the reward. Add as many as you like.
- On the Display tab, choose where the bar shows and set its colours and messages.
- Save, add a product to your cart and watch the bar.
FAQ
-
Is RewardCrate free?
-
Yes. Every feature described here is in the free plugin, with no limits on
goals, products or orders. -
Does it work with the block cart and checkout?
-
Yes. The bar appears in the Cart and Checkout blocks, where you can also move
it with the “Cart goal” block, and in the classic shortcode cart and
checkout. -
Can I show the bar in the Mini-Cart?
-
Yes. With a block theme, open the Mini-Cart template part in the Site Editor
and add the “Cart goal” block to the drawer. Classic themes show it in the
WooCommerce mini-cart widget automatically. -
How do I turn off the sticky bar?
-
Untick Sticky bar at the top of every page on the Display tab.
Shoppers can also close it themselves for the rest of their visit. -
Does the discount push the cart back below its own goal?
-
No. Goals are measured on the cart subtotal before discounts, so an unlocked
discount stays unlocked. -
What happens if the gift product goes out of stock?
-
The gift is skipped and the goal still shows as reached. The event is written
to the WooCommerce log under the sourcerewardcrate, once an hour per
product. -
Can a shopper remove the free gift?
-
Yes. A removed gift is remembered for that visit and not added again for the
same goal. If the cart drops below the goal and reaches it again, the gift is
offered again. -
Can shoppers type a goal’s discount code?
-
No. Goal discounts are virtual coupons that only exist while their goal is
reached. Typed in by hand below the goal, they are rejected like any unknown
code. -
Does it work with multi-currency plugins?
-
Goal amounts are saved in your store currency. When a currency plugin shows
the cart in another currency, convert each goal with the
smcc_threshold_amount filter, which receives the amount and the goal. Amounts
on the bar are formatted with WooCommerce’s own price format, so they follow
the shopper’s currency.WPML with WooCommerce Multilingual:
add_filter( 'smcc_threshold_amount', function ( $amount ) { return apply_filters( 'wcml_raw_price_amount', $amount ); } );Aelia Currency Switcher:
add_filter( 'smcc_threshold_amount', function ( $amount ) { return apply_filters( 'wc_aelia_cs_convert', $amount, get_option( 'woocommerce_currency' ), get_woocommerce_currency() ); } );CURCY – Multi Currency for WooCommerce:
add_filter( 'smcc_threshold_amount', function ( $amount ) { return function_exists( 'wmc_get_price' ) ? wmc_get_price( $amount ) : $amount; } ); -
How are the stats counted?
-
Each order placed while goals are on records the goals it reached, the cart
amount, the reward cost and the revenue from suggested products, in the
order’s own data. The Stats tab totals paid orders from the last 30 days,
refreshed once a day or on demand. -
Is the higher average order value proof that the goals work?
-
Not on its own. The Stats tab compares orders that reached a goal or bought a
suggestion with orders that did neither, and shoppers who reach a goal may
have spent more anyway. It is a correlation, and the tab says so. Measuring
the real lift needs a holdout group that never sees the goals. -
Can I change how the bar looks in my theme?
-
Yes. Set colours and messages on the Display tab, or copy
templates/goal-widget.php toyourtheme/rewardcrate/goal-widget.php
and edit it there. -
Does it send data to an external service?
-
No. Everything runs on your own server and the plugin makes no remote
requests. -
What happens if I uninstall it?
-
Its settings and cached data are removed from every site. The goal details
recorded on past orders are kept, because they are part of those orders’
history. -
Is there a hook for developers?
-
Yes. Among others:
smcc_goal_rulesto change the goals per request,
smcc_threshold_amount to convert amounts,smcc_tier_is_unlockedto veto
a goal,smcc_gap_filler_candidatesandsmcc_gap_filler_rankedto shape
suggestions,smcc_state_datato change what the bar receives, and the
smcc_order_recorded action after an order’s goals are stored.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“RewardCrate – Cart Goals & Rewards Booster for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “RewardCrate – Cart Goals & Rewards Booster for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial release.
