---
title: "Quikly Discounts in Shopify"
description: "How Quikly offers appear in your Shopify admin, how each Quikly setting maps to the Shopify discount, and why every change should be made in Quikly."
---

Quikly offers run on Shopify's own discount system. Each tier in your campaign becomes its own standard Shopify discount code, which Quikly creates and keeps up to date from your campaign's settings. You'll see these discounts in your Shopify admin under **Discounts**, alongside every other discount in your store, and their orders show up in Shopify's sales-by-discount reports.

You don't need to build anything in Shopify. Set up the offer in Quikly, and Quikly handles the discount.

:::caution[Make every change in Quikly]
You can view Quikly discounts in Shopify, but don't edit them there. Quikly overwrites Shopify edits the next time the campaign is updated, and until then the campaign and checkout can disagree. See [Editing a Quikly discount in Shopify](#editing-a-quikly-discount-in-shopify).
:::

## Each Tier Is Its Own Discount

A campaign with three tiers creates three discount codes in Shopify, one per tier. For example, a campaign offering $20, $15 and $10 off appears in the Discounts list as three separate discounts:

<img src="/shopify/offers-in-shopify/tiers-in-discounts-list.png" alt="Shopify Discounts list with three Quikly discounts: $10, $15 and $20 off your order" style="max-width: 1234px; width: 100%; height: auto;" />

## Recognizing a Quikly Discount

Discount titles come from the offer title, not the campaign name, so offers from different campaigns can look alike. Two ways to tell a discount came from Quikly, whatever its code is named:

- **In the Discounts list**, hover over a discount to see a small Quikly icon.

<img src="/shopify/offers-in-shopify/discounts-list-hover-icon.png" alt="Shopify Discounts list with the Quikly icon shown on the hovered row" style="max-width: 545px; width: 100%; height: auto;" />

- **On the discount page**, the code section reads "created by Quikly App."

<img src="/shopify/offers-in-shopify/created-by-quikly-app.png" alt="Shopify discount page showing 1 code created by Quikly App" style="max-width: 890px; width: 100%; height: auto;" />

## The Discounts List

| Column | What it shows for a Quikly offer |
| --- | --- |
| **Title** | The offer title, e.g. "$20 off your order" |
| **Status** | Active, Scheduled or Expired, based on the campaign's timing |
| **Method** | "1 code": a code the shopper enters, not an automatic discount |
| **Eligibility** | All customers (see [Eligibility and Audience Targeting](#eligibility-and-audience-targeting)) |
| **Type** | Amount off order, Amount off product, Buy X get Y, or Free shipping |
| **Combinations** | Icons for product, order and shipping discounts. A dimmed icon means the offer won't combine with that type. |
| **Used** | How many orders used the code |

## How Each Setting Maps to Shopify

| In Quikly | In Shopify | Notes |
| --- | --- | --- |
| Type: Fixed amount or Percentage | Discount value: Fixed amount or Percentage | |
| Type: Free shipping | Discount type: Free shipping | |
| Discount value | Discount value amount or % | |
| Discount applies to | Applies to | All products, or specific products or collections |
| Require minimum purchase | Minimum purchase requirements | |
| Apply discount to each item (checked) | Only apply discount once per order (unchecked) | Same setting, opposite wording |
| Purchase type | Purchase type | One-time, subscription, or both |
| Recurring payments for subscriptions | Recurring payments for subscriptions | Same three options in both |
| Require specific product(s) in cart | Discount type changes to **Buy X get Y** | The only setting that changes the discount type |
| Combinations | Combinations | See [Combining Offers with Other Discounts](/shopify/tutorials/combining-discounts) |
| Quantity | Maximum discount uses | Quantity + 5. See [Usage limits](#usage-limits). |
| Discount code | Code (read-only) | Must be new to the store |
| Offer title | Discount title | |
| Short title, subtitle, destination URL, terms and conditions | Not sent | Shown only in the campaign, if its design includes them |
| Campaign start and end | Schedule | See [Timing](#timing) |
| Audience Targeting | Not sent | Eligibility is always All customers |

For details on each Quikly setting, see [Configuring Offers](/shopify/tutorials/offer-configuration).

Shopify's discount page also sums up every setting in plain language in its sidebar:

<img src="/shopify/offers-in-shopify/discount-summary-sidebar.png" alt="Shopify sidebar summary for discount QKLYGRAB15, listing its type and details" style="max-width: 237px; width: 100%; height: auto;" />

## Usage Limits

A tier's quantity appears in Shopify as **Maximum discount uses**, plus a buffer of 5. A tier with a quantity of 50 shows a limit of 55 uses:

<img src="/shopify/offers-in-shopify/maximum-discount-uses.png" alt="Shopify maximum discount uses set to 55" style="max-width: 522px; width: 100%; height: auto;" />

The buffer is there because Shopify's count and Quikly's count can drift slightly. Quikly enforces the real limit of 50, and the limit and the campaign's count hold even if the code is used outside the campaign.

:::note
Campaigns created with the new-campaign builder show no usage limit in Shopify until an offer is saved on the **Offers** tab.
:::

## Eligibility and Audience Targeting

Every Quikly discount shows **Eligibility: All customers** in Shopify.

<img src="/shopify/offers-in-shopify/eligibility-all-customers.png" alt="Shopify eligibility: All customers" style="max-width: 522px; width: 100%; height: auto;" />

That's expected. Quikly controls *who sees the campaign* through its visibility settings (activation links, URL rules, visibility percentage, visitor limits, countries and more), and those settings stay in Quikly. Shopify's Eligibility controls *who can redeem the code* at checkout, and Quikly always leaves it open to all customers.

See [Campaign Visibility Controls](/shopify/tutorials/visibility-controls) for how to target a campaign.

## Timing

The campaign's start and end set the discount's schedule in Shopify. Two settings in **Edit Timing** shift that schedule:

| In Quikly | In Shopify |
| --- | --- |
| Campaign start | Schedule start |
| **Activate discount codes before campaign launches** | Schedule starts when the timing is saved |
| Campaign end: specific date | Schedule end |
| Campaign end: when all offers are claimed | No end date |
| **Discount code grace period** | Added to the schedule end |

For example, a campaign running Oct 28 from 10:00 AM to 11:59 PM, saved on Oct 27 at 11:03 AM with early activation on and a 30-minute grace period, has this schedule in Shopify:

<img src="/shopify/offers-in-shopify/shopify-schedule.png" alt="Shopify schedule: start Oct 27 at 11:03 AM, end Oct 29 at 12:29 AM" style="max-width: 520px; width: 100%; height: auto;" />

See [Test Offer Codes Before Launch](/shopify/tutorials/test-before-launch) for both settings.

## When Campaigns and Tiers Change

| In Quikly | In Shopify |
| --- | --- |
| The campaign ends or reaches its end date (even if it was never published) | The discount shows **Expired** |
| A tier is deleted | The discount is removed |
| A tier's code is changed | The new code replaces the old one, and the old code stops working |

## Editing a Quikly Discount in Shopify

Shopify doesn't notify Quikly when a discount is edited in Shopify. A Shopify edit stays in effect until the campaign is next updated in Quikly, and then Quikly's settings overwrite it without warning.

These count as a Quikly update:

- Saving an offer on the **Offers** tab
- Changing **Edit Timing** (this resends every offer)
- Changing a quantity on a live campaign

Publishing doesn't count. A live campaign that isn't updated keeps the Shopify edit, which leaves it out of step with what the campaign shows.

| If you change this in Shopify | What happens |
| --- | --- |
| Type (e.g. amount off to percentage off) | The campaign says "$20 off," but checkout applies the percentage. |
| Discount value | The campaign and checkout show different amounts. |
| Combinations | Applies until the next Quikly update, then reverts. |
| Eligibility (e.g. a customer segment) | Enforced at checkout, so shoppers your campaign targets can be rejected. Resets to All customers on the next Quikly update. |
| Minimum purchase | Applies until the next Quikly update, then reverts. |
| Start or end date | Replaced by the campaign's dates on the next Quikly update. |
| Deactivate | The campaign shows a code that checkout rejects. |
| Delete | The campaign shows a code that no longer exists, and deleting that tier in Quikly may then fail. |
| Title | Harmless. It's only shown in the admin, and resets on the next Quikly update. |

The discount code itself is read-only in Shopify. To change it, edit the tier in Quikly.

### Check Whether an Edit Was Overwritten

Scroll to **Timeline** at the bottom of the discount page in Shopify:

- **"You edited this discount"** is a change made in Shopify.
- **"Quikly edited this discount"** is an update from Quikly.

A Shopify edit followed by a Quikly edit means the Shopify change was overwritten.

<img src="/shopify/offers-in-shopify/discount-timeline.png" alt="Shopify Timeline showing a Shopify edit followed by two Quikly edits" style="max-width: 622px; width: 100%; height: auto;" />

## Related Tutorials

- [Configuring Offers](/shopify/tutorials/offer-configuration) — Every offer setting in Quikly
- [Combining Offers with Other Discounts](/shopify/tutorials/combining-discounts) — Stacking and affiliate codes
- [Test Offer Codes Before Launch](/shopify/tutorials/test-before-launch) — Early activation and the grace period
- [Campaign Visibility Controls](/shopify/tutorials/visibility-controls) — Control who sees the campaign
- [Identifying Quikly Orders](/shopify/identifying-quikly-orders) — How Quikly attributes orders to a campaign