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
Order importing is done under Downloads > Tools > Import/Export. On this page you’ll find a box labelled Import Orders.
![Import-Complete – Easy Digital Downloads](https://easydigitaldownloads.com/wp-content/uploads/2022/07/Import-Complete-1200x359.png)
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.
![](https://easydigitaldownloads.com/wp-content/uploads/2022/07/6184cb8e115c9.png)
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 Field | Expected Data Type |
---|---|
Currency Code | An ISO Standard three letter abbreviation like USD, EUR, GBP |
Customer Email | Any standard email format is accepted, will be validated before input |
Customer First Name | Any text string. |
Customer Last Name | Any text string. |
Customer ID | This is the unique numerical ID of the customer created by EDD. Must be an integer. |
Discount Codes | Any acceptable discount code, mixed characters, typically something like BLACKFRIDAY2015 |
IP Address | Any valid IP address, a mix of numbers and dots. |
Mode | This 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 Method | Accepts the name of the way the order was processed. Typically the name of a payment gateway like Stripe, PayPal, Store Payment, etc. |
Order Number | This 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 Date | Any standard date format |
Order Key | A 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) |
Status | Any valid order status found in the EDD documentation. |
Subtotal | Not found in EDD export files, the total purchase amount before taxes and discounts. |
Tax | The fraction of the total that is tax only. |
Total | Total 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 1 | Any text string. |
Address Line 2 | Any text string. |
City | Any text string. |
State / Province | Any text string. |
Zip / Postal Code | Any text string. |
Country | Any 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.
![Order-Mapping – Easy Digital Downloads](https://easydigitaldownloads.com/wp-content/uploads/2022/07/Order-Mapping-1200x2242.png)
After submitting you should see a confirmation message similar to this:
![Import-Complete-1 – Easy Digital Downloads](https://easydigitaldownloads.com/wp-content/uploads/2022/07/Import-Complete-1-1200x359.png)
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.
![Export-Order-Screenshot – Easy Digital Downloads](https://easydigitaldownloads.com/wp-content/uploads/2022/07/Export-Order-Screenshot-1200x341.png)
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","bob@example.com","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.