Amazon orders to labels
Load the unshipped orders report you download from Amazon Seller Central, the tab-separated TXT, and get a 4 × 6 label for each order line: recipient and address, the order ID as a barcode, quantity, product and SKU. Download them as ZPL for a Zebra or as a PDF for any printer.
Free and without an account. Your file is read in this browser and never uploaded.
1Your data
2Label template
Your columns. Click one to put it in the template at the cursor:
Fields in the template
3Preview and download
The ZPL file goes straight to a Zebra printer. The PDF is for any other printer, one page per label.
Without an account: 3 rows a day. Free account: 20 a day. Paid plans: whole files.
How to do it
- In Seller Central, open Orders, then Order Reports, and download the Unshipped Orders report. It is a tab-separated .txt file.
- Load it above as it is. Each line of the file becomes one label.
- Check a few labels in the preview, change the template if you like, and download the PDF or the ZPL.
Columns the template uses
The template reads these columns of Amazon's report. Columns you add with the column picker can go in the template too, written the same way.
order-id: the order number, also printed as a barcoderecipient-name: who receives the packageship-address-1: the address, with ship-address-2ship-city: city, with ship-state and ship-postal-codeship-country: country codequantity-to-ship: units still to ship on that linesku: your SKU, also printed as a barcodeproduct-name: the product title
One label per order line
Amazon's report has one line per product in an order, so an order with two different products gives two labels with the same order ID. Sort the file by order-id before loading it if you want them together.
How to print labels from a spreadsheet
- Load your Excel or CSV file, or paste the cells. Each row becomes one label.
- Write the label in ZPL, or design it in the viewer and bring it here, and put {{column}} where each value goes. Fields with the same name as a column are matched on their own.
- Check a few rows in the preview, then download the ZPL to send to the printer or the PDF to print anywhere.
From your own code
If the data comes from your system, fill the template there and send the ZPL to the API: up to 50 labels per request. The API docs show the call in nine languages.
Questions
Is this the shipping label I pay for?
No. The carrier's shipping label, with its tracking barcode, comes from the marketplace or the carrier when you buy the postage. These are address and packing labels from your orders: for orders you deliver yourself or with a local courier, for picking, or to stick on the package with the order and SKU.
Is my orders file uploaded?
No. The file is read in your browser and never reaches our server; only the filled-in labels are sent to be drawn, and they aren't kept.
Does it work with Amazon in Europe?
The report's column names are the same in every Amazon store, as far as Amazon documents it. If a column comes out empty, check its name in the first line of your file and use that name in the template.
Is it free?
You can try it for free: load your whole file and preview every row, then download up to 3 rows a day without an account, or 20 a day with a free account. Paid plans download whole files, from 50,000 rows on Pro to 100,000 on Business.
Is my spreadsheet uploaded?
No. The file is read in your browser and stays there. Only the filled ZPL is sent to the API to draw the preview and the PDF, and on a paid plan the API doesn't keep it. Free renders may be sampled for up to 24 hours to find bugs.
How do I print several copies of each row?
Add a column with the number of copies and put ^PQ{{copies}} before ^XZ in the template. Each row then prints that many labels.
What if a value has ^, ~ or accents?
The page escapes them for you: fields with ^ or ~ get ^FH and the characters in hex, and accented text gets ^CI28 (UTF-8) if the template doesn't set an encoding.
Can I do this from my code?
Yes. Fill the template in your own code and send the ZPL to the API, up to 50 labels per request. The API docs have the call in nine languages.