# Free shipping when the cart contains a product in Shopify

To make the whole order ship free when a certain product is in the cart, add the condition **Product in cart Contains** and select the product, then set the rates to **Free**. Everything else in the cart ships free too, because shipping is charged per rate, not per item. Shopify's own [free shipping discount](https://help.shopify.com/en/manual/discounts/discount-types/free-shipping) has no product conditions, and a separate shipping profile with a free rate still charges shipping for the other items in a mixed cart. [RM: Advanced Free Shipping](https://apps.shopify.com/better-free-shipping) checks the cart at checkout and discounts the whole rate when the product is there. It costs $9.90 USD every 30 days, with a 7-day free trial, billed by Shopify.

## What the customer gets

In this example, buying the Coffee Starter Kit ($59) makes the whole order ship free. The rates are Standard $8.90 and Express $24.90.

- **The kit and an $18 bag of beans ($77):** the cart contains the kit, so it qualifies. Standard and Express are both free. The customer pays $77.
- **The kit on its own ($59):** it qualifies. The customer pays $59.
- **The beans on their own ($18):** no kit, so nothing changes. With Standard, the customer pays $18 + $8.90 = $26.90.

This makes a hero product work harder: customers add other items to the order, knowing the shipping is already covered.

## Set it up

1. In the app, click **Create Shipping Discount**.
2. Under **Discount method**, choose **Automatic discount**. New discounts start on **Discount code**, and the method can't be changed later. Enter a **Title** such as "Free shipping with the Starter Kit". Customers see it at checkout.
3. In **Conditions**, click **Add condition**. Change **Cart total** to **Product in cart**.
4. Keep the operator on **Contains**. Search for the product, or click **Browse** to open Shopify's product picker, and select it.
5. In **Discount setup**, set **Delivery type** to **Shipping**, **Which rates** to **All shipping rates** and **Discount value** to **Free**.
6. Click **Create discount**.

To let several products unlock free shipping, select them all in the same condition. Any one of them qualifies the cart.

![A Product in cart condition with its operator menu open, showing Contains, Does not contain, Contains (all) and Contains (any / strict mode), above a Cart total condition](/images/product-operator.png)

## Which operator to use

- **Contains:** at least one selected product is in the cart, and other items are fine. This is the one for "buy this and the whole order ships free".
- **Contains (all):** every selected product is in the cart. Use it when the reward needs a pair, such as the kit and a grinder together.
- **Contains (any / strict mode):** at least one selected product, and nothing else in the cart.
- **Does not contain:** none of the selected products are in the cart.

## Variations

- **Only one variant unlocks it:** use **Variant selector** and pick the variant, such as only the 1 kg size.
- **A whole range unlocks it:** put the products in a collection and use **Product collection Contains (any)**. See [free shipping on a collection](/guides/free-shipping-on-a-collection.md).
- **The product plus a cart value:** add **Cart total Is at least 100** in the same rule group. The kit and $18 of beans ($77) then pays $77 + $8.90 = $85.90 with Standard.
- **The product, or any cart over $100:** open the **⋯** menu on **Conditions**, choose **Add rule group**, and add **Cart total Is at least 100**. Either way qualifies.
- **Free Standard only:** set **Which rates** to **Choose specific rates** and select Standard. Express stays $24.90.
- **$5 shipping instead of free:** set **Discount value** to **Fixed Price** and enter 5. Standard becomes $5.

## Good to know

- **To target more than 150 products,** put them in a collection and use a collection condition. **Product in cart** holds up to 150 products.
- **To target a product tag,** create a smart collection based on the tag, then use **Product collection**.
- **To target a Shopify bundle,** select the bundle product itself, not the products inside it.
- **To keep free shipping when a sale code is used,** tick **Shipping discounts** under **Combinations** on that code in Shopify admin. See Shopify's guide to [combining discounts](https://help.shopify.com/en/manual/discounts/discount-combinations).
- **To test it,** turn on **Test mode** and check out with the shipping first name `ABC123`, once with the product and once without.

## Related

- [Free shipping on specific products](/guides/free-shipping-on-specific-products.md)
- [Free shipping on a collection](/guides/free-shipping-on-a-collection.md)
- [Free shipping except oversized items](/guides/free-shipping-except-oversized-items.md)
- [Conditional free shipping on Shopify](/conditional-free-shipping.md)

[Install RM: Advanced Free Shipping from the Shopify App Store](https://apps.shopify.com/better-free-shipping).
