# How to print barcode labels from a Shopify purchase order

> Shopify cannot print labels from a purchase order. Here are the three ways to do it anyway, what each costs you per delivery, and when each is the right call.

- Source: https://storestandards.com/blog/print-barcode-labels-after-stocky/
- Published: 2026-08-17
- Author: Tom Beckwith, Engineer, Store Standards
- Topics: Barcodes, Receiving

## Key points

- Shopify does not print labels from a purchase order, and says so in its own migration guide.
- There are three ways to do it. A CSV export, Shopify's free product label app, or a label app that reads the delivery.
- The part that separates them is a part delivery, because Shopify only records the cumulative accepted quantity per shipment.

---

A delivery lands, you receive it in Shopify, and the stock is right within the
hour. Then you need a barcode label for every unit that arrived, and Shopify
has no button for it.

This is not something you have missed. Shopify's migration guide says labels
are printed from the product list rather than the purchase order screen, and
that label quantities do not fill in from a partial
[receiving](https://storestandards.com/glossary/receiving/). It suggests a CSV export or a third-party
app for anything large.

Here are the three routes, in order of how much they cost you.

<div class="table-scroll">
  <table>
    <thead>
      <tr>
        <th>Route</th>
        <th>Cost</th>
        <th>Time per delivery</th>
        <th>Breaks when</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Export to CSV and merge</td>
        <td>Free</td>
        <td>15 minutes upwards</td>
        <td>You receive weekly</td>
      </tr>
      <tr>
        <td>Shopify's Retail Barcode Labels</td>
        <td>Free</td>
        <td>The counting, then minutes</td>
        <td>Quantities come from a delivery</td>
      </tr>
      <tr>
        <td>An app that reads the delivery</td>
        <td>$0 to $20 a month</td>
        <td>Under a minute</td>
        <td>A delivery arrives in two drops</td>
      </tr>
    </tbody>
  </table>
</div>

## Route one: export to CSV and merge

Free, and it works.

Export the received lines, open them in a spreadsheet, and merge into a label
template in a word processor or a label designer. Print the sheet.

The steps are worth writing down, because the order matters:

1. Export the lines from the transfer behind the purchase order.
2. Delete every column except barcode, title, variant and quantity.
3. Work out the label count per line. This is the step that costs you.
4. Repeat each row that many times, which is a formula or a lot of copying.
5. Merge into the label layout and print.

Do this once and it is fine. Do it weekly and two problems show up. It is
fifteen minutes of clicking that produces nothing except labels you could
have had automatically. And step three is by hand, from what arrived, which
is where the errors live.

Worth it if you receive rarely, or if you are between apps and a delivery is
sitting on the floor right now.

## Route two: Shopify's own label app

Retail Barcode Labels is free and made by Shopify, and it is the right tool
for the job it was built for. Pick products, pick a template, print.

What it does not do is read a delivery. The quantities come from you, because
the app has no idea a purchase order exists. It solves the printing and
leaves you the counting, which is the half that takes the time.

Use it if you label by product rather than by delivery, such as when a new
range arrives and you want a sheet per line regardless of quantities. Where
that stops working is
[when Shopify's Retail Barcode Labels app is not enough](https://storestandards.com/blog/retail-barcode-labels-limits/),
and the apps built for the other job are in
[Retail Barcode Labels alternatives](https://storestandards.com/compare/retail-barcode-labels-alternatives/).

## Route three: an app that reads the delivery

A category of app appeared in mid 2026 to fill exactly this gap, most of it
within weeks of the Stocky sunset being announced. These read the transfer
behind your purchase order, take the accepted quantity per line, and offer
that as the label count.

They are cheap. Several have free plans of a few hundred labels a month, and
the paid tiers sit between $9.99 and $19.99. That removes the counting, which
is the win. Then one more question separates them, and it only shows up on a
[part delivery](https://storestandards.com/glossary/part-delivery/).

## The part delivery problem

Say you ordered 12 and 7 arrive on Tuesday. You print 7 labels. On Friday the
other 5 turn up and you open the app again.

It offers 12.

The reason is worth knowing, because it is not laziness on the app's part.
Shopify does not keep a record of what arrived in each individual drop.
Receiving the same transfer twice updates the same shipment: the accepted
quantity goes from 7 to 12 in place, with no per-event history to query. Any
app filling straight from that number cannot know that 7 of them are already
on your shelf wearing labels.

The only way to offer 5 is for the app to keep its own record of what it has
printed, and subtract.

So when you test one, test that. Receive part of an order, print, receive the
rest, and look at the number it offers. Everything else on the feature list is
comparable between these apps. That one is not.

Which apps do what is in
[the label app comparison](https://storestandards.com/compare/best-shopify-barcode-label-printing-apps/).
If you are here because Stocky is closing, the wider list is
[what Stocky did that Shopify's admin still does not](https://storestandards.com/blog/stocky-gaps-shopify-admin/).

## What to print on, and what to put on it

The printer matters less than people expect, and the label stock matters more.

**Avery sheets on a laser printer** cost nothing to start and suit a shop that
labels a few times a month. The waste is the catch: a sheet of 24 used for six
labels throws away eighteen.

**A Dymo or Zebra roll** prints one label at a time, so a short run costs
nothing. This is what pays for itself once you label every delivery. Buy the
label size before the printer, and buy it in the size your shelves take.

What goes on the label is a shorter list than most templates suggest:

- The barcode, which is the whole point.
- The product name, in words, so a person can read it when the scanner fails.
- The variant, if you carry more than one.
- The price, only if you price on the shelf. A price on a label means a
  reprint every time it changes.

Test one label on your own stock before you order a box of them. A preset
that is two millimetres out wastes a roll, and every app has its own preset
list.

## Before any of it: check your barcodes exist

None of the three routes helps if half your products have no barcode in the
[barcode field](https://storestandards.com/glossary/barcode-field/). Fix that first, generate in-store
codes for anything without one, and only then worry about printing.
[Barcode types every Shopify store should know](https://storestandards.com/blog/barcode-types-for-shopify-stores/)
covers which codes are safe to make up and which are not.