Skip to content

Import coupon codes in bulk

Use external coupon limits when you distribute many individual discount codes and need to control how often each code can be redeemed — for example, one-time codes printed on flyers. The discount code must still match a synchronized promotion .

External promotion code import page with CSV file and default redemption limit fields
Upload the CSV on the External promotion codes import page and optionally set a default redemption limit.

Before you start

  • Prepare a CSV file with a code column and an optional maxRedemptions column. Rows without headers also work in the form code,maxRedemptions.
  • Every code in the file must be unique; codes are matched case-insensitively.
  • Decide the fallback limit for rows without their own maxRedemptions value.

Import the codes

  1. In the back office, open Settings > External coupon limits.
  2. Select Import.
  3. On the Import codes page, choose your CSV file. Rows may leave maxRedemptions empty to use the default below, or unlimited if no default is set.
  4. Optionally enter a Default redemption limit. Leave it empty for unlimited.
  5. Select Import.

The import is all-or-nothing: if any row has an empty or duplicate code or an invalid limit, no codes are created and the error is shown.

To add a single code instead, select Create and enter the Code, an optional Redemption limit, and the Active state.

Track redemptions

The list shows each code with its Limit, Redeemed, Reserved, Remaining, and Status (Active or Inactive), plus Recent redemptions linking to the order or receipt.

An active, unarchived code applied in an open cart reserves one redemption; completing the purchase turns the reservation into a redemption, and an abandoned or expired cart releases it. When the limit is reached, further attempts to apply the code are rejected. At the POS, a code from a number range that uses the external system call is also rejected when it is not listed here.

Stop codes and retire their limit entries

To prevent new applications of a registered code in the online shop, edit it under Settings > External coupon limits and switch off Active, or Archive it. Archiving can be undone from the archived list.

A purchase with a reservation made before deactivation or archiving can still complete; its redemption is counted. Redemption history is retained.

At a POS using the external system call, an inactive or archived code is also rejected. For a POS using Redeem external coupon, remove the code from both coupon-number lists in every KORONA.studio couponing promotion that grants it a discount: Item Selection Set and Discount Calculation > Discount Value Repetition. Save the promotions, then retrieve the POS master data to stop the discount. To synchronize the promotion changes to KORONA Event, open Admin > Integrations and select Synchronize.

Expected result

Each active, unarchived imported code can be redeemed up to its limit; the list shows live redeemed, reserved, and remaining counts with links to the orders and receipts involved.

Troubleshooting

ProblemWhat to check
Import failsEmpty code cells, the same code appearing twice in the file, and non-numeric limit values.
Code is rejected at redemptionRemaining count, Status, archived state, and whether another open cart holds a reservation.
Code applies but gives no discountThe matching couponing promotion in KORONA.studio, its POS assignments, and the last successful synchronization.
Counts look too highReserved redemptions from open carts — these are released when the cart expires.