Understanding Rules
Rules are the building blocks of Shopify Delivery Checkout. They allow you to dynamically modify shipping methods based on cart conditions.
Rule Types
Core Rule Types
modify_method_price
Changes the shipping method price when conditions are met. This is the most common rule type for dynamic pricing.
disable_method
Completely disables a shipping method when conditions are met. The method won't be available at checkout.
enable_method
Enables a shipping method when conditions are met. Useful for conditional availability.
Delivery Point Types
These rule types control the visibility of specific delivery point types (pickup locations, lockers, etc.):
hide_parcel_locker / show_parcel_locker
Hide or show parcel locker pickup points.
hide_service_point / show_service_point
Hide or show service point pickup locations.
hide_outdoor_parcel_locker / show_outdoor_parcel_locker
Hide or show outdoor parcel locker options.
hide_letter_box / show_letter_box
Hide or show letter box delivery options.
Advanced Rule Types
use_contract
Switch to a specific carrier contract when conditions are met.
use_location
Switch to a specific sender location/warehouse when conditions are met.
use_api_key
Use a specific API key for carrier integration when conditions are met.
Rule Structure
Each rule consists of:
| Field | Description |
|---|---|
name | A descriptive name for the rule |
type | The action to perform (see Rule Types above) |
price | The new price (for modify_method_price type only) |
priority | The execution order (lower number = higher priority) |
conditions_match | Whether to match all or any conditions |
conditions | Array of condition objects |
contract_id | Carrier contract ID (for use_contract type only) |
location_id | Sender location ID (for use_location type only) |
shipit_api_key_id | API key ID (for use_api_key type only) |
Conditions
Conditions determine when a rule should be applied. Common condition types include:
Cart Weight (cart_weight)
{
"type": "cart_weight",
"value": ["10"],
"operator": ">"
}
Cart Subtotal (cart_value)
{
"type": "cart_value",
"value": ["100"],
"operator": ">="
}
Product Quantity (product_quantity)
{
"type": "product_quantity",
"value": ["5"],
"operator": "="
}
Operators
>- Greater than<- Less than>=- Greater than or equal to<=- Less than or equal to=- Equal to!=- Not equal to
Example Rule
{
"name": "Heavy Order Surcharge",
"type": "modify_method_price",
"price": 50.00,
"priority": 1,
"conditions_match": "all",
"conditions": [
{
"type": "cart_weight",
"value": ["10"],
"operator": ">"
}
]
}
This rule adds a €50 shipping charge when the cart weight exceeds 10kg.
Multiple Conditions
You can combine multiple conditions with conditions_match:
all: All conditions must be true (AND logic)any: At least one condition must be true (OR logic)
{
"name": "Premium Heavy Order",
"type": "modify_method_price",
"price": 75.00,
"priority": 0,
"conditions_match": "all",
"conditions": [
{
"type": "cart_weight",
"value": ["10"],
"operator": ">"
},
{
"type": "cart_value",
"value": ["200"],
"operator": "<"
}
]
}
This rule applies when the cart is heavy (>10kg) AND the subtotal is less than €200.
Next Steps
- Priority System - Learn how rule execution order works
- Common Scenarios - See practical examples
