Import multiple products for Volume pricing setup
Create many volume pricing rules at once by uploading a CSV or XLSX file instead of building each rule by hand.
If you need to set up a large number of volume pricing rules, uploading a file is much faster than creating them one by one in the app. This import creates brand-new volume pricing rules — if you only need to add products, quantity tiers, and prices to a rule that already exists, use Import products into a volume pricing rule instead.
Step 1: Prepare your file
Section titled “Step 1: Prepare your file”Create a CSV or XLSX file with one row per quantity tier / product / variant, using the columns described below. The file is read by column name, not by position — you can reorder columns, and you can leave out any column you don’t need. Every row that shares the same Rule Id value belongs to the same volume pricing rule.
The download sample only includes the minimum columns needed to get started (Rule Id, Status, Type, Apply Customer, Apply Product, Apply Product ID, Apply Variant ID, From Quantity, To Quantity, Discount Type, Discount Value, plus example tag columns). The reference below covers every column the importer understands, including the optional ones the sample leaves out.
Note: Please split your products into batches of approximately 500 products per rule when importing. If your products have a large number of variants, the rule may fail to upload the data to the metafields successfully.
Full column reference
| Column | Required? | Notes |
|---|---|---|
| Rule Id | Yes | Any value that groups rows together — rows sharing the same Rule Id become one volume pricing rule. It does not need to match a real rule ID. |
| Name | No | Name of the volume pricing rule. Defaults to “New Volume Pricing” if left blank. |
| Status | No | active or draft. Anything else is treated as draft. |
| Type | No | quantity (break by units bought) or amount (break by order amount). Defaults to quantity. |
| Start Date | No | When the rule starts working. |
| End Date | No | When the rule stops working. |
| Apply Customer | Yes | The customer condition. One of: all, logged, non-logged, tags:tag1,tag2, or customers:id1,id2. |
| Exclude Customer Tags | No | Comma-separated customer tags to exclude. |
| Exclude Customer IDs | No | Comma-separated customer IDs to exclude. |
| Apply Product | Yes | The product condition. One of: all, products, products:id1,id2, collections:id1,id2, or tags:tag1,tag2 (product tags). |
| Apply Product ID | Conditional | The product this row sets a tier/price for. Required on any row that carries a per-product tier. Leave blank on the rule’s first/summary row. See below for how to find a product’s ID. |
| Apply Variant ID | No | Fill in when the row sets a tier for one specific variant rather than the whole product. See below for how to find it. |
| Exclude Products | No | Comma-separated product IDs to exclude from the rule. |
| Exclude Collections | No | Comma-separated collection IDs to exclude from the rule. |
| Exclude Gift Cards | No | TRUE to exclude gift card products. |
| Apply Market | No | all, or markets:handle1,handle2 to restrict the rule to specific markets. |
| Discount Methods | No | variant (Same Variant), across_group (Mix Variants), or across_product (Mix Products). Defaults to variant. See Discount Methods for Volume Pricing. |
| Pricing Source | No | PRICE (Selling price) or COMPARE_AT_PRICE (Compare-at price). Defaults to PRICE. |
| From Quantity | Yes | The lower threshold of the price break, e.g. 10 for “buy 10 to 20 units, get 10% off”. Holds an order-amount threshold instead when Type is amount. |
| To Quantity | No | The upper threshold of the price break, e.g. 20 for the same example. Leave blank for an open-ended top tier. |
| Discount Type | Yes | percent, fixed (fixed amount off), or amount. |
| Discount Value | Yes | The discount value for this tier. |
| (any other column name) | No | Extra trailing columns become segment columns — see below. |
Segment columns: when Apply Customer is tags:... or customers:..., you can give each tag or customer a different price by adding one column per tag name or customer ID (matching the values used in Apply Customer), then filling in that segment’s Discount Value on the tier’s row. A cell can hold a bare number (uses the row’s Discount Type) or a value with its own type, e.g. 10 percent, 10 fixed, 10 amount.
Building a rule across several rows: give the rule’s general settings (Name, Status, Type, Apply Customer, Apply Product, etc.) on its first row, then add one row per quantity tier — and, if pricing specific products/variants, one row per tier per product/variant — repeating the same Rule Id and leaving the rule-level columns blank on those rows.
Finding a product ID: go to the Products folder in Shopify, open the product, and check the page URL — the product ID is the number at the end of the link.

Finding a variant ID: open the product, go to the variant you need, and click into it. The variant ID is the number at the end of that page’s URL.

Sample file: download volume_example.csv or volume_example.xlsx to see the format in action.
Once your file is ready, save it.
Step 2: Upload the file to the app
Section titled “Step 2: Upload the file to the app”-
Open Volume Pricing
Section titled “Open Volume Pricing”From the app Dashboard, click Volume Pricing.
-
Click Import
Section titled “Click Import”
-
Upload your file
Section titled “Upload your file”You can also download a sample CSV or XLSX file here to see exactly what data each column needs.

-
Preview and confirm
Section titled “Preview and confirm”Review the file information, then click Upload and preview.
