Printeers
← Ordering · Support

Uploading orders through CSV in the Partner Dashboard

Importing orders with a CSV file

We have built a CSV importer for customers that need to import a large amount of orders at once and find it too much work to enter them manually. This is a free self-service feature. Our customer service cannot set up CSV importing for daily use, as it is meant for large one-time batches. If you need to import orders on a regular basis, an integration with the Partner API is the way to go. If you need help deciding what is the best option for you, feel free to contact our customer support.

This guide applies to you if:

  • You have an account for automatic ordering
  • You need to import a large amount of orders once
  • You have experience with CSV files

Good to know before you start

  • The importer creates dropship orders only. Every imported order is shipped directly to your customer, so a delivery address is required on every order. Combined shipments cannot be imported through CSV. Place those manually in the Dashboard or through the Partner API. See the difference between combined shipments and dropship orders .
  • You can import multi-line orders. Add a separate row per order line and give the rows that belong together the same custom identifier.
  • Print images are processed automatically. Prepare them according to our guide on how to make a print image . We do not validate your images after import and no manual positioning or checking is done. Your images are processed automatically according to the rules in that guide.
  • Images must be publicly available. Each order line with a print needs a URL where we can download the image.

How the import works

The importer walks you through a few steps:

  1. Select the store the orders should be imported into.
  2. Upload your CSV file. The importer reads the header row and tries to recognise the format.
  3. Check the column mapping. If the format is recognised it is selected automatically. Otherwise you map each Printeers field to one of the columns in your file (or leave it unmapped). See the "Supported formats and column mapping" section below.
  4. Review the orders. Every order is shown grouped by custom identifier, with its address and order lines. You can adjust the custom identifier, minimal shipping level, address, SKU, quantity and print image URL, and remove orders you do not want to import. Print images are previewed so you can spot mistakes.
  5. Start the import. Processing happens in the background. When it is finished you receive an email with the result, listing the orders that were created and any rows that could not be imported.

Supported formats and column mapping

Your file does not have to use our exact column names. After upload you map your own columns onto the Printeers fields. To save you time, the importer recognises a few known layouts automatically:

  • Printeers Default uses the field names from the reference below ( custom_identifier , item_sku , quantity , and so on).
  • Printeers (legacy) uses the older field names ( custom_reference , line_sku , line_quantity , line_print_image_url , first_name , street_name , and so on). Existing files in this format keep working.
  • Shopify maps a standard Shopify order export. Print image URLs are not part of a Shopify export, so add them per line in the review step.

If your file is not recognised, every Printeers field starts unmapped and you map each one to a column from your file yourself. Fields you do not need can stay unmapped.

File format basics

SettingValue
Delimiter, (comma)
Enclosure" (double quote)
Line endingnewline (\n)
EncodingUTF-8

The first row must contain the column headers. Each following row is one order line.

Field reference

The names below are the Printeers Default field names. When you use a different format, these are the fields you map your own columns onto.

Order fields

These fields describe the order itself.

custom_identifier (recommended) Field type: String, max length 30 characters

Your own reference for the order. Rows that share the same custom identifier are combined into one multi-line order, with the address taken from the first row. It must be unique within your store, so it cannot match an identifier you used in an earlier order or import. If you leave it empty, each row becomes its own single-line order.

minimal_shipping_level (optional) Field type: Enum Possible values: basic, tracked or express (the legacy values normal and premium are also accepted, mapping to basic and express)

The lowest desired shipping level for the order. When left empty, basic is used. An order may always be upgraded by us when the size, weight or value exceeds the limits of the shipping level. Your minimal level is only ever upgraded, never downgraded.

Example: you order 20 cases with minimal_shipping_level = basic. We upgrade the order to express because the value is too high and the products too large for an untracked shipment.

Order line fields

Each row is one order line: a quantity of one SKU with one print image. To put multiple order lines in one order, add multiple rows with the same custom identifier.

item_sku (required) Field type: String

Determines which product is ordered. Must be an existing Printeers SKU. Rows with an unknown SKU are reported in the result email and not imported.

quantity (required) Field type: Integer

How many of this order line you want to order. Must be a whole number greater than zero.

print_image_url (required for print products) Field type: String Supported file formats: PNG and JPEG

A publicly accessible URL where we can download the design to print on the product. You can also leave it empty in the file and fill it in during the review step.

Address fields

The importer creates dropship orders, so a delivery address is required on every order. Enter a valid address, as we do not check whether the address exists. When you spread an order over multiple rows with the same custom identifier, the address is read from the first of those rows.

firstname (optional) Field type: String, max length 100 characters

lastname (optional) Field type: String, max length 100 characters

company (optional) Field type: String, max length 100 characters

streetname (required) Field type: String, max length 40 characters

housenumber (required) Field type: String, max length 50 characters

housenumber_addition (optional) Field type: String, max length 50 characters

additional_info (optional) Field type: String, max length 40 characters

Can be used for additional delivery information.

Example: PO box 1234

city (required) Field type: String, max length 100 characters

state (optional) Field type: String, max length 100 characters

zipcode (required) Field type: String, max length 50 characters

country_code (required) Field type: String, 2 characters

ISO 2 country code.

phonenumber (required) Field type: String, max length 20 characters

Can be used by couriers to contact the customer with delivery information or for customs requests.

email (required) Field type: String, max length 50 characters

Can be used by couriers to contact the customer with delivery information or for customs requests.