Constraints vs Routing rules
Charlie offers two complementary ways to control fulfillment:Fulfillment Constraints
Block locations from fulfilling specific orders. Hard rules that completely remove locations from consideration.
Order Routing Rules
Prioritize locations for fulfillment. Soft rules that rank locations by preference without blocking any.
| Fulfillment Constraints | Order Routing Rules | |
|---|---|---|
| Effect | Blocks locations entirely | Ranks locations by priority |
| When no match | Checkout blocked, no shipping options | Falls back to next priority |
| Risk level | High (can block checkout) | Low (always has fallback) |
| Use case | Hard business requirements | Optimization preferences |
| Example | ”Fragile items can NEVER ship from small stores" | "Prefer warehouse first, then large stores” |
How order routing works
When a customer reaches checkout, Shopify processes fulfillment in this order:Where to configure order routing
Charlie’s order routing rules are configured in Shopify’s Order Routing settings. You can access these settings either from Charlie or directly from Shopify.
- From Charlie
- From Shopify
- Open the Charlie app
- Go to Settings
- Under Order management, click Order routing
Enable or disable rules
Each routing rule can be enabled or disabled independently. This allows you to:- Build rules in advance without affecting live orders
- Test configurations before activating them
- Quickly disable a rule if issues arise, without deleting it
- Prepare for peak seasons by pre-configuring rules and enabling them when needed

Available routing rules
Charlie provides six types of order routing rules:Ranked Location Groups
Ranked Location Groups
Create prioritized groups of locations. Orders are routed to the highest-priority group with available stock.Use cases:
- Prefer warehouses over stores
- Prioritize locations by region
- Create fallback hierarchies
Product Rules
Product Rules
Prioritize locations based on what products are in the cart.Use cases:
- Route specific brands to dedicated locations
- Prioritize collections to certain stores
- Handle product-specific fulfillment preferences
Customer Rules
Customer Rules
Prioritize locations based on who is placing the order.Use cases:
- B2B customers → Warehouse priority
- VIP customers → Premium locations
- Regional customers → Local stores
Cart Rules
Cart Rules
Prioritize locations based on cart properties like quantity, amount, or line item attributes.Use cases:
- Large orders → Bulk fulfillment centers
- High-value orders → Secure locations
- Gift-wrapped items → Stores with gift services
Inventory Rules
Inventory Rules
Automatically prioritize locations with more available stock.Use cases:
- Reduce split shipments
- Balance inventory across locations
- Prefer locations that can fulfill complete orders
Capacity Rules
Capacity Rules
Prioritize locations based on their current fulfillment capacity.Use cases:
- Avoid overloading busy locations
- Balance workload during peak periods
- Route away from locations at capacity
Combining rules
You can use multiple routing rules together. Shopify evaluates them in the order you set:Example: Optimized B2B fulfillment
A wholesaler wants to:- Route B2B orders to warehouses first
- Among warehouses, prefer those with more stock
- Avoid locations at capacity
- Customer Rules: B2B customers → Warehouse group priority
- Inventory Rules: Rank by available stock
- Capacity Rules: Deprioritize locations at capacity
Constraints + Routing: Working together
For complex fulfillment strategies, combine constraints and routing rules:| Layer | Type | Purpose |
|---|---|---|
| 1️⃣ | Constraints | Remove ineligible locations (hard requirements) |
| 2️⃣ | Routing rules | Rank remaining locations (optimization) |
| 3️⃣ | Shopify | Select location with stock at best rank |
Example: Fragile items strategy
Business requirement: Fragile items should never ship from small stores, and should prefer the central warehouse. Setup:- Fulfillment Constraint (Product Rule):
- Condition: Products in “Fragile Items” collection
- Filter: Exclude locations tagged
small-store - Effect: Small stores are blocked
- Order Routing (Ranked Groups):
- Group 1: Central Warehouse
- Group 2: Large stores
- Effect: Central warehouse is preferred
- Small stores can never fulfill fragile items (constraint)
- Central warehouse is tried first (routing)
- Large stores are the fallback (routing)
- If all are out of stock, checkout is blocked (no eligible location)
Best practices
Start with routing rules
Routing rules are safer since they never block checkout. Add constraints only for hard requirements.
Use inventory rules for efficiency
Inventory-based routing automatically reduces split shipments and balances stock levels.
Combine with capacity management
Add capacity rules to prevent overloading locations during peak periods.
Test before peak seasons
Verify your routing strategy with test orders before high-volume periods like Black Friday.