How to stop shoppers who picked store pickup from choosing shipping at checkout
Short answer: If the shopper chose pickup in the cart, block checkout when they then select a shipping rate instead of pickup. In Checkpost, choose “Pickup chosen, but shipping selected” from Templates, adjust the values, test it, then save and enable the rule.
The problem
A shopper can select pickup in a cart integration and then choose a shipping method at checkout. The saved pickup workflow and fulfilment method disagree. This preset blocks that specific conflict when both values are known.
How to set it up
- Install Checkpost from the Shopify App Store.
- Open Templates and choose Pickup chosen, but shipping selected.
- Adjust the delivery types if your pickup app uses shipping rates named "Pickup" instead of Shopify pickup.
- Use Try this rule to test a sample cart, then click Save rule.
The rule
Checkout is blocked when all of these conditions are true:
- Cart attribute "Checkout-Method" is any of pickup
- Delivery method type is any of SHIPPING, LOCAL
Shoppers see: “You chose store pickup in your cart. Select the pickup option to continue.” at the top of checkout, once they reach checkout.
Rule definition (JSON)
{
"name": "Pickup needs a pickup method",
"match": "all",
"conditions": [
{
"kind": "attribute",
"key": "Checkout-Method",
"op": "equals_any",
"values": [
"pickup"
]
},
{
"kind": "text",
"field": "delivery_method_type",
"op": "equals_any",
"values": [
"SHIPPING",
"LOCAL"
]
}
],
"message": "You chose store pickup in your cart. Select the pickup option to continue.",
"target": "cart",
"runOn": "checkout"
}Examples with the default settings
These outcomes apply to this rule alone. Other enabled rules may also affect checkout.
| Test cart | Expected outcome |
|---|---|
| Cart pickup and checkout PICK_UP agree | Allowed by this rule |
| Cart pickup but checkout SHIPPING selected | Checkout blocked |
Where this rule works
These are cart and checkout validations, including supported accelerated checkouts. They are current-cart policies; they do not track previous purchases of a SKU. Shopify excludes POS, recurring subscription orders and native pre-order/Try Before You Buy flows from this API. See Shopify's validation compatibility.
Tips
- Confirm your integration saves Checkout-Method=pickup in the cart.
- The default rejects SHIPPING and LOCAL delivery types. If pickup is implemented as a specially named shipping rate, replace the type test with a Delivery method name condition that reflects your integration.
- The rule waits until a method is selected. It does not create, reserve or validate a pickup location.
FAQ
Will native pickup be allowed?
Yes. A selected PICK_UP method does not match the SHIPPING or LOCAL values blocked by the preset.
What if my pickup option is a shipping rate named Pickup?
The default would reject it because its type is SHIPPING. Customise the condition to distinguish the actual pickup rate by its name before enabling the rule.
Related rules
Pickup location must match the address
When a shopper chooses store pickup in the cart, block checkout if the address entered at checkout is not the chosen pickup location.
Require a delivery or pickup date
Block checkout when the shopper chose local delivery or pickup but didn't pick a date in the cart, so every order arrives with a slot.