Skip to main content
Order routing determines where your orders are fulfilled from when multiple locations have available inventory. Charlie extends Shopify’s native order routing with powerful rules that let you optimize fulfillment based on your business needs.

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 ConstraintsOrder Routing Rules
EffectBlocks locations entirelyRanks locations by priority
When no matchCheckout blocked, no shipping optionsFalls back to next priority
Risk levelHigh (can block checkout)Low (always has fallback)
Use caseHard business requirementsOptimization preferences
Example”Fragile items can NEVER ship from small stores""Prefer warehouse first, then large stores”
Rule of thumb: Use constraints when a location must not fulfill certain orders under any circumstances. Use routing rules when you prefer certain locations but can accept alternatives.

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.
Charlie’s routing rules are Shopify Functions that integrate directly into Shopify’s Order Routing. This means you can combine Charlie’s rules with Shopify’s native routing options in one place.
  1. Open the Charlie app
  2. Go to Settings
  3. Under Order management, click Order routing
This takes you directly to Shopify’s Order Routing settings.
Both paths lead to the same place — choose whichever is most convenient for you.

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
Status toggle to enable or disable an order routing rule
Create and configure your routing rules ahead of time, then enable them when you’re ready to go live. This is especially useful for seasonal strategies like Black Friday.

Available routing rules

Charlie provides six types of order routing rules:
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
Example: Group 1 (Central Warehouse) → Group 2 (Regional Warehouses) → Group 3 (Stores)Learn more →
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
Example: Premium products → Flagship stores firstLearn more →
Prioritize locations based on who is placing the order.Use cases:
  • B2B customers → Warehouse priority
  • VIP customers → Premium locations
  • Regional customers → Local stores
Example: B2B orders → Distribution center firstLearn more →
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
Example: Orders > 10 items → Warehouse firstLearn more →
Automatically prioritize locations with more available stock.Use cases:
  • Reduce split shipments
  • Balance inventory across locations
  • Prefer locations that can fulfill complete orders
Example: Location with most stock → Highest priorityLearn more →
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
Example: Location with most available capacity → Highest priorityLearn more →

Combining rules

You can use multiple routing rules together. Shopify evaluates them in the order you set:
The order matters! Rules earlier in the list have higher priority. If Rule 1 assigns a location rank 1, subsequent rules refine the ranking within that constraint.

Example: Optimized B2B fulfillment

A wholesaler wants to:
  1. Route B2B orders to warehouses first
  2. Among warehouses, prefer those with more stock
  3. Avoid locations at capacity
Setup:
  1. Customer Rules: B2B customers → Warehouse group priority
  2. Inventory Rules: Rank by available stock
  3. Capacity Rules: Deprioritize locations at capacity
Result: B2B orders go to the warehouse with the most stock that isn’t at capacity.

Constraints + Routing: Working together

For complex fulfillment strategies, combine constraints and routing rules:
LayerTypePurpose
1️⃣ConstraintsRemove ineligible locations (hard requirements)
2️⃣Routing rulesRank remaining locations (optimization)
3️⃣ShopifySelect 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:
  1. Fulfillment Constraint (Product Rule):
    • Condition: Products in “Fragile Items” collection
    • Filter: Exclude locations tagged small-store
    • Effect: Small stores are blocked
  2. Order Routing (Ranked Groups):
    • Group 1: Central Warehouse
    • Group 2: Large stores
    • Effect: Central warehouse is preferred
Result:
  • 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.