Import offers
Import Campaigns Using CSV
Use Import Campaigns to bulk create discount campaigns in Pareto by uploading a CSV file. Each offer type has its own template, so you can quickly create One Discount, Buy X Get Y, Bundle, or Order discount campaigns without manual setup.
In this article
- Step 1: Choose the import type
- Step 2: Download the correct CSV template
- Step 3: Fill in the CSV
- Step 4: Upload the CSV file
- Step 5: Review and confirm import
- Step 6: Activate imported campaigns
- One Discount template
- Buy X Get Y template
- Bundle template
- Order discount template
- Import limits and supported offer types
- FAQ
- Troubleshooting
- Best practices
Step 1: Choose the import type
- Open Pareto - Quantity Breaks in your Shopify admin
- Go to Offers
- Click Import
- In Select the type of import you would like to perform, choose the offer type that matches your campaign

You can import the following offer types, each with its own CSV template:
- One discount for multiple savings: one primary discount that can stack a free gift, a cross-sell discount, free shipping, and an order-level discount.
- Buy X Get Y: reward shoppers with discounted or free items when they buy qualifying products or spend an amount.
- Bundles: group products into a fixed bundle, a single combined bundle product, or add-on offers.
- Order discount: order-level discounts based on amount, quantity, or weight, with optional free shipping or free gift.
Choose the import type that matches your campaign structure. The CSV template format is different for each type.
Step 2: Download the correct CSV template
- Click Download sample CSV for the selected import type
- Open the file using Google Sheets, Excel, or Numbers
- Do not rename or remove any column headers
Each template has a comment row under the header that explains every column. Keep that row for reference while editing, then delete it before you import. Invalid or missing columns will cause import errors.
Step 3: Fill in the CSV
These rules apply to every template:
- One campaign per block. The first row of a campaign carries the campaign-level fields (name, type, customer targeting). Leave
campaign_nameempty on the rows directly below to add more tiers, products, or gifts to that same campaign. campaign_nameis required on the first row of each campaign.display_nameis optional and is read from the first row only. Leave it empty to reuse the campaign name.- Enter IDs as numbers, comma separated. For variant fields, a non-numeric value is matched to a variant by SKU.
customer_tagis required whencustomer_assignis1or3.- Do not leave required fields empty and do not add extra columns.
After filling the template, continue to the field reference for your offer type below, then upload the file.
Step 4: Upload the CSV file
- Return to the Import campaigns screen
- Click Add files and select your CSV file
- Click Upload and preview
Step 5: Review and confirm import
- Review detected campaigns and rules
- Fix any validation errors shown
- Click Confirm import
Step 6: Activate imported campaigns
- Imported campaigns are created as Inactive
- Open each campaign to review settings
- Click Activate when ready
One Discount template
Use template_one_discount.csv for a single primary discount on selected products. You can layer a free gift, a cross-sell discount, free shipping, and an order-level discount on the same campaign, and add quantity tiers by adding rows.
Fields
Column | Description |
|---|---|
| Unique campaign name. Required on the first row. Leave empty on continuation rows to add more tiers. |
| Storefront display name (optional, first row only). |
|
|
|
|
| Customer tag. Required when |
| Target country codes, comma separated. |
| How the condition is counted: |
| Tier title label (optional). Supports the |
| Minimum quantity to buy (required). |
| Discount amount (number only). |
|
|
| Badge text shown on storefront (optional). |
| Free gift, format |
| Cross-sell items, format |
| Cross-sell discount amount. |
|
|
|
|
| Country codes for free shipping (comma separated). |
| Order-level discount amount. |
|
|
| IDs based on |
Example
- Buy 6+ Get Free Gifts:
product_assign=3,buy_from=6,discount_value=10,discount_unit=percent,free_gift_products=7346871500886:2. - Tiered campaign: put the first tier on the campaign row (
buy_from=2,discount_value=10), then add a second row withcampaign_nameempty andbuy_from=5,discount_value=15.
Buy X Get Y template
Use template_buyxgety.csv to reward shoppers when they buy qualifying items or reach a spend amount. Add more tiers by adding rows with campaign_name empty.
Fields
Column | Description |
|---|---|
| Required on the first row. Empty continuation rows add more tiers. |
| Storefront display name (optional, first row only). |
|
|
| Buy X target: |
| Buy X IDs based on |
| Customer eligibility ( |
| Required when |
| Country codes, comma separated. |
| Tier threshold: quantity of Buy X items, or spend amount. |
| Tier upper bound. Empty or |
| Discount applied to Get Y: |
| Discount amount. Empty or |
| Number of Get Y items the customer receives. |
|
|
| Where Get Y comes from: |
| Variant or SKU IDs when |
|
|
Example
- Buy 2 Get 1 Free:
campaign_type=buy_x_get_y_quantity,product_assign=3,product_ids=111,buy_from=2,discount_unit=free,get_quantity=1,get_y_type=different,get_source=products,get_ids=222. Add a second row (campaign_nameempty) withbuy_from=4,get_quantity=2for a higher tier. - Spend 100 Get Accessory 25% Off:
campaign_type=buy_x_get_y_amount,buy_from=100,discount_unit=percent,discount_value=25,get_source=collections,get_ids=444.
Bundle template
Use template_bundle.csv to create bundles. Set campaign_type on the first row, then list one product per row. Continuation rows (with campaign_name empty) add more products to the bundle above.
Fields
Column | Description |
|---|---|
| Required on the first row. Empty continuation rows add more products to the bundle above. |
| Storefront display name (optional, first row only). |
|
|
| Customer eligibility ( |
| Required when |
| Country codes, comma separated. |
|
|
| Discount amount. Meaning depends on |
| Bundle title shown to customers. Required when |
| Bundle option or group name. Required when |
| Bundle description shown to customers. Required when |
|
|
| Shopify product ID. One product per row; add more on continuation rows. |
| Quantity of this product in the bundle. Used for |
| Minimum quantity ( |
| Maximum quantity, |
| Specific variant IDs or SKUs. Leave empty to include all variants of the product. |
Example
- Starter Combo (
bundle): first rowdiscount_unit=percent,discount_value=15,product_id=7001,quantity=1,variant_ids=8001. Second row withcampaign_nameempty,product_id=7002,quantity=2. - Value Pack (
bundle_single):discount_unit=fixed,discount_value=99,bundle_title=Value Pack,bundle_option_name=Choose your set, plus a product row per item. - Add Warranty (
add_ons):discount_unit=percent,discount_value=10,main_product_ids=7001,7002, then add-on rows withproduct_id,min, andmax.
Order discount template
Use template_order.csv for order-level discounts based on amount, quantity, or weight. Add tiers or gifts on continuation rows with campaign_name empty.
Fields
Column | Description |
|---|---|
| Required on the first row. Empty continuation rows add tiers or gifts. |
| Storefront display name (optional, first row only). |
|
|
| Buy scope: |
| Collection IDs, comma separated. Use when |
| Customer eligibility ( |
| Required when |
| Country codes, comma separated. |
| Tier threshold (order total, quantity, or weight, depending on |
| Tier upper bound. Empty or |
| Discount amount. Leave empty for |
|
|
| Maximum discount cap (only applies when |
|
|
|
|
| Variant ID or SKU of the gift. Add more gifts on continuation rows. |
| Quantity of this gift variant. |
| Variant IDs or SKUs to exclude (first row only). Requires |
|
|
Example
- Spend & Save (
amount): first rowbuy_from=50,discount_value=5,discount_unit=percent,max_discount=20. Second row withcampaign_nameempty,buy_from=100,discount_value=10. - Free Ship Over 150:
buy_from=150,discount_unit=free_shipping(leavediscount_valueempty). - Spend 200 Get Gift:
buy_from=200,discount_unit=free_gift,free_gift_mode=choose, then one row per gift variant.
Import limits and supported offer types
- Maximum 1,000 rules per file
- Supported via CSV: One Discount, Buy X Get Y, Bundles, and Order discount
If you need to:
- Import an offer type not listed above
- Import more than 1,000 rules at once
- Migrate a large number of campaigns from another app
👉 Please contact support. Our team can help with assisted imports or custom migrations.
FAQ
Can I import more than 1,000 rules at once?
No. Each import supports up to 1,000 rules per file.
For larger imports, contact support for assistance.
Can I mix offer types in one file?
No. Each CSV file uses the template for a single offer type. Import each type with its own file.
Will imported campaigns be active automatically?
No. All imported campaigns are created as Inactive so you can review them safely before activation.
Can I leave the app while importing?
No. Please keep the app open until the import completes successfully.
What happens if I import overlapping campaigns?
Imported campaigns do not override existing active campaigns.
If multiple campaigns target the same products, Shopify discount combination rules apply.
Troubleshooting
Import fails or stops unexpectedly
- Make sure the app remains open during import
- Check that the CSV file is under the 1,000-rule limit
- Retry the import with a smaller batch
- Make sure the product information is correct
Campaign imported but discount does not apply
- Confirm the campaign status is Active
- Verify products, variants, or collections still exist
- Check for conflicting discounts in checkout
CSV upload shows validation errors
- Ensure required fields are not empty
- Confirm IDs are numeric and comma separated, and that SKUs match existing variants
- Make sure each campaign has its campaign-level fields on the first row
- Make sure product assignment matches the correct ID column
Tiers, gifts, or bundle products look incorrect
- Check that continuation rows have
campaign_nameempty so they attach to the campaign above - Review
buy_from,buy_to, andmultiplesvalues - Confirm
discount_unitand discount values are valid for the offer type
Best practices
- Import campaigns in small batches
- Test a single campaign before activating the rest
- Avoid overlapping discounts on the same products
- Keep CSV backups of successful imports
Updated on: 25/06/2026
Thank you!