Most import problems come from the data, not from WithWine. A CSV file exported from another system usually has typos, information in the wrong columns, dates in the wrong format and the same customer listed twice. Some of these stop a row from importing. Others import without any warning and leave you with wrong records that are hard to fix afterwards.
We strongly recommend checking and cleaning your data before every import. It's much quicker to fix a spreadsheet than to fix hundreds of customer records, club memberships or orders once they're in WithWine.
Start with a small test import
Import 5 to 10 rows first, then open those customers, club members or orders in WithWine and check they look right.
Only import the rest of the file once the test rows are right.
Keep a copy of your original file, unchanged, so you can go back to it.
Customer details
No duplicate email addresses in one file. WithWine keeps one customer per email address. If the same email appears twice, the later row can overwrite the earlier one, for example changing a customer from subscribed to unsubscribed.
Email addresses are correct. Look for typos such as missing @ signs, spaces, commas instead of full stops, and misspelt domains such as gmial.com. An email without an @ sign is rejected. A misspelt email imports as a separate customer you can't contact.
Each value is in the right column. First and last names in First Name and Last Name. Street address in Address Line 1, with unit or level details in Address Line 2. Business names in Business Name, not in Address Line 1.
States use standard abbreviations. For example NSW, VIC, QLD, SA, WA, TAS, NT or ACT in Australia, and CA, NY or OR in the US. WithWine doesn't check this column: "South Australia" or "Sth Aust" imports exactly as typed, so the same state ends up spelt several ways.
Countries are two-letter codes. AU, NZ, US. A full country name, such as Australia, is rejected.
Dates are in yyyy-MM-dd format, for example 2026-03-04. Set date columns to text format so your spreadsheet program doesn't change them back. Other formats can be read the wrong way round (see the order section below).
Delivery instructions are up to date. Old instructions, such as a gate code that has changed, are shown to whoever packs and delivers the order.
Phone numbers are in a text-format column, so your spreadsheet program doesn't drop leading zeros.
Club members
Club names match your clubs. The Club Name must match one of the club names in Settings > Clubs. A name that doesn't match is rejected.
One row per customer per club. If the same customer appears twice for the same club, for example once as Active and once as Cancelled, WithWine uses the last row without any warning. Remove old or duplicate memberships from your file first.
Pickup members have a pickup venue. If Club Delivery Method is Pickup, fill in WithWine Venue Name for Club Pickup (or the venue ID). Otherwise the row is rejected.
Authority to leave is correct, and turned on. Check the Authority to Leave column says YES only for members who agreed to it. If you import authority to leave, make sure Provide "authority to leave" option is ticked in Settings > Shipping. See How to offer authority to leave
There's a buffer before each next order date. Subscription club members are charged automatically on their next order date. Import them at least 10 days before it, so they get the upcoming order email and can change their selection before they're charged.
Selections match the club. Preferences, how often, bottle quantities, schedules and products must be options the club offers. Product quantities must add up to the member's bottle quantity, or the member is left waiting for a selection.
No card numbers. Never put full card numbers in a CSV file. Use the last 4 digits column instead.
Orders
Every email matches a customer in WithWine. Import customers first. An order with an email that isn't in WithWine still imports, but with no customer attached, so it doesn't appear in anyone's purchase history.
Order totals are right. WithWine doesn't check that the items add up to the Total. A mistyped total, such as 999 instead of 99, imports as it is and is added to the customer's lifetime value.
The order details are the same on every row of an order. If rows of the same order have different totals, WithWine uses the first row.
Dates are yyyy-MM-dd HH:mm. A date such as 03/04/2025 is read as 4 March, not 3 April. Dates like 14/02/2025 happen to work, so this mistake is easy to miss.
Old orders are marked as finished. Use Shipped or Collected (with a Shipped Date) for orders that are complete. An order imported as Pending appears as a live, unfulfilled order for your team to deal with, and other unfinished statuses such as ReadyForCollection and AwaitingPayment are meant for orders that still need action.
Each product's SKU is unique. If two products in WithWine share a SKU, rows using that SKU are rejected. Use the product ID instead, or fix the SKUs first.
Leave out orders you don't want counted. Imported orders count towards customers' lifetime value, so remove test orders and refunded orders you don't want included.
After the import
Read the Import Complete pop-up. Click Download Errors if any rows failed, fix them, and import just those rows again.
Spot-check a few records in WithWine: a customer, a club member and an order.
For orders, don't re-import an order to correct it. Re-importing can leave old products on the order and change its status. Contact WithWine support instead.
