Start with the delivery outcome
Define the customer-facing outcome before choosing a condition. Typical outcomes are pickup-only, local-delivery-only, shipping-only, or a reusable advanced rule that allows only named delivery methods. PickupLock removes incompatible options; it does not calculate rates.
Choose the narrowest maintainable condition
- Manual products: best for a small, explicit list.
- Collection: useful when merchandising already groups products correctly.
- Product tag: useful for a merchant-defined operational attribute.
- Vendor or product type: useful when those catalog fields consistently describe fulfillment.
A dynamic condition should describe real catalog data, not become a second manual list. When product data changes, the materialized Cart Warning coverage follows automatically while checkout continues to evaluate the rule in Shopify Functions.
Handle mixed carts with restrictive intersection
Suppose one item allows shipping and pickup, while another allows pickup only. The cart can offer pickup because it is valid for both products. Shipping must be hidden because it is invalid for one product. This intersection prevents a permissive product from weakening a stricter rule.
Add destination countries only when necessary
A country-specific rule is appropriate when the same product can ship normally in one country but must use selected methods in another. Configure the product condition and destination countries together, then test both a matching and non-matching destination.
Verify method matching
Delivery method titles can vary by carrier, market, and checkout language. Built-in pickup, local delivery, and shipping classifications are preferable when they express the desired result. For reusable “allow only these methods” rules, test the actual methods and languages your checkout presents.
Use Simulator as a preflight check
Select the same products, destination country, and representative delivery methods. Review available methods, hidden methods, and the rule trace. Then perform one real test checkout before relying on the rule.