For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 Product profile needs at least one row with a Product ID + Variant ID, or a SKU. 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.

Profile ID
Type
Product ID
Variant ID
SKU
Start date
...

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 reserved ON_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, so Fulfilment trigger order / Inventory reserved are 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 of TIME_AFTER_CHECKOUT when every customer ships on one release day, rather than X days after their own order.

  • Fulfilment trigger order = SCHEDULED holds fulfillment until that release date; inventory is reserved ON_SALE (deducted as soon as the order is placed).

  • Charge the remaining balance type / time only apply on shops with Selling Plans enabled — leave them blank otherwise.

Tip: replace the Product ID / Variant ID / Collection ID above 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

Column
Accepted values
If missing or invalid

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

Column
Accepted values
If missing or invalid

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

Column
Accepted values
If missing or invalid

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

Column
Accepted values
If missing or invalid

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

Column
Accepted values
If missing or invalid

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

Column
Accepted values
If missing or invalid

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

Column
Accepted values
If missing or invalid

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?