Coupons

Antavo has built the Coupons module to centralize the definition and management of all coupons within the loyalty program in one place. The coupon pools created in this module can be used in numerous instances, including, the Rewards module, the Offers module, and Workflows.

Find the configuration page of the Coupons module by typing ‘Coupons’ into the search bar of the Modules menu. The page will open to the list of coupon pools that are already been configured with the following information:

  • Name of the coupon pool

  • Source (generated, uploaded, remote, bulk-generated)

  • Type (amount, percentage, free shipping, gift card)

  • Value of the coupons

Create a new coupon pool

You can access and display all the below-configured information on the membership site through the Display API, the Entities API and the Coupons API. Please consult your developers to implement the necessary calls.

  • Click the ‘Create coupon pool’ option in the sidebar

  • Add the name of the coupon pool

Coupon source

  • Select one of the four coupon sources: uploaded, generation, remote or bulk generation.

sources.png

Generation and bulk generation

If you want Antavo to generate codes, define the coupon pattern that the automatic coupon generation will follow, based on the following rules:

# denotes a digit (0-9)
@ denotes an alphabet character (a-z)
^ denotes a capital alphabet character (A-Z)
* denotes an alphanumeric character
$ denotes a capital alphanumeric character

All other characters should be copied into the generated code as literals (eg. if you set ‘@##COUPON’, a generated coupon code could be G11COUPON or T35COUPON).

If you would like to assign a generic coupon code to all customers, don’t use pattern characters, only literals (eg. if you set ‘SPRINGCOUPON’, all coupons codes to each customer will be generated as SPRINGCOUPON)
However, when defining the pattern of bulk-generated coupons, you must add at least 4 variables, which ensures that coupons can serve high demands.

Each coupon pool must have a unique pattern.

Bulk-generation settings

Coupon pools with bulk-generated source have specific settings you can configure:

  • Exclude characters
    List any characters, separated by commas, that you'd like to exclude from coupon code generation to prevent confusion of characters (eg. O and 0 or 1 and I). Remember to list both lowercase and uppercase letters separately.

The 'Number of unique combinations' dynamically calculates the total number of coupon combinations available as you add new excluded characters.

  • Exclude phrases
    List specific phrases that you’d like to exclude from coupon code generation to ensure that unintentional or inappropriate texts are not used.

  • Number of coupons
    Define the desired quantity of coupons to be generated, ranging from 1 to 100 million.
    Please note, that the number of coupons must be a maximum of 1% of the coupon pattern variations. This prevents the possibility that customers make lucky guesses on valid coupon codes if they are already familiar with the pattern.
    The maximum number of coupon codes is determined by the coupon pattern and displayed in the helptext. Keep in mind, this number might be lower if you have excluded certain characters or phrases.

Upload

Choose the upload option if you want to upload a set of coupons to distribute. One coupon code can only be uploaded to one coupon pool, duplications are skipped automatically during the import process.
Learn more about how to upload coupon codes here.

Remote

If you’d like to maintain control over coupon management, you can set a callback URL endpoint that serves Antavo with coupon codes to issue. When generated by the external system, it is also determined to whom the coupon is assigned, thus facilitating validation.
The process requires the URL endpoint that receives POST requests from Antavo and responds with a coupon code.

Whenever the system requests a code, it will send the following request:

{ "api_key" => "DEMODEMODEMOSDJDSIFDKDF", "coupon_percentage" => "20", "value" => "THE COUPON VALUE", "customer" => "53626328374843843", "type" => "percentage" }
  • The API key has to be checked against a stored API key to prevent any malicious requests to generate coupon codes

  • The percentage value of the percentage-type coupon

  • The value of the amount-type coupon

  • Customer identifier

  • Other potential values.

As a response the system expects the code in the following format:

{ "code" => "COUPON CODE" }

If the system receives the coupon code, it is automatically passed on to the customer.

General settings

  • Define the type of coupons in the pool

    • Fix amount

    • Percentage-off

    • Free shipping

    • Gift card
      Customers use gift card coupons at multiple checkouts until the entire monetary value is spent.

  • Define the value of the coupons in the pool – not applicable to free shipping coupons

Restrictions

  • Add a minimum value – only applicable to gift card coupons
    The gift card will be invalidated if the balance falls below this amount.
    eg. if a $100 gift card has its minimum value of $1 and the customer uses the gift card to pay $99.5, then the card balance falls below $1 and therefore the card would be voided.

  • Add a minimum redemption value - only applicable to gift card coupons
    The customer must use at least this amount of the gift card each time they redeem it at checkout to reduce the basket value.
    eg. if the customer wants to redeem $10 of its $100 gift card to pay partially at purchase, but the minimum redemption value is $15, the redemption would fail with an error message.

  • Add a purchase minimum
    Restrict the usage of a coupon to a minimum basket value.

  • Set an expiration period
    The coupon code's expiration date is calculated from when the coupon was assigned to the customer.

  • Add stores
    Pre-defined offline stores created/listed within the Stores module can be used to localize the validity of the coupon codes.

  • Decide if you want to assign an aggregated coupon
    Tick the checkbox to have the same coupon code assigned each time this coupon pool issues a coupon for one specific customer.

  • Add products

    It is possible to create and redeem coupons for individual products by selecting item(s) (previously added in the Product catalog module) to which the discount should apply.

Pass template

In case you use the Wallet module, you might want to select a pass template to be assigned to the coupons in the currently configured pool. The coupon pass that customers can add to their wallet application will be generated based on the selected pass template.

User group

In case you use the User group module and enabled the ‘Coupon pool’ and ‘Coupons’ entities in the settings you need to assign a group to the coupon pool. Unauthorized users will not be able to access the coupon pool in the Backoffice interface and the corresponding coupon statistics.

Saving a coupon pool

Don’t forget to click the ‘Save’ button at the end of the configuration process.

Uploading coupons

  • Click the ‘Upload coupons’ option in the sidebar
    You’ll be redirected to the coupon import page of the Imports module. You can learn more about how to use the module here.

  • Click ‘Choose file’ to upload a CSV format file with one code in each row
    You can find the data fields that you can include in the CSV in the ‘Name’ column under the 'Fields’ section.

  • Click ‘Upload’ at the bottom of the page

  • Configure the file import as per your need and make sure the correct coupon pool is selected in the ‘Coupon pool' dropdown field under Module options.

  • Click ‘Start import’

Right after the import is completed, coupons will appear in the list with a ‘Not claimed yet’ label.

Bulk-generate coupons

  • Navigate to the module configuration page

  • Click the ‘Edit’ button of the bulk-generated coupon pool to which you’d like to generate coupon codes

  • Navigate to the Coupons tab

  • Click the ‘Click here to start generation process’ link in the infobox

  • Enter the number of coupons you’d like to generate
    You can generate a maximum of 5 million coupons at a time to ensure that all coupons in the batch are generated without delays.

  • Click the ‘Start generation’ button
    The coupon generation process will start immediately and coupons will be populated on the page.

After the first coupon generation, you can generate further coupons by clicking the ‘Bulk generation’ button at the top of the list.

Settings

Under the Settings tab, you can find a checkbox to enable the 'Auto redeem' functionality. This means that the Coupon redeem event does not have to be sent to set the coupon status to redeemed, but if the coupon code is included in the Checkout event, the Coupon redeem event is automatically registered.

Coupons

By navigating to the Coupons tab you can find the searchable and selectable list of coupons that have been uploaded or bulk-generated and/or assigned with the following information:

  • Code

  • Customer – assignee of the coupon

  • Claimed at – date of the coupon assignment

  • The expiration date of the coupon

  • Status

    • unassigned – the coupon has been uploaded, but not claimed by a customer yet

    • claimed – the customer has spent points to get the coupon reward or it was assigned by a Backoffice user manually or by a workflow

    • redeemed – the customer has used the coupon at checkout
      Please note that usage information is only available if the coupon was redeemed by a Backoffice user manually or if the applied coupon code has been provided in the Checkout event.
      A coupon that has been uploaded to a coupon pool can be redeemed without being assigned to a customer first.

    • expired – the coupon has been claimed but expired without being used

    • invalid – the coupon has been invalidated by a Backoffice user

  • Usages – the number of times the coupon code has been used in a purchase

Invalidate coupons

Please note, that only coupons with ‘claimed’ and ‘unassigned’ statuses can be invalidated.

Invalidate one single coupon

This method is available only for coupons with ‘claimed’ status.

  • Click the hamburger button of the coupon code

  • Click ‘Invalidate’

  • Confirm the invalidation action by selecting 'Yes, go ahead' when prompted.

Invalidate multiple coupons at the same time

  • Tick the checkbox of each coupon code you’d like to invalidate

  • Click the blue ‘Invalidate selected’ button at the top of the page

  • Confirm the invalidation action by selecting 'Yes, go ahead' when prompted.

The manual invalidation action updates the status of the coupon to ‘invalid’ and if the coupon had been claimed and assigned to a customer, it triggers the registration of the coupon_invalidate event is registered on the event history of the assignee of the coupon.

Unassign coupons

Please note that only ‘assigned’ coupons can be unassigned.

Unassign one single coupon

  • Click the hamburger button of the coupon code

  • Click ‘Unassign’

  • Confirm the unassign action by selecting 'Yes, go ahead' when prompted.

Unassign multiple coupons at the same time

  • Tick the checkbox of each coupon code you’d like to unassign

  • Click the blue ‘Unassign selected’ button at the top of the page

  • Confirm the unassign action by selecting 'Yes, go ahead' when prompted.

As a result, the ‘Claimed at’ date will be cleared for the coupon, and a coupon_unassign event will be recorded in the customer's event history. Also, the number of claims for the coupon will be set to 0.

Transfer coupons

Please note, that only coupons with ‘claimed’ status can be transferred.

  • Click the hamburger button of the coupon code

  • Click ‘Transfer’

  • Enter the ID of the customer who will receive the coupon in the ‘Target Customer ID’ field,
    and/or
    Enter the ID of the customer who will receive the coupon in the ‘Target Customer email’ field

  • Click ‘Transfer’

The manual transfer action triggers the registration of the coupon_transfer event on the event history of the previous assignee and the coupon_receive event on the event history of the new assignee.

Redeem coupons

Please note, that only coupons with ‘claimed’ status can be redeemed.

To redeem a coupon manually:

  • Tick the checkbox of each coupon code you’d like to redeem

  • Click the blue ‘Redeem selected’ button at the top of the page

  • Confirm the redeem action by selecting 'Yes, go ahead' when prompted.

The manual redemption triggers the registration of the coupon_redeem event on the event history of the assignee and increments the number of coupon usage.

Unredeem coupons

Please note, that only coupons with ‘redeemed’ status can be unredeemed.

Unredeem one single coupon

  • Click the hamburger button of the coupon code

  • Click ‘Mark as unredeemed’

  • Confirm the unredeem action by selecting 'Yes, go ahead' when prompted.

Unredeem multiple coupons at the same time

  • Tick the checkbox of each coupon code you’d like to invalidate

  • Click the blue ‘Unredeem selected’ button at the top of the page

  • Confirm the unredeem action by selecting 'Yes, go ahead' when prompted.

The unredeeem action updates the status of the coupon to ‘claimed ’, triggers the registration of the coupon_unredeem event on the event history of the assignee, and reduces the number of coupon usages.

Managing coupon pools

Editing a coupon pool

  • Go to the Coupons page

  • Click on the coupon pool in the list that you want to edit

  • Edit the coupon pool

    • Name

    • Source: uploaded, generated, remote, bulk-generated – this cannot be edited once 'Save and generate' is clicked for bulk-generated coupons

    • Pattern – this cannot be edited once 'Save and generate' is clicked for bulk-generated coupons

    • Number of coupons – only applicable in case of bulk-generated source

    • Type – percentage or amount

    • Value – the amount of discount you provide

    • Purchase minimum

    • Expiration time

    • Stores

    • Aggregation

    • Product

  • Updating Coupons
    This section allows you to update any property of the coupon pool and apply it to all, or a specific subset of coupons in the pool.

    • Update Criteria:

      • Do not update coupons – only the coupons that are added from now on will inherit the new pool properties

      • Update unassigned coupons – coupons that have been already created but not yet assigned to a customer will inherit the new pool properties

      • Update not yet redeemed coupons – coupons that are assigned but not yet redeemed will inherit the new pool properties

      • Update all coupons – all coupons will inherit the coupon pool’s properties

    • Matching

      • This checkbox means that only those coupons should be updated, which have a value field (Value: how much discount you provide) that is the same as the original number.

Don’t forget to save your changes by clicking ‘Save'.

Deleting a coupon pool

It is not possible to delete created coupon pools. If you want to stop using them, please make sure that the coupon pool is not selected in the configuration interface of loyalty program functionalities.

© Copyright 2022 Antavo Ltd.