How to import coupons in WooCommerce
WooCommerce does not include a general coupon CSV importer. You can create a few coupons manually, but importing many codes requires a CSV importer extension, a custom script using the WooCommerce REST API, or a plugin that maps and validates coupon fields before import.
- 01Prepare the coupon CSV
- 02Check coupon settings first
- 03Use the manual route for a few coupons
- 04Install a CSV coupon importer
- 05Map and validate the fields
- 06Import a test batch first
What you need
- A WooCommerce store with administrator access
- A UTF-8 CSV file containing your coupon data
- Product or category IDs if the coupons have restrictions
- A full database backup before a bulk import
Prepare the coupon CSV
Make one row per coupon and keep the column names clear. For new coupons, the essential fields are the coupon code, discount type and amount. Common discount types are percent, fixed_cart and fixed_product. The amount should be numeric, even for percentage discounts. WooCommerce's documented coupon import formats also support expiry dates, descriptions, product restrictions, minimum and maximum spend, email restrictions and usage limits.
Remove duplicate codes, blank rows and spreadsheet formatting that changes codes into dates or scientific notation. Save the file as UTF-8 CSV, and check that dates, decimal separators and product identifiers match the importer documentation.
Check coupon settings first
Go to WooCommerce > Settings > General and make sure coupon use is enabled. If coupons are disabled at store level, an otherwise valid imported coupon will not work at checkout.
Decide the rules before importing: whether each code is single-use, whether coupons can be combined, which products or categories qualify, and whether a minimum spend, expiry date or allowed email list is needed.
Use the manual route for a few coupons
For a small number of coupons, create them without an importer. Open Marketing > Coupons, choose to add a coupon, enter or generate the code, select the discount type, enter the amount, and configure the usage restriction and usage limit tabs before publishing. WooCommerce supports fixed-cart, fixed-product and percentage coupons in its core coupon screen.
This route is fine for one or two codes, but it becomes slow and error-prone for a campaign. WooCommerce core does not provide a general coupon CSV import screen, so repeatedly copying rows from a spreadsheet into the editor is not a practical bulk-import method.
Install a CSV coupon importer
For many coupons, install and activate a coupon CSV importer that supports field mapping and validation. Open its coupon import screen, upload the CSV, and map each column to the matching WooCommerce coupon field. A suitable importer should let you import discount types, amounts, expiry dates, restrictions and usage limits, then show validation results before it writes the coupons.
The WooCommerce Customer Order Coupons CSV Import Suite fits this job because it is built for bulk coupon CSV imports, field mapping, validation and import logs. Use the importer rather than trying to force coupon data through WooCommerce's product importer.
Map and validate the fields
Map the coupon code to the code field, the discount type to the discount-type field, and the numeric value to the amount field. Map expiry dates and restrictions only when the source data is complete. For an update or merge import, the existing coupon code is the key field; for a new coupon, the code, type and amount are required by the documented WooCommerce CSV importer format.
Run the validation or preview step and fix every warning before continuing. Pay particular attention to duplicate codes, translated discount-type values, invalid product IDs, dates in the wrong format and blank values that could overwrite existing settings.
Import a test batch first
Import five to ten representative rows before importing the complete file. Include at least one percentage coupon, one fixed-cart coupon, one restricted coupon and one coupon with a usage limit if your file contains those cases.
Check the resulting coupons in Marketing > Coupons, then test them in a private or low-risk checkout. Confirm the discount amount, eligible products, minimum spend, expiry behaviour, stacking rules and per-user limits. After that, import the remaining rows and review the import log for failures.
Let WooCommerce Customer Order Coupons CSV Import Suite do it
CSV-based bulk coupon importer with field mapping and validation, best for migrating or managing many coupons at once.
Sources
- woocommerce.com /document/customer-order-csv-import-suite/?utm_source=openai
- woocommerce.com /document/coupon-management/?utm_source=openai
- woocommerce.github.io /woocommerce-rest-api-docs/?from=20423&utm_source=openai
Questions
- Can I import WooCommerce coupons without a plugin?
- Not through a general CSV screen in WooCommerce core. You can create coupons individually in Marketing > Coupons, or build a custom integration that reads the CSV and sends coupon data through the WooCommerce REST API. The current REST API supports creating individual coupons and batch coupon operations, but setting up authentication and data handling requires development work.
- What columns are required for a new coupon import?
- A new coupon normally needs a coupon code, discount type and amount. Use documented values such as percent, fixed_cart or fixed_product for the discount type, and keep the amount numeric. A merge or update import may need only the existing coupon code to identify the record, with the other columns supplying changes.
- Why are my imported coupons not working at checkout?
- The usual causes are disabled coupon use, an invalid discount type or amount, an expired date, a product or category restriction that does not match the cart, a minimum spend that has not been reached, or a usage limit that has already been met. Check the coupon settings and test one code against a qualifying cart before reviewing the CSV itself.
- Should I merge existing coupons or create new ones?
- Use a merge or update import when the CSV contains codes that already exist and you want to change their settings. Create new coupons when the codes are not present. Treat the coupon code as the identifier, remove duplicates from the CSV, and take a backup before changing a live batch so an incorrect mapping can be reversed.