Skip to main content
Product rules let you restrict fulfillment based on what’s in the cart. When a customer orders specific products or items from certain collections, you can control exactly which locations are allowed to fulfill those items.
Product rules are ideal when certain items require special handling, packaging, or should only ship from locations with specific capabilities.

How product rules work

A product rule has two parts:
  1. When (condition): Which products or collections trigger the rule
  2. Then (filter): Which locations to block or allow when triggered

Create a product rule

1

Navigate to Fulfillment Constraints

Go to Charlie → Fulfillment Constraints and click Create rule.
2

Name your rule and set status

Enter a descriptive name (max 75 characters) that explains the rule’s purpose, like “Fragile items - Warehouse only” or “Premium collection - Flagship stores”.Set the Status to:
  • Active: Rule applies immediately at checkout
  • Draft: Rule is saved but won’t affect checkout
3

Select Product based as the rule type

Under Rule type, select Product based.
Selecting Product based rule type
4

Configure the condition (When)

In the Configuration section under When, set up what triggers the rule:Condition: Choose between Product or Collection
Condition dropdown showing Product and Collection options
Operator: Select how the condition matches
OperatorEffect
IncludesRule triggers when cart contains ANY of the selected items
Does not includeRule triggers when cart does NOT contain the selected items
Value: Click Select products or Select collections to open the picker and choose your items.
Search and select individual products from your catalog.
Product picker modal with search and product list
5

Configure the location filter (Then)

Under Then, define which locations are affected when the rule triggers:Action:
ActionEffect
IncludeOnly the specified locations can fulfill (all others blocked)
ExcludeThe specified locations are blocked (all others allowed)
Property: Choose how to target locations
Property dropdown showing Specific locations, Location with tag, and Location with type options
PropertyValueUse when
Specific locationsSelect individual locationsYou need precise control over specific locations
Location with tagEnter tag namesYou want to target locations by capability
Location with typeWarehouse or StoreYou want to target all locations of a type
6

Save the rule

Click Save to create your rule. If set to Active, it takes effect immediately at checkout.
You can create up to 10 configurable rules total across Product, Customer, and Cart rule types. Plan your rules strategically.

Configuration options

Condition types

Target specific individual products by selecting them from your catalog.Best for:
  • One-off items with special requirements
  • Products that need specific handling
  • Items exclusive to certain locations
Example: A hand-blown glass vase that requires specialized packaging only available at your main warehouse.

Location filters

Select individual locations from your list. Use this when you need precise control.Example setup:
  • Action: Include
  • Property: Specific locations
  • Value: Paris Warehouse, Lyon Warehouse
Result: Only Paris and Lyon warehouses can fulfill matching products.
Target locations based on tags you’ve assigned. This is powerful for capability-based routing.Example setup:
  • Action: Include
  • Property: Location with tag
  • Value: hazmat-certified
Result: Only locations tagged hazmat-certified can fulfill matching products.
Make sure you’ve set up location tags before using this filter.
Target all Warehouses or all Stores at once.Example setup:
  • Action: Exclude
  • Property: Location with type
  • Value: Store
Result: All stores are blocked; only warehouses can fulfill matching products.

Examples

Fragile items from warehouse only

A home décor retailer sells delicate glass items that require bubble wrap and custom packaging only available at their central warehouse.
1

Create a collection

In Shopify, create a collection called “Fragile Items” and add all glass products.
2

Create the rule

  • Name: Fragile items - Warehouse only
  • Status: Active
  • Type: Product based
3

Set condition (When)

  • Condition: Collection
  • Operator: Includes
  • Value: Fragile Items collection
4

Set filter (Then)

  • Action: Include
  • Property: Location with type
  • Value: Warehouse
Result: Glass items can only be fulfilled from warehouses, never from retail stores.

Exclusive products for flagship stores

A fashion brand launches a limited collection only available at their 3 flagship stores.
1

Tag your flagship stores

Go to Locations and add the tag flagship to your 3 flagship stores.
2

Create the rule

  • Name: Limited collection - Flagship only
  • Status: Active
  • Type: Product based
3

Set condition (When)

  • Condition: Collection
  • Operator: Includes
  • Value: Limited Edition Fall 2024
4

Set filter (Then)

  • Action: Include
  • Property: Location with tag
  • Value: flagship
Result: Limited edition items can only be fulfilled from flagship stores.
When the collection ends, simply set the rule to Draft or delete it. No need to update individual products.

Heavy items excluded from small stores

A furniture retailer has small urban stores that can’t handle oversized deliveries.
1

Tag small stores

Add the tag small-footprint to stores with limited space.
2

Create the rule

  • Name: Heavy items - No small stores
  • Status: Active
  • Type: Product based
3

Set condition (When)

  • Condition: Collection
  • Operator: Includes
  • Value: Oversized Furniture, Heavy Appliances
4

Set filter (Then)

  • Action: Exclude
  • Property: Location with tag
  • Value: small-footprint
Result: Heavy items skip small stores entirely, routing to larger locations or warehouses.

Best practices

Use collections over products

Collections automatically include new products, reducing maintenance. Reserve individual product selection for true one-offs.

Use tags for capabilities

Tag locations by what they can do (fragile-certified, cold-chain, oversized-shipping) rather than what they are.

Test with Draft status

Create rules in Draft mode first, verify the logic, then activate. This prevents unexpected checkout blocks.

Name rules clearly

Use descriptive names like “Hazmat items - Certified locations only” instead of “Rule 1”. Future you will thank you.

Troubleshooting

This means all locations with stock are blocked by your rule.Check:
  1. Does at least one allowed location have the product in stock?
  2. Is the filter too restrictive? (e.g., including only one location that’s out of stock)
  3. Are multiple rules conflicting and blocking all locations?
Quick fix: Set the rule to Draft temporarily to restore checkout.
Check:
  1. Is the rule status set to Active?
  2. Does the product/collection in cart actually match the condition?
  3. If using “Does not include”, remember the logic is inverted
Debug tip: Place a test order with the exact products and verify which location fulfills it.
You’ve reached the limit of 10 configurable rules (Product + Customer + Cart combined).Solutions:
  • Consolidate similar rules using collections instead of individual products
  • Delete unused or Draft rules
  • Use location tags to make rules more flexible