Unlike fulfillment constraints which block locations, product routing rules prioritize locations. If the preferred location is out of stock, Shopify automatically falls back to the next available location.
Constraints vs Routing
How product routing rules work
A product routing rule has two parts:- When (condition): Which products trigger the rule
- Then (groups): How to rank locations when triggered
Configure a product routing rule
1
Access order routing settings
Go to Charlie → Settings → Order routing or Shopify → Settings → Shipping and delivery → Order routing.
2
Add the Product Rules rule
Find Charlie’s Product Rules and add it to your routing strategy.
3
Configure the condition (When)
Set up which products trigger this rule:

4
Configure location groups (Then)
Create ranked groups of locations. Group 1 has highest priority, Group 2 is the fallback, and so on.For each group, click Add selector and choose how to select locations:
5
Enable the rule
Toggle the rule to Enabled when you’re ready to apply it to live orders.
Condition options
- Is one of
- Is not one of
Rule triggers when the cart contains any of the specified products.Example: Cart contains Product A OR Product B → Apply rankingUse case: Premium products that should prefer flagship stores.
Examples
Premium products prefer flagship stores
A fashion brand wants premium items to be fulfilled from flagship stores when possible, with warehouses as backup.1
Identify premium product IDs
Get the product IDs for your premium items from Shopify.
2
Create the rule
- Condition: Product is
- Operator: Is one of
- Value: [Premium product IDs]
3
Configure groups (Then)
- Group 1: Location tag =
flagship - Group 2: Location type = Warehouse
- Group 3: Location type = Store
Heavy items prefer warehouse
A furniture retailer wants heavy items to ship from warehouses with freight capabilities, but allows store fulfillment as backup.1
Tag your warehouses
Add the tag
freight-capable to warehouses with shipping equipment.2
Create the rule
- Condition: Product is
- Operator: Is one of
- Value: [Heavy furniture product IDs]
3
Configure groups (Then)
- Group 1: Location tag =
freight-capable - Group 2: Location type = Warehouse
- Group 3: Location type = Store
Standard products avoid specialty locations
Keep specialty locations (like those with engraving equipment) available for orders that need them.1
Identify specialty products
Get the product IDs for items that require specialty equipment.
2
Create the rule
- Condition: Product is
- Operator: Is not one of
- Value: [Specialty product IDs]
3
Configure groups (Then)
- Group 1: Location type = Warehouse
- Group 2: Location tag =
standard-store - Group 3: Location tag =
specialty
Combining with constraints
For maximum control, combine routing rules with constraints:
Example: Fragile items strategy
- Fulfillment Constraint: Exclude locations tagged
no-fragile-handling→ Small stores are blocked - Product Routing Rule: Prefer locations tagged
fragile-certified→ Certified locations are preferred, but others can still fulfill
Best practices
Use routing for optimization
Use routing rules when you have preferences but can accept alternatives. Reserve constraints for hard requirements.
Group products by handling needs
Instead of listing individual products, consider using collections in your constraint rules and product tags for common patterns.
Combine with other rules
Product rules work well with Inventory Rules (prefer locations with more stock of the specific product).
Test before peak seasons
Verify your routing with test orders before high-volume periods.
Troubleshooting
Products not routing to expected locations
Products not routing to expected locations
Check:
- Is the rule enabled?
- Are the product IDs correct? (Check in Shopify Admin → Products)
- Does the preferred location have stock?
- Are there constraint rules blocking the location?
- Is another routing rule with higher priority overriding this one?
Rule not triggering at all
Rule not triggering at all
Check:
- Is the operator correct? (“Is one of” vs “Is not one of”)
- Are the product IDs in the correct format?
- Is the rule placed correctly in the routing order?
Wrong group being selected
Wrong group being selected
Remember: Shopify tries groups in order and uses the first one with available stock. If Group 1 is out of stock, it moves to Group 2 automatically.Verify stock levels at each location for the products in question.
Related
Product Constraints
Block locations based on products (hard rules)
Ranked Location Groups
Create default location priorities
Inventory Rules
Prioritize by stock availability
Location Tags
Set up tags for flexible grouping