Customers
Update store login accounts, delivery details and links to customer pricing.
What it does
The customer importer updates your storefront login accounts. Each row identifies a customer by their username.
What customers see
Customers can sign in with their username and password and see their imported contact and delivery details. Matching account codes connect their prices, balances and invoices.
When to use it
Use it when customers join, leave or change their contact and delivery details.
Before you upload
Always upload the complete list of imported customers. Missing imported customers lose access to sign in, including when the file is empty or header-only. Self-registered customers are not deactivated by imports.
Passwords
- A value in
PASSWORDalways sets the customer's password, overwriting any existing one. - Blank for a new customer: a random 8-character password is generated. Combine this with
SEND_INVITE_EMAILso the customer receives their credentials. - Blank for an existing customer: their current password is kept.
Customer CSV files contain login credentials. Treat them as sensitive: leave PASSWORD blank for
existing customers unless you intend to reset it, and don't share or retain uploaded files
unnecessarily.
Each row adds a customer or updates the customer with the same username. Include every column you use in every file. Blank optional values clear the previous value, except for existing passwords as described above.
Imported customers missing from the file are deactivated and can no longer log in. They are reactivated, with the values from the file, when their username reappears in a later import.
Customers who registered themselves on the storefront are never deactivated by imports. However, if a CSV row uses the same username as a self-registered customer, the import updates that account, including its password.
Read the shared CSV format before preparing your file.
Steps
- Open eCommerce → Importers.
- In Upload CSV, choose Import for Customers then use Pick CSV file to select your complete file.
- Review the replacement warning, then select Upload and replace.
What you'll see
The file appears in Import log as Pending, then Success or Failed. Changes apply within about 5 minutes of uploading - see when changes appear.
If the file fails, ProConnect emails your store's email address with the reason and the rows to correct, and emails you again when a later Customers file succeeds. A run of failures is only emailed the first time. See Email notifications.
If something goes wrong
- Failed import: select View report, correct the reported rows and upload the complete file again. A validation error prevents the whole file from being applied.
- "Customer ID must be 36 characters or fewer." or "Customer ID can only contain letters, numbers, hyphens, underscores and ampersands.": use the account code from your ERP, not a name or a note. Spaces, full stops, slashes, apostrophes and brackets are not allowed; spaces at the start or end are removed for you. If a customer has several ERP accounts, give each account its own login.
- Unexpected results: If a customer cannot sign in, check their username is included and whether the file reset their password. If prices, invoices or balances are absent, check that their account code matches the other files exactly.
- Missing rows after a successful upload: restore them in the complete file and upload again. Check the replacement rules above before sending another file.
See the shared identifier matching rules when preparing your file.
Columns
Limits count characters after surrounding spaces are removed. A value over its limit fails that row, and the file is not applied. See the shared value limits.
Login and account linking
| Column | Required | Limit | Example | Notes |
|---|---|---|---|---|
USERNAME | Yes | 1-255 characters, no commas | acme-001 | The customer's login name, used to match existing accounts. If the same username appears more than once, the last row wins. |
EMAIL | Yes | 1-255 characters, in the form name@domain | buyer@example.com | The customer's email address. Used for order confirmations and invite emails. |
PASSWORD | No | Up to 255 characters | Leave blank | The customer's login password. See password rules above. |
CUSTOMER_ID | No | 1-36 characters: letters, numbers, hyphens, underscores and ampersands | ACME001 | The ERP account code that links this customer to the accounts and customer pricing feeds. Values must match those feeds exactly. |
SEND_INVITE_EMAIL | No | Yes/no value | yes | Yes requests an invite email for a new customer created without a PASSWORD. Ignored for existing customers. Defaults to no. |
PAYMENT_REFERENCE | No | Up to 18 letters and digits | ACME001 | No spaces or punctuation. |
Contact and delivery
| Column | Required | Limit | Example | Notes |
|---|---|---|---|---|
PHONE | No | Up to 255 characters | 447700900123 | Contact phone number. Included in order notifications. |
FIRST_NAME | No | Up to 255 characters | Jane | Shown on the storefront account page and in order details. |
LAST_NAME | No | Up to 255 characters | Buyer | Shown with FIRST_NAME. |
CHECKOUT_NOTICE | No | No fixed limit | Order by 5pm | Per-customer notice shown on the checkout page, e.g. delivery days or cut-off times. |
DELIVERY_TIMES | No | Up to 500 characters | Mo-Fr 09:00-17:00 | Per-customer delivery slots that override the store's delivery slots. Uses the same opening-hours format as the store's delivery slot settings. Requires the per-customer fulfilment slots feature. |
COLLECTION_TIMES | No | Up to 500 characters | Mo-Fr 09:00-17:00 | Same as DELIVERY_TIMES, for collection slots. |
ADDRESSES | No | No fixed limit | 12 High Street, Basingstoke RG21 4AB | Pipe-separated list of full delivery addresses. Shown in the checkout address picker in the order given. Addresses contain commas, so quote the whole cell. |
SEGMENTS | No | Ignored | Leave blank | Accepted for legacy compatibility and ignored. |
Yes/no columns accept 1, true, or yes, and 0, false, or no. A blank cell means no. Any other value fails validation.
Linking to pricing and accounts
CUSTOMER_ID links the customer to the customer pricing and accounts feeds. Prices and account balances only appear for a customer when the CUSTOMER_ID values match exactly across the files. A customer without a CUSTOMER_ID can still log in and order, but sees no customer-specific prices, invoices, or account balance.
Example CSV
USERNAME,EMAIL,PASSWORD,PHONE,CUSTOMER_ID,FIRST_NAME,LAST_NAME,CHECKOUT_NOTICE,SEND_INVITE_EMAIL,ADDRESSES,PAYMENT_REFERENCE
acme-001,buyer@example.com,,447700900123,ACME001,Jane,Buyer,Deliveries Tuesday and Friday. Order by 5pm the day before.,yes,"12 High Street, Basingstoke RG21 4AB|Unit 5 Mill Lane Estate, Basingstoke RG24 8PH",ACME001
acme-002,accounts@example.com,Str0ngPass24,447700900456,ACME002,Sam,Accounts,,no,"3 Market Square, Winchester SO23 8LB",ACME002Download the sample customer CSV to use as a template.