Free Shipping Over $X, Excluding Specific Variants

Offer free shipping when orders exceed a threshold, but exclude orders that contain a specific variant (e.g., oversized items, sample sizes, or products with special shipping requirements).

The Setup

  1. Click Create ruleDiscount shipping.
  2. Rule name: “Free shipping over $99, no 30ML”
  3. Rule status: Test
  4. Discount type: All shipping free
  5. Validation trigger: On condition
  6. Add two conditions in the same group (AND logic):
    • Condition 1: Order subtotal → Is greater than → 99
    • Condition 2: Product variant option → Not equals to → “30ML” → set to For all products
  7. Click Save.

Why “For All Products” Is Critical

This is the most important part of the setup. The scope must be set to “For all products”, not “For at least one product.”

With “For all products”: The condition checks that every item in the cart is not the excluded variant. If any item is “30ML”, the condition fails and free shipping does not apply. This is the correct behavior.

With “For at least one product” (wrong): The condition checks if any item is not the excluded variant. In a cart with a “30ML” item and a “100ML” item, the “100ML” passes the check, so free shipping would still apply — even though the excluded variant is in the cart.

For a deeper explanation, see “For At Least One Product” vs “For All Products”.

Variations

Exclude by Product Tag Instead of Variant

If you want to exclude products tagged “oversized”:

  • Condition 2: Product tag → Not equals to → “oversized” → For all products

Exclude by Specific Product

The Product condition (product picker) checks whether selected products are in the cart — it doesn’t have a “Not equals to” trigger. To exclude a specific product, use Product title instead:

  • Condition 2: Product title → Not equals to → “My Product Name” → For all products

Or use Product tag if the product has a unique tag:

  • Condition 2: Product tag → Not equals to → “no-free-shipping” → For all products

Exclude Multiple Variants

To exclude both “30ML” and “50ML”, use two conditions:

  • Condition 2: Product variant option → Not equals to → “30ML” → For all products
  • Condition 3: Product variant option → Not equals to → “50ML” → For all products

All three conditions in the same group with AND logic.

Custom Discount Label

If you’re using a discount type other than “All shipping free” (which hides the label field), you can set a custom Discount label like “FREESHIPPING” that customers see at checkout. See Custom Discount Name at Checkout.

Testing

  1. Set rule status to Test.
  2. Go to your store checkout with test@testing.com.
  3. Test with a cart over $99 that does NOT contain the excluded variant — free shipping should apply.
  4. Test with a cart over $99 that DOES contain the excluded variant — regular shipping prices should appear.
  5. Test with a cart under $99 — regular shipping prices should appear.
  6. Once confirmed, set to Active.