Skip to main content
Easy Digital Downloads Documentation
Documentation, Reference Materials, and Tutorials for Easy Digital Downloads

Importing / Exporting Orders

Easy Digital Downloads has the ability to import and export orders via a CSV format, either from a from another store or import new products in bulk. If you are importing orders from another store, see our export guide here.

In This Article

Importing
Exporting
FAQs


Importing

Order importing is done under Downloads > Tools > Import/Export. On this page you’ll find a box labelled Import Orders.

Format

Your CSV should be comma separated, with fields enclosed by double quotes. The order of the fields is not important, as you’ll be mapping them in the next step.

1. Upload CSV File

Click Choose File and browse to your file. Then click Import CSV.

2. Mapping

Once your file is uploaded you’ll see a list of Order fields that need content, and a dropdown for each one, where you can map where the data is. Each dropdown will be populated with content from your CSV, so you’ll be able to map accurately.

Additionally, as you choose a column, a value from the column will appear on the right, taken from the first row of data, as in the example below.

Note: If no data appears in the right column it is NOT a problem. That merely indicates that the row being used for examples doesn’t contain data for that column.

Required Fields

The more fields you have the more complete your site data will be, which can be helpful when working with financial statements or customer information. That said, the required fields are the customer email, all of the product fields, and the transaction fields.

CSV Fields

Easy Digital Downloads is looking for this information in its import:

Product FieldExpected Data Type
Currency CodeAn
ISO Standard three letter abbreviation like USD, EUR, GBP
Customer EmailAny standard email format is accepted, will be validated before input
Customer First NameAny text string.
Customer Last NameAny text string.
Customer IDThis is the unique numerical ID of the customer created by EDD. Must be an integer.
Discount CodesAny acceptable discount code, mixed characters, typically something like BLACKFRIDAY2015
IP AddressAny valid IP address, a mix of numbers and dots.
ModeThis is indicates whether the transaction took place in Test mode or was an actual transaction. Accepts only the words “Live” or “Test”
Parent Order ID This is the EDD ID of the order that was the originator of a subscription. This is only ever needed if using Recurring Payments and renewal orders are being imported.
Order MethodAccepts the name of the way the order was processed. Typically the name of a payment gateway like Stripe, PayPal, Store Payment, etc.
Order NumberThis is a unique, sequential, numerical ID. It has no specific reference to the order, it simply marks sequence. Most often used in places where VAT is an issue.
Order DateAny standard date format
Order KeyA 32 character alphanumeric key created by EDD. ex: 79e85c15567f7088e47984e112fb81eb If left blank then EDD will create on for each order on import.
Purchased Product(s)Plain text, multiple products separated by /. If importing an EDD export file, map to Orders (Raw)
StatusAny valid order status found in the EDD documentation.
SubtotalNot found in EDD export files, the total purchase amount before taxes and discounts.
TaxThe fraction of the total that is tax only.
TotalTotal purchase amount, including taxes and discounts.
Transaction ID This is a unique string that comes from the payment gateway, something like ch_18Fv1M4NqFpaKRwYjA8wCv3r. Each gateway has its own standard format.
User ID Existing WordPress username, ID, or email to associate the payment with.
Address Line 1Any text string.
Address Line 2Any text string.
CityAny text string.
State / ProvinceAny text string.
Zip / Postal CodeAny text string.
CountryAny ISO formatted country code.

As mentioned above, field order in the CSV file doesn’t matter.

3. Full Mapped Layout

Below is an example of the mapping process immediately before submitting. Note that some are set to ignore and some don’t show data on the right. This is expected for the file being imported here. Each import will be a little different, and that’s ok.

After submitting you should see a confirmation message similar to this:

Orders (Raw) format

It is very important that the Orders (Raw) Column be named this, as the importer will only take advanced product customization into account if the column is named this. To format the Orders (Raw) you can use the following format:
Download Name|Price{tax}{price_id} // Example

// Product with Variable Pricing, costing 199.99, 19.90 in tax, and price option 1
Download Name|199.00{19.90}{1}

// Product without Variable Pricing or tax
Download Name|199.00{0}{0}

// Multiple products on a single purchase record, no tax, all different price IDs
A Music Album|1{0}{0} / One More Sample Product|30{0}{0} / Another Sample Product|20{0}{1}

Exporting Orders

Purchase exporting is done under Downloads > Reports > Export. On this page you’ll find a box labelled Export Orders. You may choose a date range, with a start and end date. If you leave start and end dates empty it will export all Orders. You can also leave To or From empty for all Orders prior or after the specified date.

You may also choose to only export Orders with a specific status. Possible statuses are:

  • Pending
  • Complete
  • Refunded
  • Failed
  • Abandoned
  • Revoked
  • Preapproved
  • Cancelled
  • Renewal

Output

The resulting CSV file will have a header row. Items are comma separated and enclosed in ASCII double quotes. Example:

"ID","Email","First Name","Last Name","Address","Address (Line 2)","City","State","Country","Zip / Postal Code","Products (Verbose)","Products (Raw)","SKUs","Amount ($)","Tax ($)","Discount Code","Payment Method","Transaction ID","Purchase Key","Date","User","Currency","IP Address","Status"
"76","[email protected]","Robert","Joiner","","","","","","","I am Pippin Williamson, and so can YOU -  - $18.00","I am Pippin Williamson, and so can YOU","-","18.00","0.00","DISCOUNT1","Test Payment","76","80c256fda75fa759da666177718bb5a6","2016-06-01 17:42:47","topher","USD","73.18.183.49","Complete"

Notes

Customers/Users:
– If an order’s customer does not exist prior to importing, it will be automatically created upon import.

– While “Customers” will get created upon import, corresponding WordPress “Users” will not. If you are moving from 1 domain to another and want your customers to be able to log in and view their old payments on the new domain, you may be interested in using the [edd_register] shortcode to allow your customers to re-join your new site.

Duplicate Orders:
If you import the same CSV twice, it will create duplicate orders. It does not do any checking for duplicate orders at this time.

Product Creation during Order Import:
Payment import should NOT be viewed as a Product creation tool. While the Payment Importer will generate Products for Orders if a purchased Product does not yet exist, Products created during Order Import will have missing information (such as price, file URLs and more). Before importing Payments, use the Product Importer to make sure your imported products contain all information they are supposed to have.

Read our latest blog post:
Add More Stripe Payment Methods at Checkout