/ /

Upload multiple orders with a CSV

Find out how to add multiple orders using CSV files, and what information you can include
Updated 4 months ago

You can upload bulk order data directly into Shippit using a CSV (comma separated values) file. This is especially useful if you have a highly customised or bespoke workflow that doesn't integrate directly with the Shippit platform. This can help to save you time, and minimises the need for manual data entry, helping to reduce errors.

You can download the sample CSV file at the bottom of this article to use as a starting point.

The Integrations page in the Shippit Settings, showing the CSV upload screen

This article guides you through the various formats and fields to use for a successful CSV upload. For general information and best practices about using CSV, see the understanding CSV and FTP article. For instructions about using an FTP server, see the uploading from FTP article.


CSV file format

All valid CSV files are supported, with values comma separated. Each order is defined by its unique order_id, which can span multiple rows for orders with multiple items or packages. For more information about how to submit files with more complicated package types, including pallets and orders with multiple packages, see the section later in this article.

Make sure your uploaded CSV does not have duplicate columns with the same header. If you import a file with duplicate headers, it could return an error, or you might find that the first column is uploaded, but all subsequent columns are ignored.

Fields

Field name

Field type

Example

Details

Required?

order_id

order

0123456789

Any internal reference number for the order from your source system.

Required

retailer_invoice

order

INV-12345

The invoice number for the order from your source system.

Optional

validate

order

yes or no

If set to `yes`, address validation must pass before the order is accepted.

Optional

suppress_communications

order

yes or no

If set to `yes`, tracking updates are not sent to the recipient for this order

Optional

delivery_instructions

order

Leave at front door

Any delivery instructions to provide to the carrier

Optional

authority_to_leave

order

Yes

Whether or not the package has authority to be left at the recipient\'s address

Optional

courier_type

order

standard

The carrier service level to use for this order

Optional

courier_allocation

order

acme_express

The carrier string to allocate this order to

Optional

collection_point_id

order

123

If using a collection point, the ID of the collection point to deliver to

Optional

collection_point_name

order

Melbourne Central

If using a collection point, the name of the collection point to deliver to

Optional

delivery_date

order

2025-10-08

For on demand and priority orders, the delivery date selected by the recipient

Optional

delivery_window

order

13:00-16:00

For on demand and priority orders, the delivery window selected by the recipient

Optional

currency

order

AUD

The currency to use for all amounts in this order

Optional

shipping_amount

order

12.99

The amount charged for shipping costs

Optional

cash_on_delivery_amount

order

122.99

The amount to be collected by the carrier before delivery can be completed

Optional

tax_amount

order

22.99

The amount of tax charged on this order

Optional

delivery_company

order

ACME Enterprises

The name of the company to deliver the package to

Optional

delivery_address

order

123 Main St

The first line of the address to deliver the package to

Required

delivery_suburb

order

Mascot

The suburb to deliver the package to

Required

delivery_district_city

order

Sydney

The district or city to deliver the package to

Required

delivery_state

order

NSW

The state to deliver the package to

Optional

delivery_postcode

order

2000

The postcode of the suburb or city to deliver the package to

Required

receiver_name

order

Jane Doe

The full name of the person receiving the package

Optional

receiver_contact_number

order

+61412345678

A phone number for the person receiving the package

Optional

receiver_language_code

order

EN

The two-letter language code to use in communications with the receiving the package

Optional

user_firstname

order

Alex

The first name of the person placing the order, which might be different to the package receiver.

Optional

user_lastname

order

Adams

The surname of the person placing the order, which might be different to the package receiver.

Optional

user_email

order

a.adams@example.com

The email address of the person placing the order, which might be different to the package receiver.

Optional

customs_duties_amount

order

22.99

For international orders, the amount of duties charged on this order

Optional

customs_export_reason

order

Permanent

For international orders, the reason the goods are being exported. For a list of valid export reasons, see the Developer Guide.

Optional

customs_incoterm

order

DDU

For international orders, the incoterm to apply to this order. For a list of valid incoterms, see the Developer Guide.

Optional

customs_tax_id_type

order

IOSS

For international orders, the tax ID type to apply to this order. For a list of valid tax IDs, see the Developer Guide.

Optional

customs_tax_id_country_code

order

AU

For international orders, the two-letter country code associated with the tax ID for this order.

Optional

customs_tax_id_number

order

AE1001

For international orders, the number of the tax ID for this order.

Optional

customs_recipient_id

order

PASS123456

For international orders, the number of the ID for the recipient of this order.

Optional

customs_receiver_freight_charge_amount

order

22.99

For international orders, the amount being charged for freight on this order.

Optional

customs_documents_require_printing

order

yes or no

For international orders, if set to `yes`, the customs documents need to be printed out on paper.

Optional

cross_border_provider

order

zonos

For international orders, the name of the cross-border provider facilitating the shipment, such as Zonos or Global-e.

Optional

cross_border_order_reference

order

123456789

For international orders that use a cross-border provider, the reference number used by that provider.

Optional

line_item_id

line item

1234

An internal reference used to identify the product being shipped, such as the order ID.

Optional

sku

line item

cm-ceramic-black

The SKU of the product being shipped

Optional

title

line item

Cotton T-Shirt

The name of the product being shipped

Optional

weight

line item

0.7

The weight of the item, in kilograms

Optional, not used if any package fields are set.

length

line item

7

The length of the item, in centimetres

Optional, not used if any package fields are set.

width

line item

3

The width of the item, in centimetres

Optional, not used if any package fields are set.

depth

line item

11

The depth of the item, in centimetres

Optional, not used if any package fields are set.

quantity

line item

2

The total number of the product ordered

Optional

quantity_packed

line item

1

The total number of the product being shipped

Optional

price

line item

99.99

The retail price of the product being shipped

Optional

cost_price

line item

77.99

The cost price of the product being shipped

Optional

retail_price

line item

88.99

The retail price of the product being shipped

Optional

location

line item

W1-E16

The warehouse location of the product being shipped

Optional

dangerous_goods_code

line item

PI966 or UN3481

The dangerous goods code of the product being shipped

Optional

dangerous_goods_text

line item

Lithium ion batteries

The text description of any dangerous goods being shipped

Optional

origin_country_code

line item

CN

For international orders, the two-letter country code for the country of origin of the product being shipped.

Optional

tariff_code

line item

61091000

For international orders, the tariff or HS code of the product being shipped

Optional

mid_code

line item

AUHM123

For international orders, the MID code of the product being shipped

Optional

package_label_number

package

PP1234567890

For track-only or return orders, the consignment or label number.

Required for track-only orders.

package_id

package

PL10001

The product line ID of the product being shipped.

Optional

package_type

package

pallet

Use only to indicate a pallet package type. For all other package types, leave blank.

Required for pallets.

package_weight

package

0.7

The charged weight of the entire package, in kilograms

Optional

package_length

package

7

The length of the package, in centimetres

Optional

package_width

package

3

The width of the package, in centimetres

Optional

package_depth

package

11

The depth of the package, in centimetres

Optional


How Shippit processes CSV files

You can use a CSV file to upload orders with multiple products or different package types, like pallets.

To do this, use the exact same order_id for every row that belongs to that order. Shippit reads these rows together as one single shipment.

💡NOTE: You don't need to match individual products to specific packages in your file. Shippit totals all product and package data it finds for that order_id.

Field types

Shippit groups your rows by order_id and applies different logic based on the field type:

  • Order-level fields: Details like the delivery address, receiver contact information, and carrier settings are read from the first row only. Any different information in later rows for the same order_ID is ignored.

  • Line item fields: These define the products you are shipping, and includes information like sku, title, and price. Each unique product in your order must have its own row.

  • Package fields: Fields prefixed with package_ (like weight, length, or type) describe the physical parcels or pallets. These are independent of your products and can be added to any available row within the order_id group. You can include a maximum of 100 packages or pallets in a single order.

You don't need to match individual products to specific packages in your file. Shippit totals all product and package data it finds for that order_id.

Handling pallets and multi-package orders

If you are shipping pallets or an order where the number of physical packages exceeds the number of products, add extra rows for that order_id.

  • Package-only rows: For these extra rows, populate the package_ fields and leave the product or item fields blank.

  • Package limit: You can include a maximum of 100 packages or pallets per single order.

  • Independent collections: We treat line items and packages as two separate lists for the same order. They are not linked to specific rows, so you don't need to worry about which product is inside which package in the CSV.

Example logic

When you upload your file, Shippit follows this workflow:

  1. Groups all rows with a matching order_id.

  2. Captures the delivery destination from the first row.

  3. Collects every unique item listed across all rows in that group.

  4. Collects every package or pallet listed across all rows in that group.

Example: Multi-item and multi-package orders

If you have an order with three unique products and two physical packages, you can format your CSV in a couple of ways. Because Shippit treats items and packages as two independent collections, you don't need to specify which product is in which box.

Option 1: Using three rows

In this example, you use the minimum number of rows required by your item count. Since you have three products, you use three rows. You can then fill in the package details on the first two rows and leave the third package field blank:

order_id

sku

title

package_weight

0123456789

SKU-A

Red Shirt

2.5

0123456789

SKU-B

Blue Pants

1.8

0123456789

SKU-C

Green Hat

Option 2: Using five rows

If it's easier for your team to keep data separate, you can put each unique entity on its own row:

order_id

sku

title

package_weight

0123456789

SKU-A

Red Shirt

0123456789

SKU-B

Blue Pants

0123456789

SKU-C

Green Hat

0123456789

2.5

0123456789

1.8

Regardless of which option you choose, Shippit processes 0123456789 as a single shipment containing all three items, packed into two parcels.


Upload a CSV file to your Shippit account

When you have created your CSV file, you can upload it to your Shippit account and see your order in the New Orders page.

💡NOTE: Always use the template linked at the bottom of this article as your starting point. This ensures all required fields are present and correctly ordered. For more information on best practices for CSV uploads, see the understanding CSV uploads article.

Uploading a CSV file

  1. Log in to your Shippit account, and navigate to Settings → Integrations.

  2. In the Select an integration section, click CSV/FTP.

  3. Check Upload via the Web Interface and click Continue.

  4. Click Upload orders CSV file

  5. Click Choose file and navigate to the CSV file you have stored on your local system. Click Upload orders to upload the chosen file. When your orders have been imported, they are available for confirmation and labelling in the New Orders page.


CSV template

You can download this sample CSV file to use as a starting point:

Was this article helpful?
Subscribe to receive updates on this article