← All notes

How to test product-specific shipping address restrictions on Shopify

Check mixed carts, delivery groups, product exceptions, and overlapping policies before a narrowly intended shipping restriction affects the wrong order.

A restricted item fails your checkout test. An unrestricted item passes. Then a shopper puts both in the same cart. You have tested the products, but you have not yet tested that order.

Product-specific address rules need a decision about combinations. If one item cannot reach the destination, should the shopper change the address, remove that item, or use a separate fulfillment arrangement? Decide before adding an exception that makes the checkout pass.

Check what makes a product match

Selecting a collection and a tag can mean “either one” or “both,” depending on the validation tool. Those interpretations produce different product groups. If selectors use OR matching, adding a tag broadens the scope; it does not narrow the selected collection.

Check one product with only the collection, one with only the tag, one with both, and one with neither. When you need an intersection that the editor cannot express, maintain a dedicated collection or tag for the intended group. Include variants: a product-level choice may cover options that do not share the same shipping limitation.

An exception needs an explicit unit

“Except this product” sounds precise until several products travel together. An exception might remove only that line from consideration, skip a policy for a delivery group, or exempt a whole cart. Confirm which behavior your tool implements; these meanings are not interchangeable.

Example: item A requires a street address. Item B can go to a PO box. If B triggers an exception that skips the policy for their entire delivery group, A may pass with it. B being shippable does not make A shippable.

Where possible, target only the items with the limitation rather than putting the whole catalog in scope and trying to subtract ordinary products through exceptions. Reserve a group-level exception for a condition that truly makes the entire group acceptable.

Also check whether an exception can match any cart item or only an item already inside the policy's scope. A product outside that scope may have no effect at all. Write the expected outcome next to the rule so a future catalog edit does not silently change its meaning.

Build a small matrix of real combinations

Use test products and synthetic address details. For the same restricted destination, run these cases and record the result and message:

  1. Restricted item alone: it should fail for the stated address reason.
  2. Unrestricted item alone: the product-specific policy should leave it unaffected.
  3. Restricted and unrestricted items together: the restricted item should not become eligible merely because another item was added.
  4. Restricted and exception items together: verify whether the exception changes a line, a delivery group, or the cart.
  5. The same products with an accepted address: confirm that correcting the address resolves this restriction.

Repeat relevant combinations with products that your store actually ships in separate delivery groups. Do not assume the cart is evaluated as one shipment. A simulator that accepts one address and one product helps check a rule in isolation; it cannot prove all mixed-cart or split-delivery outcomes.

Passing an allowlist may not end validation

A destination can be inside a policy's permitted country list and still match a separate PO box or postal-area block. Likewise, an exception to one rule may leave the remaining rules active. Test an address that satisfies one rule and violates another.

If the engine displays the first blocking match, priority decides which explanation the customer reads first. Put the most useful correction early, then verify what appears after that correction. A sequence of messages that ask for incompatible changes is a policy problem, not a copywriting problem.

For the broader destination decision, use the checks in when to restrict delivery addresses. Finish this review by removing and re-adding the exception item in a test cart. If that changes the outcome, confirm that it also changes your ability to fulfill the restricted item before keeping the exception.