Skip to main content
All CollectionsShopify Subscription AppImporting Subscriptions to PayWhirl on Shopify
How to migrate active subscriptions to Shopify in bulk with PayWhirl
How to migrate active subscriptions to Shopify in bulk with PayWhirl

How to import your existing subscriptions to PayWhirl on Shopify for a seamless customer migration experience.

Ryan P. avatar
Written by Ryan P.
Updated over 2 months ago

PLEASE LET US KNOW IF YOU HAVE ANY QUESTIONS ABOUT THE PROCESS.

If you are migrating to subscriptions to Shopify or switching to PayWhirl from another subscription app, we can help import your existing subscriptions and make the process seamless for your customers. Customers will not have to resubscribe or provide their payment information again.

Subscription Import Requirements

  1. You are using a gateway that works with Shopify subscriptions (Stripe, Shopify Payments, Authorize.net, PayPal Express, or Braintree.)

  2. You have already imported your customers into Shopify and their payment methods. If not, please review this article for instructions.

  3. You have a properly formatted import file with the subscription information (see the sample file below).

We've created a sample import file to assist with the process. In a nutshell, you fill out a spreadsheet with all the required information (see the table and sample file below), then send it to our team, and we'll import the file to create the subscriptions.

*Please use the sample file as a template. The columns must be in the correct order and use the exact labels.

We offer the import service as a free courtesy, but our support team cannot modify the file you send us. Please make sure it matches the formatting exactly, or we won't be able to import it. If you have any questions about the formatting, please don't hesitate to get in touch with our support team.

Column name

Type

Required

Example

Description

source_id

String

Required

1234567

Unique ID in the legacy system, required to avoid importing the same subscription more than once

customer_id*

Customer ID

Required

2930896994378

Shopify ID of the customer

*Alternatively, you can use the column name customer_email and provide the email address instead*

next_order_date

DateTime

Required

2021-12-15T12:30:00

Timestamp of the next order date. If it doesn't contain an explicit timezone, UTC is assumed

currency

String

Required

USD

3-letter currency code

payment_method_id

Payment Method ID

Optional

e7219f3b896e813799ec786bdd5ecd70

Shopify ID of the preferred payment method. If empty, we'll try to use the latest active payment method of the customer

billing_interval_type

Interval Type

Required

year

Type of the billing interval [year, month, week, day]

billing_interval_count

Integer

Required

3

The number of intervals between billings

delivery_interval_count

Integer

Optional

1

The number of intervals between deliveries (only required for pre-paids)

billing_min_cycles

Integer

Optional

10

Min amount of billings before the customer can cancel

billing_max_cycles

Integer

Optional

20

Max amount of billings after which the subscription expires

billing_anchor_day

Integer

Optional

20

Anchor day: 1-7 for days of week (1 = Monday), if billing_interval_type is "week", or 1-31 for days of month, if billing_interval_type is "month" or "year"

billing_anchor_month

Integer

Optional

10

Anchor month: 1-12, only used if billing_interval_type is "year"

finishing_behavior

Finishing Behavior

Optional

immediately

Finishing behavior [immediately, end-of-cycle]

delivery_method_type

Delivery method type

Optional

shipping

Delivery method type [shipping, pickup, local-delivery]

delivery_price

Decimal

Required

5.99

Delivery price (enter zero for free shipping/digital products)

delivery_first_name

String

Optional / Required for delivery

John

Delivery address: first name

delivery_last_name

String

Optional

Smith

Delivery address: last name

delivery_address_1

String

Optional / Required for delivery

555 Beverly Hills

Delivery address: first-line, typically the street address or PO Box number

delivery_address_2

String

Optional / Required for delivery

Apartment 123

Delivery address: second line, typically the number of the apartment, suite, or unit

delivery_province_code

String

Optional / Required for delivery

CA

Delivery address: two-letter code for the region

delivery_city

String

Optional / Required for delivery

Los Angeles

Delivery address: name of the city, district, village, or town

delivery_zip

String

Optional / Required for delivery

55555

Delivery address: zip or postal code

delivery_country_code

String

Optional / Required for delivery

US

Delivery address: two-letter country code

delivery_phone

String

Optional / Required for delivery

+16135551111

Delivery address: phone number formatted using E.164 standard

delivery_company

String

Optional

PayWhirl

Delivery address: company or organization

delivery_pickup_location_id

Location ID

Optional / Required for 'pickup' delivery_method_type

61054058662

ID of the pickup location

local_delivery_instructions

String

Optional

Please leave at the reception desk

Local delivery instructions. Used only for 'local-delivery' delivery_method_type

customer_note

String

Optional

Looking forward to my order!

Notes left by the customer at checkout pertaining to the order

merchant_note

String

Optional

VIP Customer

Notes left by the merchant pertaining to the order, not visible to customer

line_0_variant_id

Variant ID - first line item

Required

32500008190026

Line item: Shopify ID of the product variant

line_0_quantity

Integer

Required

1

Line item: quantity of the product

line_0_price

String

Required

12.34

Line item: the price of the product

line_0_selling_plan_id

Integer

Optional

87456985332

ID of the associated selling plan in PayWhirl

line_1_variant_id

Variant ID - second line item

Optional / Required for multiple line items

32500008190026

Line item: Shopify ID of the product variant

line_1_quantity

Integer

Optional / Required for multiple line items

1

Line item: quantity of the product

line_1_price

String

Optional / Required for multiple line items

12.34

Line item: the price of the product

line_1_selling_plan_id

Integer

Optional / Required for multiple line items

59637425992

ID of the associated selling plan in PayWhirl

The delivery fields are optional, but all must be filled out for all physical items. If you create a digital subscription or other non-physical product, please leave them all blank.

To find the product variant id, you can add the product to the cart in Shopify and then click on the link to go back to the product. This will fill in the selling plan and variant ID at the top in the URL bar:

Need help finding some of the information? Contact our support team, and we will guide you as best we can.

Completing the Import

Once you have prepared your import file, please contact our team so we can review the data and work with you to ensure a successful subscription migration to PayWhirl on Shopify.

After the subscriptions have been imported you can review and activate them as needed (one at a time or in bulk). Please note that activating will trigger the new subscription email. Please ensure you have your email settings configured and toggled accordingly.

Please let us know if you have any questions or concerns.

Sincerely,

The PayWhirl Team

Did this answer your question?