Upload a Coupon Batch

The Upload a Coupon Batch tool allows a list of coupons to be imported into the shopping cart software. This is an excellent way to upload a list of coupon codes created by a third-party service. The coupon batch upload tool retains the flexibility of the Event Engine. Following is an overview of how to use it.

The tool is located in the store's administration area at: [Modules > Event Engine > Upload a Coupon Batch]. This page is split into two sections:

Step 1: Prepare the coupon spreadsheet

This section contains a link to the spreadsheet's template. The spreadsheet contains several fields, each of which is explained in detail in the Spreadsheet Fields section below.

Record one coupon code per line in the spreadsheet. Once all of the coupons have been entered into the spreadsheet, save it on your computer as a tab-delimited file. (It will have a .txt file extension.) The file can be saved with any file name.

Step 2: Upload the coupon spreadsheet

After the spreadsheet file has been saved as a tab-delimited file on your computer, click the Browse button in the option titled Select spreadsheet file to upload. Locate the file on your computer, then click the Upload & Import Coupon Codes button to import the spreadsheet.

When imported, several actions will take place:
First, the shopping cart software will scan the contents of the uploaded spreadsheet. It will look for errors and duplicate coupon codes. If any errors are found, a message will be displayed and no coupons will be imported.

If no errors are encountered, the store will start importing the coupons after the scan has been completed. It will create a new event for each Coupon Code listed in the spreadsheet. A message will be displayed on-screen after the import process has been completed.

The coupons that have been created will be listed on the Event Engine's Search All Events page.

Following is a list of the Spreadsheet Fields included in the Upload a Coupon Batch spreadsheet.

General Information fields

Coupon CodeFormat: alpha-numeric string
Example: 123ABC
The alphanumeric code that the customer will enter into the store in order to redeem this offer. The Coupon Code can be up to 255 characters long. If left blank, then an Event will not be created for this row of the spreadsheet.

Processing OrderFormat: numericExample: 123
All of the active Events running in your store (whether triggered by a coupon code or not) are evaluated in order, based on their Processing Order, from lowest to highest. If left blank, then the system will use its best judgment to determine an Event's Processing Order.

NameFormat: alpha-numeric
Example: Twenty percent off your orderThis is the event's name. It will be displayed in your storefront if the event is setup to be publicly viewable. If left blank, the inputted coupon code will be reused as the name.

Is Public?Format: Y/NExample: N
This sets whether the event is publicly viewable or not. If the event is set to be viewed publicly, then customers will be able to see information about the event in the storefront.

Start DateFormat: mm/dd/yyyyExample: 01/02/2020
The date that the coupon code becomes valid. The event will be valid beginning at 12:00 am on the specified date. If left blank, then today's date will be used.

End DateFormat: mm/dd/yyyyExample: 01/02/2020
The date that the coupon code expires, becoming no longer valid. The event will be valid through 11:59 pm on the specified date. If left blank, then the coupon will be set to never expire.

Active?Format: Y/NExample: Y
Only active coupon codes and other Events can be used by customers. If this field is left blank, then the coupon will be set to be active.

Redemption LimitFormat: numericExample: 123
The total number of times that the coupon can be redeemed. If set to zero, then the coupon may be redeemed an unlimited number of times. If left blank, then the coupon will be set to a Redemption Limit of 1.

Reusable?Format: Y/NExample: N
For coupons with a Redemption Limit other than 1, this determines whether or not the same customer can redeem the same coupon code again the next time they place an order. If left blank, then the coupon will be set to not be reusable.

Retain Balance?Format: Y/NExample: Y
Specifies whether any remaining balance will be retained by the customer. For example, if this is set to "yes" then a customer who applies a $100 coupon towards an $80 order would receive a new coupon in the amount of the $20 difference. If left blank, the coupon will be set to retain its balance.

Product Discount fields

Product Pricing: TypeFormat: all/category/product/vendorExample: product
If you would like the coupon to discount the price of one or more specific products, then enter a value in this field. The accepted values are:
all: The discount rule will be applied to all products.
category: All of the products in the specified category will be discounted.
product: The discount will only be applied to the specified product.
vendor: All of the products associated with the specified vendor will be discounted.
If left blank, then a rule for product discounting will not be created for the coupon.

Product Pricing: SIDFormat: numericExample: 123
The SID (System ID) number of the category, product or vendor to which the discount will be applied. This field will be ignored if the Product Pricing: Type field is set to "all".

Product Pricing: decrease/increaseFormat: decrease/increaseExample: decrease
Determines whether or not the coupon decreases or increases the product's price. 99.9% of the time, "decrease" will be used, as using "increase" would actually make the product(s) in question more expensive.

Product Price: ValueFormat: decimal numberExample: 12.34
The value of either the dollar value or percentage discount that will be applied to the specified product(s).

Product Price: Value TypeFormat: dollar/percentExample: dollar
Sets whether the Product Price: Value field is applied to the product(s) as either a dollar or percentage deduction.

Order Total Discount fields

Order Pricing: TargetFormat: grand total/product subtotalExample: grand total
Determines whether the event's discount is applied to the product subtotal (just the price of the products in the order) or the order's grand total (the product prices, plus any shipping fees and taxes).

Order Pricing: decrease/increaseFormat: decrease/increaseExample: decrease
Determines whether or not the coupon decreases or increases the order's price. 99.9% of the time, "decrease" will be used, as using "increase" would actually make the product(s) in question more expensive. If left blank, then a rule for discounting the order's total will not be created for the coupon.

Order Pricing: ValueFormat: decimal numberExample: 12.34
The value of either the dollar value or percentage discount that will be applied to the order's total.

Order Pricing: Value TypeFormat: dollar/percent/least expensive products/most expensive productsExample: dollar
Sets whether the Order Pricing: Value field is applied to the order's total as either a dollar amount, a percentage, a value equal to the price of the X most expensive products in the basket, or a value equal to the price of the X least expensive products in the basket.

Shipping Discount fields

Shipping: SIDFormat: numericExample: 123
The SID (System ID) number of the shipping method that will be discounted by the coupon code. If set to zero, then the coupon's adjustment will be applied to all of the shipping methods that the customer has to chose from. If left blank, then a rule for discounting the order's shipping fees will not be created for the coupon.

Shipping: decrease/increaseFormat: decrease/increaseExample: decrease
Determines whether or not the coupon decreases or increases the order's shipping fees. 99.9% of the time, "decrease" will be used, as using "increase" would actually make the shipping fee(s) in question more expensive.

Shipping: ValueFormat: decimal numberExample: 12.34
The value of either the dollar value or percentage discount that will be applied to the order's shipping fees.

Shipping: Value TypeFormat: dollar/percentExample: dollar
Sets whether the Shipping: Value field is applied to the order's shipping fees as either a dollar or percentage deduction.

Tax Discount fields

Tax: decrease/increaseFormat: decrease/increaseExample: decrease
Determines whether or not the coupon decreases or increases the order's tax fees. 99.9% of the time, "decrease" will be used, as using "increase" would actually make the tax fee(s) in question more expensive. If left blank, then a rule for discounting the order's tax fees will not be created for the coupon.

Tax: ValueFormat: decimal numberExample: 12.34
The value of either the dollar value or percentage discount that will be applied to the order's tax fees.

Tax: Value TypeFormat: dollar/percentExample: dollar
Sets whether the Tax: Value field is applied to the order's tax fees as either a dollar or percentage deduction.

multiple discount rules

A coupon can have one of each discount type applied to it. For example, a coupon could have a product discount rule and a shipping discount rule and a tax discount rule assigned to it. When the customer redeemed that coupon, the price of the specified product, the shipping fees and the taxes applied to the order would all be affected.

the order of the spreadsheet columns is important!

By default, the spreadsheet will include 24 columns. In order for the data to import correctly, each of these columns must remain present. (Even if they are not used and are left blank.)

For example, if creating a coupon that discounts an order's shipping fees, I will be using columns 18-21 in the spreadsheet. Even though the rules for discounting the price of products or the order total (columns 9-17) aren't used and will be left blank, those columns must still be present in the spreadsheet.

Removing columns, thereby reducing the number of columns in the spreadsheet to less than 24, will produce unexpected results.

import date recorded in event notes

When you import the batch of coupons, the date of the import will be recorded in the notes of each imported coupon. The format of this message is as follows: