Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 135 additions & 0 deletions documentation/build/free-shipping.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
---
title: "Combine free shipping with item discounts"
description: "A step-by-step tutorial on using dynamic discounts to create a single voucher that provides both free shipping and a percentage discount on items"
keywords: ['free', 'shipping', 'dynamic', 'discounts']
---

One of the most powerful ways to use Voucherify is combining multiple discount effects into one campaign.

With **dynamic discounts**, you can influence prices for the whole cart or specific items based on conditions such as order value, currency, or metadata.

In this tutorial, you will create a single discount that gives **free shipping** (100% off) and a **5% discount** on items.

This setup works for:
- **Discount coupons**
- **Cart promotions**
- **Unique codes campaigns**

<Info>
Before you start:

- Your store must send **products and shipping as separate cart items**.
- Voucherify must be able to recognize your products (via the **Products catalog** or product IDs in API requests).
- Products should belong to a collection (for example, **All Products**).
- The **Shipping** item should not be part of the discounted product collection.
- You do not need to import the full catalog — product IDs can be passed dynamically in API calls.

See:
- [Products](/prepare/products)
- [Product collections](/prepare/product-collections)
</Info>

## Create the campaign

Create a campaign using your preferred type, for example **Discount Coupons** or **Cart Promotion**.

Configure the basic campaign settings such as code generation, timeframe, and limits as needed.

If you need help with campaign setup, see:
- [Create discount coupons](/build/create-discount-coupons)
- [Create cart promotions](/build/create-discount-promotions)

## Configure free shipping and item discount

Define two price rules using **Products discounts → New price**.

<Steps>
<Step title="Add discount definitions">
In the discount configuration step, select:

**Products discounts → New price**

Then click **Add another** to create a second rule.
</Step>

<Step title="Set free shipping">
- Select **Shipping** as the product.
- Set **New price** to `0`.

This makes shipping free.
</Step>

<Step title="Set a 5% item discount">
- Select **All Products** (or another product collection).
- Set a safe **fallback value** (for example, original price).

Then build the formula:

- **Order item → Price**
- Multiply (`*`)
- `0.95`

This sets the new price to 95% of the original value, which gives a 5% discount.
</Step>

<Step title="Save the campaign">
Save the campaign and test it in your checkout flow.
</Step>
</Steps>

## Notify customers

Use your preferred communication channel to promote the offer, such as:

- Voucherify distributions
- Email or push notifications
- On-site banners or checkout messages

When customers apply the discount, they receive **free shipping** and a **5% item discount** in a single campaign.

## Related features

<AccordionGroup>

<Accordion title="Validation rules">

Use validation rules to control when the discount can be applied.

For example, you can restrict the campaign to:
- minimum order value
- specific customer segments
- selected sales channels

Validation rules work alongside dynamic discounts: validation rules define **when the campaign is valid**, while price rules define **how prices are changed**.

See [Create validation rules](/optimize/create-validation-rules).

</Accordion>

<Accordion title="Customer segments">

Target the promotion to specific customer groups, such as new users or VIP customers.

See [Customer segments](/prepare/customer-segments).

</Accordion>

<Accordion title="Campaign limits">

Control how often the campaign can be redeemed, either per customer or globally.

This is useful for limiting the impact of combined discounts.

See [Campaign limits](/guides/campaign-limits).

</Accordion>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As the last section, add ## Related features. Mention especially validation rules. Think of other features that can be combined here or ask the Agent to suggest something.

<Accordion title="Product bundles">

If you need more advanced cart logic, for example conditional discounts based on product combinations, consider using bundles together with dynamic discounts.

See [Product bundles](/build/product-bundles).

</Accordion>

</AccordionGroup>
3 changes: 2 additions & 1 deletion documentation/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,8 @@
"build/create-discount-promotions",
"build/discount-types-and-effects",
"build/discount-code-import",
"build/product-bundles"
"build/product-bundles",
"build/free-shipping"
]
},
{
Expand Down
Loading