Skip to main content
Ranked location groups let you control which locations should fulfill orders first by automatically grouping similar locations together. Instead of manually arranging individual locations, you define groups based on location type or tags.
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

1

Access order routing settings

Go to Charlie → Settings → Order routing or Shopify → Settings → Shipping and delivery → Order routing.
2

Add the Ranked Location Groups rule

Find Charlie’s Ranked Location Groups rule and add it to your routing strategy.
3

Create your first group (highest priority)

Add a group and choose how to select locations:
Selector typeDescription
Specific locationsChoose individual locations manually
Location typeAll Warehouses or all Stores
Location tagLocations with specific tags
4

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.
5

Enable the rule

Toggle the rule to Enabled when you’re ready to apply it to live orders.
Limits: Maximum 10 groups, 5 selectors per group, 100 manual locations total, and 10 tags per selector.

Selector types

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 tagged 3pl
Group 1:
  - Selector: Location type = Warehouse
  - Selector: Location tag = 3pl
Result: Any warehouse matches, AND any location tagged 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 BOTH fast-shipping AND vip
Group 1:
  - Selector: Location tags = fast-shipping, vip
Result: Only locations with both tags match.

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
A warehouse tagged 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.
1

Create Group 1

  • Selector: Location type
  • Value: Warehouse
2

Create Group 2

  • Selector: Location type
  • Value: Store
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.
1

Tag your locations

  • Tag your own warehouses with owned
  • Tag third-party locations with 3pl
2

Create Group 1

  • Selector: Location tag
  • Value: owned
3

Create Group 2

  • Selector: Location tag
  • Value: 3pl
4

Create Group 3

  • Selector: Location type
  • Value: Store
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.
1

Tag fast locations

Add the tag fast-shipping to locations with expedited capabilities.
2

Create Group 1

  • Selector: Location tag
  • Value: fast-shipping
3

Create Group 2

  • Selector: Location type
  • Value: Warehouse
4

Create Group 3

  • Selector: Location type
  • Value: Store
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.
1

Tag locations

  • Tag standard locations with standard
  • Tag specialty locations with engravable
2

Create groups in this order

  1. Group 1: Tag = standard
  2. Group 2: Type = Warehouse
  3. Group 3: Type = Store
  4. Group 4: Tag = engravable
Result: Engravable locations are tried last for regular orders, keeping them available for orders that need engraving.
Combine this with a Product Constraint Rule to ensure engravable products can ONLY be fulfilled from engravable locations.

What happens when…

It remains available for fulfillment but gets the lowest priority. It will only be used after all grouped locations are tried.
The system simply skips to the next group. No errors occur.
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
Your ranking preferences guide each decision based on where each product is available.
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

CategoryLimits
GroupsMaximum 10 per configuration
Selectors per groupMaximum 5
Manual locationsMaximum 100 total across all groups
Tags per selectorMaximum 10
  • 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

Check:
  1. Is the rule enabled?
  2. Do the expected locations have stock for the ordered products?
  3. Are there constraint rules blocking those locations?
  4. Is the rule placed correctly in the routing order? (Earlier rules have higher priority)
Check:
  1. For type-based selectors: Is the location type set correctly?
  2. For tag-based selectors: Are the tags spelled exactly right (case-sensitive)?
  3. For AND logic (multiple tags): Does the location have ALL the required tags?
Remember: locations match the first group they qualify for. If a warehouse is tagged vip and you have:
  • Group 1: vip tag
  • Group 2: Warehouses
The warehouse gets Group 1 priority, not Group 2. Reorder your groups if needed.