Import & Export offers
Profile Import/Export (CSV)
Export your Pre-order Profiles to a CSV file, edit it, and import it back to create profiles in bulk.

⚠️ Before you import — 4 things to know
1. Import always creates new profiles. It never updates existing ones, even if you re-import a file you just exported. Importing the same file twice = duplicate profiles.
2. One bad row can block the entire file. Every
Productprofile needs at least one row with aProduct ID+Variant ID, or aSKU. If any single profile in your file is missing this, nothing in the file gets imported — not just that one profile.
3. Product, Variant, and Collection IDs are checked against your real Shopify store. Any ID that doesn't exist there is quietly dropped from the profile — it won't stop the rest of the import. This is only recorded in the app's server log, not shown to you in the import result, so double-check your profiles after importing if you're not sure every ID was real.
4. Only the first row of a profile carries its settings. If your profile spans several rows (one per variant), fill in things like dates, payment, and shipping only on the first row — the rest are ignored.
How rows become a profile
Rows with the same Profile ID are grouped into one profile. Only row 1 of the group carries the profile's settings; every row (including row 1) can add a product variant.
100
Product
111
222
ABC-1
2026-09-15
(all other settings)
100
333
ABC-2
(ignored — row 1 already set this)
100
444
ABC-3
(ignored)
Tip: if a row leaves Product ID blank, it reuses the last Product ID seen above it — you only need to repeat it when it changes.
What you get back after importing
success: false→ nothing was imported at all (see warning #2 above).Any Product/Variant/Collection ID that got dropped for not existing on Shopify (warning #3) is not listed here — it's only written to the app's server log.
Examples
Example 1 — Product profile (3 variants, full payment, timed shipping)
One profile applying to 3 variants of the same product. Row 1 carries all the settings; rows 2–3 just add the extra variants (notice Product ID is left blank on them — it reuses 8123456789012 from row 1).
What this does:
Runs from Oct 1 to Nov 15, 2026, available on all variants regardless of stock.
Charges in full, with a 15% discount.
Ships 14 days after checkout, fulfillment held as
SCHEDULED, inventory reservedON_SALE.Custom button text "Pre-order now", sold-out text "Sold out".
Example 2 — Collection profile
One profile applying to every product in a Shopify collection, no discount, shipped manually (no ship date tracked).
What this does:
Applies to Shopify collection
456789123456("Holiday 2026"), not individual products.Starts Oct 1, 2026, only kicks in when a product is out of stock — no end date.
No discount, no end-stock limit, shipped manually (
Shipping type = MANUAL, soFulfilment trigger order/Inventory reservedare ignored).Custom button text "Reserve now".
Example 3 — Product profile with a per-variant limit, partial payment, and a fixed release date
One profile for a single variant, capped at 100 units (Limit), charging a 30% deposit now with a 10% discount, and releasing/charging the rest on a fixed date rather than a relative countdown.
What this does:
Only the first 100 orders (
Limit = 100) can preorder this variant.Takes a 30% deposit now, with a 10% discount on the total — the remaining balance is charged on a fixed date, Dec 15, 2026 (
Charge the remaining balance type = EXACT_TIME).Ships / releases on that same fixed date (
Shipping type = EXACT_TIME,Shipping time = 2026-12-15) — use this instead ofTIME_AFTER_CHECKOUTwhen every customer ships on one release day, rather than X days after their own order.Fulfilment trigger order = SCHEDULEDholds fulfillment until that release date; inventory is reservedON_SALE(deducted as soon as the order is placed).Charge the remaining balance type/timeonly apply on shops with Selling Plans enabled — leave them blank otherwise.
Tip: replace the
Product ID/Variant ID/Collection IDabove with real IDs from your store — Shopify checks these on import and drops anything it doesn't recognize (see warning #3 above).
Column reference
Any value that doesn't match what's listed below is not an error — it's simply replaced with a safe default, so the import never breaks because of one bad cell.
Identify the profile & product
Profile ID
any text
required — row is skipped without it
Profile name
any text
blank → "New Profile"; very long names are shortened to 1000 characters
Type
Product, Collection, or All products
anything else → treated as Product with no products attached
Collection name
any text
just a label, no validation
Collection ID
numbers only
invalid, or not found on Shopify → left blank
Product ID
numbers only
invalid → left blank
Variant ID
numbers only
invalid, or not found on Shopify → row is skipped
SKU
any text
used to look up the variant when Variant ID is empty
Stock & availability
Units Sold
a number
invalid or negative → 0
Limit
a number, or No set
invalid or negative → no limit
End quantity
a number, or No set
invalid or negative → no limit
Start pre-order stock
Pre-Order regardless of stock levels, Pre-Order only when Out of Stock, or Pre-Order only when Shopify inventory is available
anything else → the third option
End pre-order stock
Unlimited stock, or a number
invalid → Unlimited stock
Status & timing
Preorder status
Enabled or Disabled
anything else → Disabled
Markets
All, or market names
not used on import — profile always applies to all markets
Start date
a date, e.g. 2026-09-15T09:00
invalid → today's date is used instead
End date
a date
invalid → treated as no end date
Show countdown for start date
Yes or No
anything else → No
Show countdown for end date
Yes or No
anything else → No
Continue-selling behavior
Turn ON "...continue selling..." when start pre-order
Yes or No
blank or No → off; anything else → on
Turn OFF "...continue selling..." when stopped/disabled
Yes or No
blank or No → off; anything else → on
Button when finished pre-order
one of these 3 exact phrases (case doesn't matter, but nothing else must be added or missing):
• Display "Add to cart/Sold out"
• Hide "Add to cart/Sold out". Show "Comming soon button" (note: "Comming" — this exact spelling, not "Coming")
• Hide "Add to cart/Sold out". Show "Not available message"
doesn't match one of the 3 phrases exactly (including blank) → falls back to the first option, Display "Add to cart/Sold out"
Payment
Enable full payment
Yes or No
anything else → No
Full payment discount
No discounts, <number>%, or <number>$
invalid → no discount; a % over 100 is capped at 100
Enable partial payment
Yes or No
anything else → No
Partial payment prepaid
No prepaid, <number>%, or <number>$
invalid → no prepaid; a % over 100 is capped at 100
Partial payment discount
No discounts, <number>%, or <number>$
invalid → no discount; a % over 100 is capped at 100
Charge the remaining balance type (Selling Plan shops only)
MANUAL, EXACT_TIME, or TIME_AFTER_CHECKOUT
anything else → MANUAL
Charge the remaining balance time (Selling Plan shops only)
a date, or <number> day(s)/week(s)/month(s)
doesn't match the chosen type above → the whole setting resets to MANUAL
Shipping
Shipping type
MANUAL, EXACT_TIME, or TIME_AFTER_CHECKOUT
anything else → MANUAL (the two rows below are then ignored)
Shipping time
a date, or <number> day(s)/week(s)/month(s)
doesn't match the chosen type above → the whole setting resets to MANUAL
Fulfilment trigger order
UNFULFILLMENT, ONHOLD, or SCHEDULED
anything else → UNFULFILLMENT
Inventory reserved
ON_SALE or ON_FULFILLMENT
anything else → ON_SALE
Custom messages & tag
Custom pre-order button text
any text
blank → shop's default text is shown instead
Custom sold out button text
any text
blank → shop's default text is shown instead
Custom NA message
any text
blank → shop's default text is shown instead
Custom message above button
any text
blank → shop's default text is shown instead
Custom message bellow button
any text
blank → shop's default text is shown instead
Custom pre-ordered item label
any text
blank → shop's default text is shown instead
Custom comming soon text
any text
blank → shop's default text is shown instead
Order tag (Selling Plan shops only)
any text
shortened to 40 characters if longer
Last updated
Was this helpful?