The Rules Engine gives you precise control over when Order Bumps appear at checkout. Instead of showing the same offer to everyone, you can target specific customer segments, cart states, or purchase patterns. This means you can display the right offer at the right moment, which typically leads to higher conversion rates on your bumps.
Rules work on AND logic, meaning all conditions must be true for your Order Bump to display. This lets you create highly targeted offers. For example, you could configure a bump to show only when the cart contains Product X, the customer has ordered before, and the subtotal exceeds $100. All three conditions would need to be met.
Adding Rules to an Order Bump
To add display rules, open any Order Bump for editing and scroll down to the Display Rules section. Click the Add Rule button to add your first condition. You can add as many rules as you need, but keep in mind that every rule must pass for the bump to show. More rules means more specific targeting, but it also means a smaller audience.
Rule Categories
Rules are organized into four categories based on what they evaluate. Understanding these categories helps you choose the right rules for your targeting goals.
- Cart Rules evaluate what’s currently in the customer’s cart
- Customer History Rules look at the customer’s past purchasing behavior (these require the customer to be logged in)
- Product Rules check the inventory status of specific products in your store
- Checkout Context Rules evaluate location and user role information
Cart Rules
Cart rules are the most commonly used rules because they respond to immediate purchase intent. They evaluate what’s happening in the current shopping session, so they work for both logged-in customers and guests.
Cart Contents
This rule checks whether the cart is empty, not empty, or contains specific items. It’s the most versatile cart rule because it can match against products, categories, tags, or global attributes.
Available conditions:
- Empty checks if the cart has no items. This is rarely useful for bumps since checkout requires at least one item, but it’s available if you need it.
- Not Empty passes when the cart has at least one item.
- Contains (Products) checks if the cart includes specific products you select.
- Contains (Categories) checks if the cart includes items from specific categories.
- Contains (Tags) checks if the cart includes items with specific product tags.
- Contains (Global Product Attributes) checks if the cart includes items with specific attributes like color, size, or material.
When you use any of the “Contains” conditions, you’ll also need to select an operator that determines how the matching works:
- At least one of the selected means the rule passes if any of your selections are present in the cart. Use this when you want to target a group of related products or categories.
- All of the selected means every item you selected must be present for the rule to pass. This is useful for bundle-style promotions.
- None of the selected inverts the logic. The rule passes only if none of your selections are in the cart. This works well for exclusion scenarios.
Example: A camera store wants to show a lens cleaning kit bump to customers buying cameras. They would set Cart Contents to “Contains (Categories)” with “At least one of the selected” and choose their Cameras and Camera Lenses categories.
Cart Total Quantity
This rule counts the total number of items in the cart across all products. It’s useful for volume-based promotions where you want to reward customers buying multiple items, regardless of what those items are.
Operators available: Is equal to, Is not equal to, Is greater than, Is less than, Is greater than or equal to, Is less than or equal to
Input: Enter a whole number representing the item count.
Example: An apparel store wants to show a bulk discount bump when customers are buying 5 or more items. They would set Cart Total Quantity to “Is greater than or equal to” with a value of 5.
Cart Subtotal
This rule evaluates the cart’s subtotal value before shipping and fees. It’s perfect for threshold-based offers like free shipping upgrades or percentage discounts. The calculation automatically excludes any Order Bump items that have already been added, which prevents circular logic issues. Tax handling follows your store’s display settings.
Operators available: Is equal to, Is not equal to, Is greater than, Is less than, Is greater than or equal to, Is less than or equal to
Input: Enter the currency amount as a number without the currency symbol.
Example: A store offers free shipping at $100 and wants to show an expedited shipping upgrade bump to customers who are close to that threshold. They would set Cart Subtotal to “Is greater than or equal to” with a value of 75, targeting customers who are within $25 of qualifying for free shipping.
Quantity of Product in Cart
This rule counts how many of a specific product are currently in the cart. Unlike Cart Total Quantity which counts all items, this lets you target customers buying multiples of a particular product.
To configure this rule:
- Select the product or products you want to check. You can select multiple products, and the rule will sum their quantities.
- Choose a comparison operator.
- Enter the quantity threshold.
Example: A coffee roaster wants to show a subscription offer when customers buy 3 or more bags of the same coffee. They would select their “Coffee Beans 12oz” product, set the operator to “Is greater than or equal to,” and enter 3 as the value.
Quantity of Category in Cart
This rule counts the total quantity of items from specific categories. It’s similar to the product quantity rule but works at the category level, making it useful when you have many products in a category and want to target volume buyers.
To configure this rule:
- Select the category or categories you want to check.
- Choose a comparison operator.
- Enter the quantity threshold.
Example: A wine shop wants to show a wine accessories bump when customers are buying more than 2 bottles. They would select their “Wine” category, set the operator to “Is greater than,” and enter 2.
Cart Coupons
This rule checks whether specific coupons are applied to the cart. You can use it to show different offers to customers using discount codes versus those paying full price.
Available conditions:
- Has coupon passes when one or more specific coupons are applied. Enter the coupon codes separated by commas.
- No coupon passes when no coupons are applied to the cart.
Example: A store wants to show a premium upgrade bump only to customers paying full price, since those customers might be more receptive to add-ons. They would set Cart Coupons to “No coupon.”
Customer History Rules
Customer history rules look at the customer’s past order history to personalize offers based on their relationship with your store. These rules open up powerful segmentation options like targeting first-time buyers differently from repeat customers, or showing replenishment offers based on past purchases.
Important: Customer history rules require the customer to be logged in. For guest checkouts, these rules return false, which means the rule doesn’t pass. Plan your rule combinations accordingly. If you want a bump to show for guests, either avoid customer history rules entirely or create a separate bump that targets guests specifically.
All customer history calculations only consider orders with a completed status.
Customer History: Total Spent
This rule looks at the customer’s lifetime spending at your store. It’s useful for identifying your high-value customers and offering them exclusive perks or premium products.
Operators available: Is equal to, Is not equal to, Is greater than, Is less than, Is greater than or equal to, Is less than or equal to
Input: Enter a currency amount as a number.
Example: A store wants to show a VIP loyalty reward bump to customers who have spent over $500 lifetime. They would set Total Spent to “Is greater than” with a value of 500.
Customer History: Average Order Value
This rule calculates the customer’s average order value across all their completed orders. It helps you identify spending patterns and target customers who typically make larger purchases.
Operators available: Numeric comparison operators
Input: Enter a currency amount as a number.
Example: A jewelry store wants to show premium pieces as bumps to customers whose average order exceeds $150. They would set Average Order Value to “Is greater than” with a value of 150.
Customer History: Total Orders
This rule counts how many completed orders the customer has placed. It’s one of the most useful customer history rules because it lets you easily distinguish between first-time buyers and returning customers.
Operators available: Numeric comparison operators
Input: Enter a number representing the order count.
Example: A store wants to show a welcome discount to first-time customers. They would set Total Orders to “Is equal to” with a value of 0. This shows the bump to customers who have never placed an order before.
Customer History: Quantity of Product Ordered
This rule counts the total quantity of specific products the customer has purchased across all their orders. It’s excellent for identifying product loyalty and offering related upgrades or subscriptions.
To configure this rule:
- Select the product or products to check.
- Choose a comparison operator.
- Enter the quantity threshold.
Example: A supplement company wants to offer a subscription when a customer has ordered at least 3 bottles of protein powder. They would select their protein powder products, set the operator to “Is greater than or equal to,” and enter 3.
Customer History: Quantity of Category Ordered
Similar to the product quantity rule, this counts total items from specific categories across all the customer’s orders. It’s useful when you want to identify customers who are fans of a particular product line.
Example: A skincare brand wants to offer a loyalty tier upgrade to customers who have purchased 10 or more skincare items. They would select their “Skincare” category and set the threshold to 10.
Customer History: Days Since Order
This rule calculates how many days have passed since the customer’s first or last order. It’s valuable for win-back campaigns targeting customers who haven’t purchased recently, or for identifying loyal customers who order frequently.
To configure this rule:
- Select whether to check the First or Last order.
- Choose a comparison operator.
- Enter the number of days.
Example: A store wants to show a “welcome back” offer to customers who haven’t ordered in 90 days. They would set Days Since Order to “Last,” choose “Is greater than,” and enter 90.
Customer History: Days Since Product Ordered
This rule calculates days since the customer first or last ordered a specific product. It’s perfect for replenishment reminders on consumable products where you can predict when customers might need to reorder.
To configure this rule:
- Select whether to check First or Last purchase.
- Select the product or products to check.
- Choose a comparison operator.
- Enter the number of days.
Example: A skincare brand sells a face moisturizer that typically lasts 30 days. They want to show a refill bump when customers who’ve purchased it before come back after about a month. They would set Days Since Product Ordered to “Last,” select “Face Moisturizer,” choose “Is greater than,” and enter 25.
Customer History: Days Since Category Ordered
This works the same way as the product-specific version but checks when the customer last ordered from a category. It’s useful when you have many products in a category and want to trigger based on any of them.
Example: A store selling seasonal products wants to show a reminder bump when it’s been 6 months since a customer ordered sunscreen. They would set Days Since Category Ordered to “Last,” select “Sunscreen,” and set the threshold to 180 days.
Customer History: Date of Order
This rule compares the customer’s first or last order against a specific calendar date. It’s useful for legacy customer identification or date-based promotions.
To configure this rule:
- Select whether to check the First or Last order.
- Choose a comparison operator (typically before or after).
- Select a specific date from the date picker.
Example: A store wants to offer special grandfathered pricing to customers who have been with them since before a price increase. They would set Date of Order to “First,” choose “Is less than” (before), and select January 1, 2024.
Customer History: Date of Product Ordered
This rule compares when the customer first or last ordered specific products against a calendar date.
Customer History: Date of Category Ordered
This rule compares when the customer first or last ordered from specific categories against a calendar date.
Product Rules
Product rules evaluate the inventory status of specific products in your catalog. These are useful for conditional offers based on stock availability, letting you promote alternatives when items are out of stock or add urgency when stock is running low.
Product Inventory
This rule checks the stock status of specific products regardless of quantity.
To configure this rule:
- Select the product or products to check.
- Choose the status to match: In Stock, Out of Stock, or On Backorder.
Example: A store wants to show an alternative product bump when their most popular widget is out of stock. They would select “Popular Widget,” choose “Out of Stock” as the status, then configure the bump to offer a similar product.
Product Quantity in Stock
This rule checks the actual stock quantity of specific products, not just the status. It’s perfect for urgency-based messaging or hiding bumps when inventory is critically low.
To configure this rule:
- Select the product or products to check.
- Choose a comparison operator.
- Enter the quantity threshold.
Example: A store wants to show a “limited stock” message when a popular item has fewer than 10 units remaining. They would select the product, choose “Is less than,” and enter 10.
Checkout Context Rules
Checkout context rules evaluate information about the current checkout session, including the customer’s location and WordPress user role. These are useful for geographic targeting and role-based pricing.
Shipping Country
This rule checks the customer’s shipping destination. It’s useful for showing offers that only make sense for certain regions, like shipping insurance for international orders or region-specific products.
Operators available:
- At least one of the selected means shipping to any of your selected countries passes the rule.
- All of the selected is typically not useful here since customers can only ship to one country per order.
- None of the selected lets you exclude specific countries, which is useful for showing bumps only to international customers.
Input: Select one or more countries from the dropdown.
Example: A US-based store wants to show a shipping insurance bump only to international customers. They would set Shipping Country to “None of the selected” and choose United States and Canada.
Billing Country
This rule works the same way as Shipping Country but checks the billing address instead. This can be useful when you want to target based on where the customer is paying from rather than where they’re shipping to.
Example: A store running a European promotion wants to show a regional offer. They would set Billing Country to “At least one of the selected” and choose United Kingdom, Germany, and France.
User Role (Pro Plan Required)
This rule checks the customer’s WordPress user role. It requires CheckoutWC Pro plan or higher. It’s particularly useful if you have wholesale customers, members, or other special user types who should see different offers.
Operators available:
- At least one of the selected passes if the user has any of your selected roles.
- All of the selected requires the user to have all selected roles, which is uncommon.
- None of the selected excludes users with specific roles.
Available roles: All WordPress user roles configured in your site, plus a special Guest option for non-logged-in customers.
Example: A store with wholesale accounts wants to show a volume discount bump only to wholesale customers. They would set User Role to “At least one of the selected” and choose “Wholesale Customer.”
Operator Reference
Here’s a complete reference for the operators available across different rule types.
Numeric Comparison Operators
These operators are used by quantity, value, and time-based rules. They compare a calculated value against your threshold.
| Operator | What It Does | Example |
|---|---|---|
| Is equal to | Matches only the exact value | Cart quantity = 5 (exactly 5 items) |
| Is not equal to | Matches any value except the specified one | Total orders ≠ 0 (has at least one order) |
| Is greater than | Matches values above the threshold | Subtotal > 100 (more than $100) |
| Is less than | Matches values below the threshold | Stock < 10 (fewer than 10 units) |
| Is greater than or equal to | Matches values at or above the threshold | Days since order ≥ 30 (30 or more days) |
| Is less than or equal to | Matches values at or below the threshold | Average order ≤ 50 ($50 or less) |
Collection Operators
These operators are used by rules that check against lists, such as products, categories, countries, and roles.
| Operator | What It Does | When to Use It |
|---|---|---|
| At least one of the selected | Passes if any of your selections match | When you want to target a group, like “cart contains camera OR lens OR tripod” |
| All of the selected | Passes only if every selection matches | When you want to require multiple items, like “cart contains camera AND lens AND tripod” |
| None of the selected | Passes only if none of your selections match | When you want to exclude items, like “cart contains no sale items” |
Practical Examples
These real-world rule combinations show how to build effective targeted offers for common scenarios.
Cross-Sell to Camera Buyers
Goal: Show a memory card bump to customers buying cameras.
Rules to configure:
- Cart Contents: Set to “Contains (Categories)” with “At least one of the selected” and choose your camera-related categories.
How it works: The bump displays whenever any camera product is in the cart. Simple and effective for category-based cross-sells.
High-Value Order Upgrade
Goal: Offer expedited shipping to customers spending $150 or more.
Rules to configure:
- Cart Subtotal: Set to “Is greater than or equal to” with a value of 150.
How it works: Customers with substantial orders see the upgrade option. They’ve already committed to a significant purchase and may value faster delivery.
Returning Customer Loyalty Offer
Goal: Show an exclusive bundle to customers who have ordered before.
Rules to configure:
- Customer History: Total Orders: Set to “Is greater than” with a value of 0.
How it works: Only logged-in customers with previous orders see this bump. First-time buyers and guests won’t see it.
First-Time Buyer Welcome
Goal: Offer a starter kit to new customers.
Rules to configure:
- Customer History: Total Orders: Set to “Is equal to” with a value of 0.
How it works: Customers with no order history see this bump. This includes both logged-in first-time buyers and guest checkouts, since guests also have zero order history.
Replenishment Reminder
Goal: Suggest a refill when a customer who previously bought consumables returns.
Rules to configure:
- Customer History: Days Since Product Ordered: Set to “Last” for “Protein Powder” with “Is greater than” 25 days.
- Cart Contents: Set to “Contains (Products)” with “None of the selected” and choose “Protein Powder.”
How it works: This targets customers who bought protein powder more than 25 days ago but don’t already have it in their current cart. It’s a reminder, not a duplicate.
Geographic Shipping Offer
Goal: Offer shipping insurance for international orders over $100.
Rules to configure:
- Shipping Country: Set to “None of the selected” and choose United States and Canada.
- Cart Subtotal: Set to “Is greater than” with a value of 100.
How it works: Both rules must pass. The customer must be shipping internationally AND have a cart over $100. Domestic orders or smaller international orders won’t see this bump.
Wholesale Customer Exclusive
Goal: Show a volume discount bump to wholesale accounts placing larger orders.
Rules to configure:
- User Role: Set to “At least one of the selected” and choose “Wholesale Customer.”
- Cart Total Quantity: Set to “Is greater than or equal to” with a value of 10.
How it works: Only wholesale customers ordering 10 or more items see this bump. Regular customers won’t see it regardless of how much they order.
Low Stock Urgency
Goal: Add urgency messaging when a popular item in the customer’s cart is running low.
Rules to configure:
- Cart Contents: Set to “Contains (Products)” with “At least one of the selected” and choose “Limited Edition Widget.”
- Product Quantity in Stock: Set to “Limited Edition Widget” with “Is less than” 20.
How it works: The bump only shows when the customer has the product in their cart AND stock is running low. This creates genuine urgency rather than fake scarcity.
Win-Back Lapsed Customers
Goal: Offer a special deal to customers who haven’t ordered in a while but are coming back.
Rules to configure:
- Customer History: Days Since Order: Set to “Last” with “Is greater than” 90 days.
- Customer History: Total Orders: Set to “Is greater than” with a value of 0.
How it works: This targets returning customers specifically. They must have ordered before (not first-time buyers) AND it must have been more than 90 days since their last order. The second rule ensures you’re not showing win-back offers to brand new customers.
Important Behavior Notes
Understanding these behaviors will help you build rules that work as expected.
AND Logic Between Rules
All rules on an Order Bump must pass for the bump to display. There is no OR logic between rules. If you need OR logic, the solution is to create separate Order Bumps for each condition. For example, if you want to show a bump when the cart contains cameras OR the customer is a VIP, create two bumps: one with the camera rule and one with the VIP rule.
Guest Checkout Handling
Customer history rules evaluate to false for non-logged-in customers. This means guests won’t see bumps that rely only on customer history rules. If you want a bump to show for guests, either avoid customer history rules entirely or create a separate bump that uses the User Role rule set to “Guest.”
Order Bump Exclusion from Calculations
When evaluating cart-based rules, the system automatically excludes the Order Bump’s own products from calculations. This prevents circular logic where adding a bump would change whether it should display. You don’t need to account for this in your rules.
Pro Plan Features
The User Role rule requires CheckoutWC Pro plan or higher. If you’re on Basic or Plus, this rule option won’t appear in the dropdown menu.
Troubleshooting
Bump Not Displaying When Expected
If your Order Bump isn’t showing when you think it should:
- Review every rule: Remember that all rules must pass. Even if four out of five rules pass, the bump won’t show. Walk through each rule with your test scenario.
- Test while logged in: If you’re using customer history rules, make sure you’re testing with a logged-in account that has the appropriate order history.
- Verify your selections: Double-check that you selected the correct products, categories, or countries in your rules. It’s easy to accidentally select similar-named items.
- Check the bump product: The Order Bump product itself must be in stock and purchasable. If the bump product is out of stock, the bump won’t display.
- Watch your operator logic: “Greater than 5” means 6 or more, not 5. If you want to include 5, use “Greater than or equal to.”
Bump Displaying When It Shouldn’t
If your Order Bump shows up unexpectedly:
- Add more specific rules: Your current rules may be broader than intended. Adding another rule narrows the targeting.
- Understand guest behavior: Guest users bypass customer history rules because those rules return false. If your only rule is a customer history rule, guests won’t be blocked by it. Add a User Role rule excluding guests if needed.
- Double-check your operators: “At least one of the selected” and “All of the selected” behave very differently. Make sure you chose the right one.
Related Resources
Need Help?
Building complex targeting scenarios can take some experimentation. If you’re having trouble getting rules to work as expected or want advice on the best approach for your use case, reach out to our support team. We’re happy to help you configure the right rules, and your feedback helps us improve the Rules Engine for everyone.