> For the complete documentation index, see [llms.txt](https://docs.roadmap.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roadmap.so/discounts-and-gwp/using-gwp-and-discounts/create-a-shipping-discount.md).

# Create a shipping discount

Build automatic shipping discounts, including free-shipping offers for one-time, subscription, or mixed carts.

Use a shipping discount when the offer should reduce shipping, not product price.

This is the right fit for free shipping campaigns, shipping thresholds, and subscription-shipping incentives.

### What a shipping discount changes

A shipping discount changes the shipping charge on the order.

It does not change product prices.

Use it when the rule depends on:

* order value
* product purchase type
* shipping country

### Before you start

Decide these four things first:

* whether the discount should apply to one-time carts, subscription carts, or mixed carts
* whether the discount should apply in all countries or selected countries only
* whether free shipping should be percentage-based or a fixed amount
* what note shoppers should see in cart

### Create the shipping discount

{% stepper %}
{% step %}

#### Open the discounts dashboard

Go to **Discounts / Gift with Purchase**.

Create a new discount and choose **Shipping Discount**.
{% endstep %}

{% step %}

#### Add the internal setup details

Enter a clear **Name**.

Set the **Status** to **Active** when you are ready to run it.
{% endstep %}

{% step %}

#### Set the qualifying spend

Use **If the customer spends at least...** when the discount should start above a subtotal threshold.

Leave it at the lowest value only if the discount should apply without a spend threshold.
{% endstep %}

{% step %}

#### Choose the correct order type

Set **Order contains** based on the cart types that should qualify.

Use the option that matches your intent exactly.
{% endstep %}

{% step %}

#### Limit the shipping destination if needed

Use **Shipping Countries** to allow the discount in **All countries** or **Selected countries** only.

This is useful when shipping costs differ too much by market.
{% endstep %}

{% step %}

#### Set the shipping discount value

Add the **Discount Note** if you want customer-facing cart messaging.

Choose the discount type, then enter the value.
{% endstep %}

{% step %}

#### Choose the qualifying customer group

Set **Customer Eligibility**.

Common options include **All customers**, **Logged in only customers**, tagged customers, **Members**, and **Non-members**.
{% endstep %}

{% step %}

#### Set dates, save, and test

Choose the **Active Dates**, save the discount, then test with a fresh cart.
{% endstep %}
{% endstepper %}

### Choose the right **Order contains** option

This setting causes the most confusion.

It decides which cart composition can receive the shipping discount.

#### **One-time purchase items only**

Use this when the cart must contain only one-time items.

A cart with any subscription item will not qualify.

#### **Subscriptions only**

Use this when every item in the cart must be a subscription.

A mixed cart with one-time items will not qualify.

#### **At least one subscription**

Use this when any cart containing a subscription should qualify.

This includes mixed carts with subscription and one-time items together.

#### **Any product type**

Use this when purchase type should not matter.

This is the broadest option.

{% hint style="warning" %}
If a customer has a subscription product and a one-time product in the same cart, **One-time purchase items only** will block the shipping discount.

Use **At least one subscription** if mixed carts should still receive the offer.
{% endhint %}

### Best option for free shipping on mixed carts

If the goal is `free shipping whenever the cart includes a subscription`, use **At least one subscription**.

If the goal is `free shipping for all qualifying carts, regardless of purchase type`, use **Any product type**.

Do not use **One-time purchase items only** for mixed subscription carts.

### Percentage vs fixed amount

Use **Percentage** when the discount should scale with the shipping rate.

Use **Fixed amount** when the shipping discount should subtract a specific value.

{% hint style="info" %}
If the goal is true free shipping across different shipping rates, **Percentage** is usually easier to test.
{% endhint %}

### Country restrictions

Use **Selected countries** when the same shipping discount should not apply globally.

This is common when domestic shipping is cheap but international shipping is not.

If the discount seems inconsistent, confirm the shipping destination is included.

### Test before launch

Run these four tests:

1. a cart that should not qualify
2. a one-time cart that should qualify
3. a subscription-only cart that should qualify
4. a mixed cart with subscription and one-time items

If eligibility uses tags, membership, or login status, test with a real customer account.

### Most common mistake

The most common setup error is choosing the wrong **Order contains** option.

Support cases usually come from mixed carts that include a subscription and a one-time item, while the discount is set to **One-time purchase items only** or **Subscriptions only**.

### Related guides

* [Shipping discounts for subscription orders](/subscriptions/getting-started/shipping-discounts-for-subscription-orders.md)
* [Create an order discount](/discounts-and-gwp/using-gwp-and-discounts/create-an-order-discount.md)
* [Run multiple discounts & GWPs](/discounts-and-gwp/using-gwp-and-discounts/run-multiple-discounts-and-gwps.md)
* [Shipping discount not applying?](/discounts-and-gwp/troubleshooting/shipping-discount-not-applying.md)
* [Discounts not applying correctly](/discounts-and-gwp/troubleshooting/discounts-not-applying-correctly.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roadmap.so/discounts-and-gwp/using-gwp-and-discounts/create-a-shipping-discount.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
