Skip to main content
Cart rules let you restrict fulfillment based on cart properties. When a cart meets specific criteria like total quantity, total amount, or contains items with specific attributes, you can control exactly which locations are allowed to fulfill the order.
Cart rules are ideal for routing high-value orders to secure locations, bulk orders to warehouses, or orders with special handling requirements to capable locations.

How cart rules work

A cart rule has two parts:
  1. When (condition): Which cart properties trigger the rule
  2. Then (filter): Which locations to block or allow when triggered

Create a cart rule

1

Navigate to Fulfillment Constraints

Go to Charlie → Fulfillment Constraints and click Create rule.
2

Name your rule and set status

Enter a descriptive name (max 75 characters) that explains the rule’s purpose, like “High-value orders - Warehouse only” or “Bulk orders - Distribution center”.Set the Status to:
  • Active: Rule applies immediately at checkout
  • Draft: Rule is saved but won’t affect checkout
Cart rule form with name, status, and rule type
3

Select Cart based as the rule type

Under Rule type, select Cart based.
4

Configure the condition (When)

In the Configuration section under When, set up what triggers the rule:Condition: Choose the cart property to evaluate
Condition dropdown showing Total cart quantity, Total cart amount, and Line item has attribute options
ConditionDescription
Total cart quantityTotal number of items in the cart
Total cart amountTotal value of the cart in your store currency
Line item has attributeItems with specific custom attributes
The available operators and value fields depend on the condition you select.
5

Configure the location filter (Then)

Under Then, define which locations are affected when the rule triggers:
Property dropdown showing Specific locations, Location with tag, and Location with type options
Action:
ActionEffect
IncludeOnly the specified locations can fulfill (all others blocked)
ExcludeThe specified locations are blocked (all others allowed)
Property: Choose how to target locations
PropertyValueUse when
Specific locationsSelect individual locationsYou need precise control over specific locations
Location with tagEnter tag namesYou want to target locations by capability
Location with typeWarehouse or StoreYou want to target all locations of a type
6

Save the rule

Click Save to create your rule. If set to Active, it takes effect immediately at checkout.
You can create up to 10 configurable rules total across Product, Customer, and Cart rule types. Plan your rules strategically.

Condition types

Triggers based on the total number of items in the cart.Operators available:
Operator dropdown showing Equal, Not Equal, Greater Than, Less Than, Greater Than Or Equal, Less Than Or Equal
OperatorDescription
EqualCart has exactly this many items
Not EqualCart does not have exactly this many items
Greater ThanCart has more than this many items
Less ThanCart has fewer than this many items
Greater Than Or EqualCart has this many or more items
Less Than Or EqualCart has this many or fewer items
Value: Enter the quantity thresholdBest for:
  • Routing bulk orders to warehouses
  • Limiting small stores to single-item orders
  • Handling large orders with dedicated fulfillment
Example: Orders with more than 10 items should only be fulfilled from warehouses with bulk packaging capabilities.

Location filters

Select individual locations from your list. Use this when you need precise control.Example setup:
  • Action: Include
  • Property: Specific locations
  • Value: Central Warehouse, Secure Facility
Result: Only the selected locations can fulfill orders matching the condition.
Target locations based on tags you’ve assigned. This is powerful for capability-based routing.Example setup:
  • Action: Include
  • Property: Location with tag
  • Value: high-value-certified
Result: Only locations tagged high-value-certified can fulfill orders matching the condition.
Make sure you’ve set up location tags before using this filter.
Target all Warehouses or all Stores at once.Example setup:
  • Action: Include
  • Property: Location with type
  • Value: Warehouse
Result: Only warehouses can fulfill orders matching the condition; all stores are blocked.

Examples

High-value orders from warehouse only

A jewelry retailer wants to ensure orders over €500 are only fulfilled from their central warehouse where they have insurance verification and secure packaging.
1

Create the rule

  • Name: High-value orders - Warehouse only
  • Status: Active
  • Type: Cart based
2

Set condition (When)

  • Condition: Total cart amount
  • Operator: Greater Than
  • Value: 500
3

Set filter (Then)

  • Action: Include
  • Property: Location with type
  • Value: Warehouse
Result: Orders over €500 are fulfilled exclusively from warehouses with proper security handling.

Bulk orders to distribution center

A wholesaler wants orders with more than 20 items to be fulfilled only from their distribution center equipped for bulk packaging.
1

Tag your distribution center

Go to Locations and add the tag bulk-capable to your distribution center.
2

Create the rule

  • Name: Bulk orders - Distribution center
  • Status: Active
  • Type: Cart based
3

Set condition (When)

  • Condition: Total cart quantity
  • Operator: Greater Than
  • Value: 20
4

Set filter (Then)

  • Action: Include
  • Property: Location with tag
  • Value: bulk-capable
Result: Large orders are routed to locations equipped to handle bulk fulfillment.

Gift-wrapped items from flagship stores

A fashion brand offers gift wrapping, but only flagship stores have the premium packaging materials and trained staff.
1

Tag flagship stores

Add the tag gift-wrap-capable to stores with gift wrapping services.
2

Create the rule

  • Name: Gift wrap - Flagship stores only
  • Status: Active
  • Type: Cart based
3

Set condition (When)

  • Condition: Line item has attribute
  • Operator: Equal
  • Attribute key: gift_wrap
  • Attribute value: true
4

Set filter (Then)

  • Action: Include
  • Property: Location with tag
  • Value: gift-wrap-capable
Result: Items with gift wrapping are only fulfilled from stores with gift wrapping capabilities.
Remember: with Line item has attribute, only the specific items matching the attribute are constrained. Other items in the same cart can be fulfilled from any location.

Exclude small stores from large orders

A retailer has small urban stores with limited inventory and packing space. Orders with more than 5 items should skip these locations.
1

Tag small stores

Add the tag small-store to locations with limited capacity.
2

Create the rule

  • Name: Large orders - No small stores
  • Status: Active
  • Type: Cart based
3

Set condition (When)

  • Condition: Total cart quantity
  • Operator: Greater Than
  • Value: 5
4

Set filter (Then)

  • Action: Exclude
  • Property: Location with tag
  • Value: small-store
Result: Orders with more than 5 items skip small stores and are routed to larger locations or warehouses.

Best practices

Use quantity for operational limits

Set quantity thresholds based on what your locations can realistically pack and ship in a timely manner.

Use amount for risk management

Route high-value orders to locations with proper insurance, security, and verification processes.

Use attributes for special handling

Leverage line item attributes for personalization, gift services, or custom requirements that need specific capabilities.

Test with Draft status

Create rules in Draft mode first, verify the logic with test orders, then activate.

Troubleshooting

This means all locations with stock are blocked for orders meeting the amount threshold.Check:
  1. Does at least one allowed location have all products in stock?
  2. Is your amount threshold in the correct currency?
  3. Are there conflicting rules blocking all locations?
Quick fix: Set the rule to Draft temporarily to restore checkout.
Check:
  1. Is the rule status set to Active?
  2. Is the attribute key spelled exactly right (case-sensitive)?
  3. Is the attribute actually being set on the line item? Check the cart/checkout payload.
  4. If using “Equal”, does the value match exactly?
Debug tip: Use your browser’s developer tools to inspect the cart data and verify the attribute is present.
Check:
  1. Is the operator correct? (“Greater Than” vs “Greater Than Or Equal”)
  2. For amounts, are you using the right currency value?
  3. For quantities, remember it’s total items, not unique products
Example: “Greater Than 5” triggers at 6+ items, not at 5. Use “Greater Than Or Equal 5” to include 5.