> For the complete documentation index, see [llms.txt](https://docs.shopwaive.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.shopwaive.com/shopify/discounts.md).

# Discounts

Create multiple discounts for the same customer each with a unique expiration date, value, and voucher code

The Discount features of Shopwaive are designed specifically for Shopify and Shopify Plus brands, to address their most frequent pain points and eliminate mundane tasks. Use these features to streamline your brand marketing strategies and work flows.

## Product features

Note, Shopwaive balances and gift cards are tracked and issued separately from rewards and discounts. Balances and gift cards can be combined with shipping credit, rewards, and discounts but each can be used for a powerful combination strategy to increase CRO and checkout conversions. See feature table below and the full list of Shopwaive's products and their [features](/shopify/features.md)

<table><thead><tr><th width="250">Feature</th><th width="522.3333333333333" data-type="checkbox">Discounts</th></tr></thead><tbody><tr><td>Combine with other offers</td><td>true</td></tr><tr><td>Single expiry date</td><td>true</td></tr><tr><td>Pro &#x26; Enterprise available</td><td>true</td></tr><tr><td>Multiple expiry dates</td><td>true</td></tr><tr><td>Multiple for same email</td><td>true</td></tr><tr><td>Bulk import available</td><td>true</td></tr><tr><td>Bulk export available</td><td>true</td></tr><tr><td>Requires customer login</td><td>false</td></tr><tr><td>Refunds and exchanges</td><td>true</td></tr><tr><td>Digital wallet functionality</td><td>false</td></tr><tr><td>Shopwaive widget</td><td>false</td></tr><tr><td>Klaviyo Integration</td><td>false</td></tr><tr><td>Zapier Integration</td><td>false</td></tr><tr><td>Email integration</td><td>true</td></tr><tr><td>Order API</td><td>false</td></tr><tr><td>Customer API and Top ups</td><td>false</td></tr><tr><td>Shopify POS</td><td>true</td></tr><tr><td>Subscriptions and Flows</td><td>true</td></tr><tr><td>Reporting and analytics</td><td>true</td></tr><tr><td>Currency options</td><td>false</td></tr><tr><td>Multilingual</td><td>true</td></tr><tr><td>Checkout</td><td>true</td></tr><tr><td>Fraud protection</td><td>true</td></tr><tr><td>24/7 Customer Support</td><td>true</td></tr></tbody></table>

{% hint style="success" %}
**Tip:** You have the option to create rewards and discounts in bulk, with or without assigning sender, recipient, and customer email. With Shopwaive we make it easy to get exactly what you need, and nothing you don't
{% endhint %}

{% hint style="info" %}
One import takes up to 30 codes. Split a longer list into several files. Questions? Contact us at <support@shopwaive.com>
{% endhint %}

## Where to find discounts

Open the app and click <mark style="color:blue;">**Discounts**</mark> in the left side menu. The page lists your discounts and has an <mark style="color:blue;">**Import**</mark> button. There is no setting to turn on first.

Click <mark style="color:blue;">**Import**</mark> to create discount codes in bulk, as described below.

## Create discount codes

{% hint style="info" %}
**Tip:** The terms <mark style="color:blue;">voucher</mark>, <mark style="color:blue;">rewards</mark>, and <mark style="color:blue;">discount</mark> codes are used interchangeably throughout the documentation without any distinguishable difference. These terms all refer to redeeming an offer at the Checkout page by using a unique code in the **Gift card or discount code** field on the Shopify platform. You can also enter these codes in the Shopwaive popup, when <mark style="color:blue;">**Settings**</mark> > <mark style="color:blue;">**Popup**</mark> > <mark style="color:blue;">**Show discount field**</mark> is on, to combine with other offers such as balances or FREE shipping. See [Combinations](/shopify/accounts/app-embed/combinations.md)
{% endhint %}

Next, create discount codes in bulk, each with the criteria you define.

Follow these steps to create unique discount codes

### Create Bulk Discount Codes — Step-by-step: <a href="#import-rewards" id="import-rewards"></a>

1. Open <mark style="color:blue;">**Discounts**</mark> in the app and click <mark style="color:blue;">**Import**</mark>
2. Click <mark style="color:blue;">**Download the CSV import file**</mark> to download the template file to your local drive
3. Fill out the template file with your reward definitions using a spreadsheet editor such as Google Sheets, Numbers, or Excel. Many options exist for each reward, but the minimum field requirements are <mark style="color:blue;">OncePerCustomer</mark>, <mark style="color:blue;">Value</mark>, and <mark style="color:blue;">Type</mark>. Ensure you do not make any changes to the header names or format
4. Save and export your template file to <mark style="color:blue;">.CSV</mark> format
5. Drop the .CSV file onto the upload area of the page, or click the area to choose the file
6. If the file is in the correct format, a banner tells you how many codes are ready for import. If a row has a problem, the banner names the row and nothing is imported
7. Click the <mark style="color:blue;">**Import**</mark> button to create the rewards

{% hint style="info" %}
If the <mark style="color:blue;">Code</mark> field is left blank in the template file, a random alphanumeric code will be auto-generated. Many brands choose to follow naming conventions for codes for ease of tracking, analytics and reporting. Although not required, you may choose to add a unique suffix or prefix if generating hundreds of codes to make editing or deleting codes after the bulk creation event an easy task
{% endhint %}

{% hint style="success" %}
Only the <mark style="color:blue;">OncePerCustomer</mark>, <mark style="color:blue;">Value</mark>, and <mark style="color:blue;">Type</mark> fields are required for successful reward creation as noted by items marked with a check in the column labeled with an asterisk <mark style="color:blue;">**\***</mark>
{% endhint %}

## Template file description

<table><thead><tr><th width="198">Header</th><th width="213">Description</th><th width="284">Example</th><th width="74" data-type="checkbox">*</th><th>Format</th></tr></thead><tbody><tr><td>Email</td><td>Customer email</td><td>example@gmail.com</td><td>false</td><td>text</td></tr><tr><td>Code</td><td>Discount code</td><td>SUMMER40</td><td>false</td><td>text</td></tr><tr><td>Type</td><td><strong>percentage</strong> or <strong>fixed</strong></td><td>percentage</td><td>true</td><td>enum</td></tr><tr><td>Value</td><td>Must be greater than <strong>0</strong></td><td>40</td><td>true</td><td>decimal</td></tr><tr><td>OncePerCustomer</td><td><strong>true</strong> or <strong>false</strong></td><td>true</td><td>true</td><td>boolean</td></tr><tr><td>Expiration</td><td>Expiry date, after today</td><td>9/1/2028</td><td>false</td><td>date</td></tr><tr><td>UsageLimit</td><td>Integer greater than <strong>0</strong></td><td>2</td><td>false</td><td>integer</td></tr><tr><td>CollectionIDs</td><td>Entitled collection ids</td><td>[334674428128,334674428120]</td><td>false</td><td>array</td></tr><tr><td>ProductIDs</td><td>Entitled product ids</td><td>[28398293800]</td><td>false</td><td>array</td></tr><tr><td>VariantIDs</td><td>Entitled variant ids</td><td>[90293839983]</td><td>false</td><td>array</td></tr></tbody></table>

{% hint style="info" %}
If the reward is restricted to a single customer using the Email field (optional) and the email is not already associated with a Customer in the Shopify Admin, then you will need to upload the reward template definition twice. The first time a new Customer with email address you have defined will be created, after which point, when you upload the template file a second time the reward definition will be created and assigned to that customer.
{% endhint %}

### Example template file

| Email            | Code     | Value | Type       | OncePerCustomer | Expiration | UsageLimit | CollectionIDs | ProductIDs | VariantIDs |
| ---------------- | -------- | ----- | ---------- | --------------- | ---------- | ---------- | ------------- | ---------- | ---------- |
|                  | BCFM2023 | 20    | percentage | false           |            |            |               |            |            |
|                  | SUMMER40 | 40    | fixed      | true            |            |            |               |            |            |
| <shop@gmail.com> |          | 15    | percentage | true            |            |            |               |            |            |

> **Example**: A new high-growth global brand known as Unicorn Shoes has a long list of potential customers from a paid promotional email marketing campaign whom have not yet registered the email account through Unicorn's website. Using Shopwaive, the brand can grant welcome rewards, promotional offers, and discounts to incentivize these new potential customers

## Creating rewards from the template

You can define rewards using any spreadsheet editor. Just copy and paste in your reward definitions into the template file you downloaded above. Then, export the file in <mark style="color:blue;">.CSV</mark> format before uploading to Shopwaive

<figure><img src="https://1743155819-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6HSAZj4RDucpQwVtzMYt%2Fuploads%2FI7PlLf4D0Fp6zg6Bwexv%2FDemo_Template.gif?alt=media&amp;token=90301c3a-dbf8-48ca-8bb3-75fb23faa042" alt=""><figcaption><p>Create bulk discount and reward offers with the Shopwaive template</p></figcaption></figure>

### Collection, Product, and Variant IDs

You have the option to restrict rewards and discounts to only be eligible for redemption towards purchases of specific products defined by their collection ID, product ID, or variant ID.

{% hint style="info" %}
If the rewards or discount applies to all collections, products, and variants then you can simply leave the cells beneath these headers blank (and skip the remaining portion of this section) Ensure you include the header names themselves (i.e. CollectionIDs, ProductIDs, VariantIDs) in the template file even if you do not define any
{% endhint %}

To find a specific product ID, simply navigate to the **Shopify admin** > **Products** > Select the product to be redirected to the product details page.

When you reach the product details page of the product that the reward or discount applies to, make note of the **id** found in the url at the top of the page. In the example below the product id is **7343146434776**. Include this product ID in the template when defining the rewards definition. If more than one ID, separate each by comma.

<figure><img src="https://1743155819-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6HSAZj4RDucpQwVtzMYt%2Fuploads%2F1yQSVlJCU7brKs9GQHGD%2Fproduct_id.png?alt=media&amp;token=1dde9b42-e4ed-499e-b25f-1e20d159ef68" alt=""><figcaption><p>Find the product ID of a specific product by visiting the product details page</p></figcaption></figure>

### Formatting IDs in the template file

Examples of proper formatting of the collection, product, and variant ID arrays are shown below

| ProductIDs                                                        | Correct format?                                              |
| ----------------------------------------------------------------- | ------------------------------------------------------------ |
| <mark style="color:green;">\[7343146434776, 5343146434770]</mark> | <mark style="color:green;background-color:green;">Yes</mark> |
| <mark style="color:red;">7343146434776 5343146434770</mark>       | <mark style="color:red;background-color:red;">No</mark>      |
| <mark style="color:red;">7343146434776</mark>                     | <mark style="color:red;background-color:red;">No</mark>      |
| <mark style="color:red;">'7343146434776, 5343146434770'</mark>    | <mark style="color:red;background-color:red;">No</mark>      |
| <mark style="color:green;">\[7343146434776]</mark>                | <mark style="color:green;background-color:green;">Yes</mark> |

## Create and upload discounts

{% hint style="success" %}
Refer to the GIF demo below that illustrates how to copy and paste your rewards definition into the template file and upload to Shopwaive. You can export, delete, or edit codes at anytime within the [Shopify](https://www.shopify.com) admin Discounts page
{% endhint %}

Contact our team at <support@shopwaive.com> if you have any questions or need help getting started. We're here and happy to help.

## Export discount codes

Now that you created rewards with Shopwaive, you can export the list of discount codes in just a few clicks

### Export Discount Codes — Step-by-step:

1. Open the Shopify admin and navigate to <mark style="color:blue;">**Discounts**</mark>
2. Click <mark style="color:blue;">**Export**</mark> at the top right corner and then select All Discounts, or choose to filter discounts by the code title or any other attribute
3. You will receive an email with a link to download your exported discounts. Note, if you did not define a discount code in the template file, an alphanumeric code is auto-generated

<figure><img src="https://1743155819-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6HSAZj4RDucpQwVtzMYt%2Fuploads%2FVqqanfruBriewrsmZL60%2FExportDiscounts.gif?alt=media&amp;token=b7d5dd8d-035c-4145-937e-e93df25d933a" alt=""><figcaption><p>Export discount codes in the Shopify admin</p></figcaption></figure>
