This is the most commonly used routing rule. It’s ideal for basic strategies like “warehouses first, then stores” without manually managing each location.
How ranked groups work
You create prioritized groups of locations. Shopify tries to fulfill from the highest-priority group first, then falls back to lower-priority groups if needed.Shopify’s native ranked locations requires you to manually drag and drop each location. If you have 50 warehouses, you arrange all 50 manually. With Charlie’s ranked groups, all warehouses automatically get the same priority.
Configure ranked location groups
Access order routing settings
Go to Charlie → Settings → Order routing or Shopify → Settings → Shipping and delivery → Order routing.
Add the Ranked Location Groups rule
Find Charlie’s Ranked Location Groups rule and add it to your routing strategy.
Create your first group (highest priority)
Add a group and choose how to select locations:
| Selector type | Description |
|---|---|
| Specific locations | Choose individual locations manually |
| Location type | All Warehouses or all Stores |
| Location tag | Locations with specific tags |
Add additional groups (lower priorities)
Create more groups in order of preference. Locations matching the first group get priority 1, second group gets priority 2, and so on.
Selector types
- Specific locations
- Location type
- Location tag
Choose individual locations manually, similar to Shopify’s native rule but grouped together.Best for: Small groups of specific locations that don’t share common characteristics.Example: Your two flagship stores that should always have priority.
Combining selectors
Multiple selectors in one group (OR logic)
When you add multiple selectors to the same group, a location matches if it meets any of the criteria: Example: Warehouses OR locations tagged3pl
3pl matches (even if it’s a store).
Multiple tags in one selector (AND logic)
When you add multiple tags to a single selector, a location must have all the tags: Example: Locations tagged BOTHfast-shipping AND vip
Priority order matters
Locations are checked against groups in order. Once a location matches a group, it gets that group’s priority and isn’t checked against later groups. Example:- Group 1: Locations tagged
vip - Group 2: All warehouses
- Group 3: All stores
vip gets first priority (from Group 1), not second priority (from the warehouse group).
Examples
Warehouses first, then stores
The most common setup: prioritize warehouses for online orders while keeping stores for walk-in customers.
Result: All warehouses get priority 1, all stores get priority 2.
Own locations first, then 3PL
When you work with external fulfillment partners but want to prioritize your own locations.
Result: Your own locations are tried first, then 3PL partners, then stores as last resort.
Fast shipping locations first
Route orders to locations equipped for expedited fulfillment.
Result: Fast-shipping locations get priority regardless of whether they’re warehouses or stores.
Preserve specialty equipment
Keep locations with special capabilities (like engraving) available for orders that actually need them.
Result: Engravable locations are tried last for regular orders, keeping them available for orders that need engraving.
What happens when…
A location doesn't match any group
A location doesn't match any group
It remains available for fulfillment but gets the lowest priority. It will only be used after all grouped locations are tried.
A group matches no locations
A group matches no locations
The system simply skips to the next group. No errors occur.
An order has multiple products
An order has multiple products
Each product is evaluated separately. A customer ordering three items might have:
- Item 1 → Fulfilled from a warehouse
- Item 2 → Fulfilled from a store (if warehouse is out of stock)
- Item 3 → Fulfilled from a different location
Constraints block some locations
Constraints block some locations
Fulfillment constraints are applied before routing rules. Rankings only apply to locations that remain eligible after constraints are applied.If a constraint excludes all stores for fragile items, your ranking rule won’t override that—stores simply won’t be considered.
Best practices
Start simple
Begin with basic type-based ranking (warehouses vs stores) and add complexity only when needed.
Use meaningful tags
Create descriptive tags like
next-day-capable, heavy-items, fragile-handling instead of loc1 or groupA.Plan for growth
Design your tag structure to accommodate future locations without major reconfiguration.
Test thoroughly
Place test orders to verify locations are selected in the expected priority order.
Limitations
| Category | Limits |
|---|---|
| Groups | Maximum 10 per configuration |
| Selectors per group | Maximum 5 |
| Manual locations | Maximum 100 total across all groups |
| Tags per selector | Maximum 10 |
What you can't do
What you can't do
- Combine type AND tag in a single selector (e.g., “warehouses with express tag”)
- Use negative conditions (e.g., “locations WITHOUT a specific tag”)
- Create different rankings for different products within this rule
- Override hard constraints from Fulfillment Constraint rules
Troubleshooting
Orders not routing to expected locations
Orders not routing to expected locations
Check:
- Is the rule enabled?
- Do the expected locations have stock for the ordered products?
- Are there constraint rules blocking those locations?
- Is the rule placed correctly in the routing order? (Earlier rules have higher priority)
Locations not matching groups
Locations not matching groups
Check:
- For type-based selectors: Is the location type set correctly?
- For tag-based selectors: Are the tags spelled exactly right (case-sensitive)?
- For AND logic (multiple tags): Does the location have ALL the required tags?
Wrong priority assigned
Wrong priority assigned
Remember: locations match the first group they qualify for. If a warehouse is tagged
vip and you have:- Group 1:
viptag - Group 2: Warehouses