Skip to main content
— How-to

Import members with CSV

Alva Courses is a Shopify app that lets you bulk-enrol students from a CSV file. List each student's email, name and course titles, upload the file with Bulk Import CSV on the Members page, and the whole cohort is enrolled at once — with an optional enrolment email.

How it works

CSV import enrols many students at once, without placing an order for each. Use it to migrate an existing audience, onboard a corporate cohort or grant complimentary access. Each row becomes a member, matched to an existing Shopify customer by email or created as a new one, and is enrolled in the courses the row names.

The import date becomes each student's enrolment date, so a course's drip schedule and access deadline count from the day you import. There are no CSV columns for drip or deadlines: they follow each course's own settings.

Import steps

1. Prepare your CSV file

In a spreadsheet, add a header row with the columns first_name, last_name and email, plus course_1 to course_10 for the courses each student should join. Only email is required. Type each course title exactly as it appears in Alva Courses, capitals included. Save the sheet as a .csv file of up to 1,000 lines, including the header, and 10 MB.

Header names ignore capitals, and first name and last name work too. One row can enrol a student in up to ten courses; a row with no course adds the student as a member only.

2. Open Bulk Import Members

In the Shopify admin, open Alva Courses, click Members in the app menu, then click Bulk Import CSV at the top of the page. The Bulk Import Members page shows the column guide, a Download CSV Template button and an Available Courses list — click a title to copy it exactly. A course's own Members tab has no import.

The Members page, with Bulk Import CSV at the top.

3. Upload your file

Drop your .csv file onto Upload CSV File, or click to browse. Alva Courses reads the columns by their header names — there is no column-mapping step — and checks every row. An invalid or duplicate email, or a course title that matches no course, marks the row invalid.

4. Choose the import options

If the file names courses, tick Send enrollment emails to imported members to email each student a link to their courses. It starts unticked, and emails only send while Send enrollment emails is also ticked in Settings → Email Settings. You can also add one Shopify customer tag, up to 40 characters, and tick any Extra columns to save them as contact properties; unticked columns are ignored.

5. Review and start the import

Check the preview's valid and invalid counts and the reason each flagged row gives. Only valid rows are imported, so fix and re-upload the file if you need the others. Click Start Import and keep the page open until it finishes; if it stops, Resume import carries on where it left off.

6. Verify the enrolments

The summary shows how many members were created, already existed or failed, and Retry Failed runs the failed rows again. Click View Members: imported students appear with their progress at 0%. Importing the same file again skips students who are already enrolled.

What learners see

Imported students find their courses under "My Courses" in their Shopify customer account — no separate order or second login — and get your enrolment email if you switched sending on. They open the course in the storefront course player and their progress tracks from the first lesson.

See also

Was this helpful?

Still stuck? Email us.

Last updated 2026-10-09