Skip to main content

Print barcode and price labels

Print barcode and price labels for what you order or receive - Dymo, Zebra/Rollo rolls or Avery sheets, using each product's existing barcode.

Stockroom prints barcode and price labels straight from a purchase order, a receipt, or any product in your catalog - so newly-arrived stock is shelf-ready, and reprints are one click when a barcode falls off or a price changes.

Where to print from

  • From a whole PO: open the Print menu on the purchase order and choose Print labels. This prints one label per ordered unit.

  • From a single receipt: in Receiving history, click Print labels on a receipt. This prints one label per unit that actually arrived - the best option for large orders.

  • From a product - no purchase order needed: open any product in Stockroom and click Print labels. Every variant is listed with one label preselected - ideal for replacing a damaged label or relabelling after a price change.

  • In bulk from the Products list: tick the products you want, then click Print labels in the selection bar (up to 100 products at a time).

  • From the Shopify product page: choose Print labels in the product's More actions menu - it opens Stockroom's label printer for that product.

Choose a format and options

In the Print labels dialog:

  • Label format: 14 sizes. Thermal rolls - Dymo 30334 / Zebra / Rollo (2.25 x 1.25 in), Dymo 30336 (2.125 x 1 in), Dymo 30252 (3.5 x 1.125 in), Dymo 30330 (2 x 0.75 in), Dymo 30332 (1 x 1 in), Zebra (3 x 1 in), Zebra (2.25 x 1 in), Zebra (1.5 x 1 in), Zebra (1.25 x 1.25 in), Zebra (1.25 x 1 in), Zebra / Rollo (2 x 1 in), and the Dymo 30299 jewelry barbell - plus Avery 5160 (30 per page) and Avery 5167 (80 per page) sheets. The Zebra rolls fit Rollo, Munbyn and other printers sold for the same stock - if the die measures the same, the preset is the right one. Rolls print one label per page; the Avery options tile a grid on letter paper. If your roll is not on the list, you can add it - see Add your own label size below. Stockroom remembers the size you last printed on and pre-selects it next time, per device - so a till with a Dymo and a back-office printer loaded with Avery sheets each keep their own default, and you only pick a size when you are changing it. The field checkboxes are remembered too, separately for each label size - so the fields you print on a 2 x 1 roll do not follow you onto a 1 x 1 square.

  • Print from (purchase order printing only): the entire order (ordered quantity) or a specific receipt (received units only).

  • Counts: set how many labels to print per line. Printing from a product starts at one label per variant, with Zero counts, Fill 1 each, and Fill on hand shortcuts - Fill on hand prints one label per unit currently on the shelf, and the On hand at dropdown chooses which location's stock counts if you have more than one.

  • Skip first labels (Avery sheets only): reprinting onto a sheet you have already peeled labels off? Enter how many spots are gone and Stockroom leaves that many blank, starting at the top left, so the run picks up at the first spot you still have - a sheet missing its first 8 labels takes 8. The box only appears when an Avery size is selected, because a thermal roll prints one label per page and has nothing to skip. It starts at 0 every time you open the dialog, so a part-used sheet today never blanks the first labels of a fresh sheet tomorrow. The labels you have left need to be the ones after the gap - a sheet with holes in the middle is not something we can print around.

  • Fields: Include title, Include variant, Include price, Include SKU, Include supplier SKU, Include vendor, and Include cost checkboxes choose what prints - useful when a small tag needs the size and price more than a long product name. Price prints in your store's currency, and the barcode always prints. Selling at a discount? Tick Use compare-at price (it sits beside Include price and needs it ticked) to print the higher of the price and compare-at price, so a discounted item's label shows its original price - useful where shelf labels must carry the pre-discount price. Items with no compare-at price keep printing their regular price, so it is safe to leave on. If you would rather print a sale tag showing both prices, tick Cross out compare-at price instead: the label prints the current price with the original beside it, crossed out. It only appears on items whose compare-at price is higher than the price they are selling at, so this one is also safe to leave ticked - everything not on sale prints exactly as before. The two compare-at options answer the same question in different ways, so ticking one greys out the other. Include supplier SKU, Include vendor and Include cost are off by default and fit only on the larger sizes - they share one line with the SKU so no combination of them ever costs you a label. Include vendor prints the product's vendor from Shopify, which is handy for walking the shop floor and pulling an order together brand by brand. Cost prints on merchandise a shopper can pick up, which is why the checkbox says so, and once ticked it keeps printing until you untick it. If a size has no room for a field, its checkbox is disabled with "No room on this label size". The product name shrinks to fit the label rather than being cut off mid-word, down to a minimum size that stays readable - so most names print in full, and a very long name on a small stock is the one case that still gets trimmed.

Then click Print to open and print the labels, or Download PDF to save them.

What is on a label

Each label carries the fields you selected - title, variant, SKU, price - and a barcode with its digits printed underneath. The barcode always uses the product's current barcode in Shopify at the moment you print, in its native format (for example EAN-13 or UPC-A). That means you can add or correct a barcode in Shopify at any time and simply reprint - the labels pick it up automatically, including on older purchase orders and orders imported from Stocky. If a product has no barcode saved in Shopify, Stockroom encodes its SKU instead, so new products still scan - a label showing the SKU under the bars is the sign that the variant has no barcode yet - and you can generate one from the same dialog, described below. Printing on its own writes nothing back to your catalog.

The smallest sizes have fixed layouts: the 1-inch-high labels (Dymo 30332, Zebra 1.25 x 1) print the price, a one-line product name, the variant, and the barcode. These two sizes can also print the SKU on its own line beneath the barcode digits - tick Include SKU in the print dialog. It is off by default here (and only here), so labels you already print are unchanged until you turn it on. The Dymo 30299 jewelry barbell prints price and SKU on one end and the barcode with its digits on the other, leaving the middle blank to wrap around a ring or chain - short barcodes (around 8 digits) scan most reliably at that size. Avery 5167's half-inch labels print price and barcode only.

Products with no barcode

If anything in the print run has no barcode, the print dialog says so just above the buttons - for example 3 products in this run have no barcode - with a Generate barcodes button beside it. Generating gives each of those products a barcode in Shopify and prints it on the label, so a shelf of unbarcoded stock becomes scannable in one pass.

Worth knowing before you use it:

  • Generated codes scan on any scanner and in Shopify POS with nothing to set up. Out of the box each one is a 13-digit EAN-13 starting with 20. If you want shorter codes, you can choose an 8-digit or 6-digit format - see Choosing the barcode format below.

  • The two EAN formats are internal codes, taken from a number range reserved for use inside a single business - which is what makes them safe, because no other company's product can ever carry the same code. Whichever format you pick, they are not licensed GTINs. Use them in your own store, stockroom and POS; for listing on Amazon or Google Shopping, or selling through a distributor, you need barcodes issued to you by GS1.

  • Only empty barcodes are filled. A product that already has one is left exactly as it is, so you can print a whole order without checking first.

  • The code is saved to the product in Shopify, not just printed on the label, so it is there the next time you scan that item into a delivery or a stock count.

Choosing the barcode format

Go to Settings > Labels > Generated barcodes and pick a Format. There are three, and the page shows you an example of the next code as you choose.

  • EAN-13 - 13 digits. The standard retail barcode, and what Stockroom uses unless you change it.

  • EAN-8 - 8 digits. A short retail barcode with the same protection as EAN-13, and about a third narrower. This is the one to pick for small labels like jewellery tags, where a full-length barcode has to print very fine to fit.

  • Short number - 6 digits. The shortest option and the easiest to read out or type in by hand. It is a plain number rather than a retail barcode, so it prints as a Code 128 - it scans anywhere, but short numbers are reserved to nobody, so one could clash with a code from an older system or a supplier's own label. Stockroom skips any code already in your catalog, but it cannot see labels it did not print.

If you are choosing for space, it is worth knowing that shorter is not always narrower: a 6-digit code and an 8-digit EAN-8 print at almost exactly the same width, so the real choice between them is whether you want a check digit or a code you can read aloud.

Changing the format never renumbers barcodes you already have - it only decides what the next ones look like. You can switch back and forth, and each format carries on from where it left off.

Generate for a whole catalog

If you are moving to Stockroom with a lot of unbarcoded stock, you do not have to work through it order by order. Go to Products, set the Barcodes filter to No barcode, and the page tells you how many are missing - for example 168 barcodes missing across 142 products. Generate barcodes then does the whole set.

It covers everything matching the filters you have on, not just the page you are looking at, so you can narrow it first - one vendor, or active products only - and generate for that group alone. Large catalogs keep running in the background: you can leave the page and come back, and the count carries on where it left off. Products that already have a barcode are skipped, so it is safe to run over your whole catalog.

The codes are the same internal EAN-13s described above - right for your own store and point of sale, not licensed GTINs for selling through a marketplace.

Add your own label size

Using a roll that is not one of the 14 presets? Measure a single label and add it: Settings > Labels > Your label sizes, then enter the Width and Height, choose whether you measured in Inches or Millimetres, and press Add size.

Measure the label itself, not the backing paper, and not the gap between labels. A 1 x 0.5 in roll and a 30 x 20 mm roll are both fine - Stockroom converts millimetres for you and shows both on the list afterwards.

The size then appears in every Print labels dialog alongside the presets, and behaves exactly like one: it remembers its own field checkboxes, warns you if a barcode is too long to scan at that size, and has its own layout you can edit below. Stockroom works out the type sizes and barcode size from the measurements, and fits what it can - so how much goes on a label follows its height. Under about 0.65 in tall there is only room for the price, the barcode and its digits; taller stock adds the product name, then the variant, then the SKU and cost line.

Sizes can be between 0.5 and 4 inches wide and 0.375 and 4 inches tall, and you can keep up to 12 of them. Removing one from the list does not lose its layout - add the same measurements again and your layout comes back.

Change the layout

The print dialog decides which fields print. Where they sit and how large they are is set once per label size, in Settings > Labels, and it applies to every label you print on that size afterwards.

  • Move fields between lines. Each line holds one or more fields - put the product name and variant together, give the price a line of its own, and so on. A field can only be on one line at a time.

  • Set a size per line - Auto, S, M, L or XL. These are ceilings: a long value still shrinks to fit rather than being cut off.

  • Resize the barcode - its width and height, and whether the digits print underneath.

  • Add your own text with Add text line - your store name, "Made in Canada", a phone number. It prints on every label of that size and has no checkbox in the print dialog, because typing it is already the instruction to print it. Up to 40 characters; clear the box to remove the line.

A live preview beside the editor shows the real label as your printer will render it - barcode width included, at the printer resolution you have set (see below). The smallest stocks keep fixed layouts - there is nothing to move at that size - and images are not supported yet, so a logo or an address block still needs a taller stock than any size available today.

Print straight to your label printer

Stockroom can send labels directly to a Dymo or Zebra label printer, skipping your browser's print dialog. This is the fix if your labels come out off-centre, clipped at the edges, or with a blank label between each one - see the next section for why that happens.

It needs the free software your printer's manufacturer already provides, running on the same computer you print from: Dymo Connect for a LabelWriter, or Zebra Browser Print for a Zebra. If you installed your printer normally, you probably already have it.

Go to Settings > Labels > Printer. Stockroom tells you which of the two it can see from this computer, and Send labels to starts on Label printer if one is running, otherwise the browser - so if the software is there, direct printing is already on and there is nothing to configure. Pick Always the browser print dialog if you would rather keep printing the way you do now.

When a print run is going straight to a printer, the Print labels dialog says so above the buttons, naming the printer. If you are printing on a Dymo label size and none of that software is running, the same spot tells you what to install - so you find out where you print, rather than after a roll of labels has come out wrong. If the printer refuses the job, Stockroom falls back to the browser print dialog and tells you why, so you always get your labels.

Two things worth knowing. Dymo Connect only accepts label sizes Dymo itself makes - 30332, 30334, 30336, 30330, 30252 and the 30299 jewelry barbell - because Dymo identifies the stock by name. Any other size, including one you added yourself, prints through the browser or through Zebra Browser Print, which has no such limit. And when you print through Dymo Connect, Stockroom always renders at 300 dpi, because every Dymo LabelWriter is a 300 dpi printer - the resolution setting below does not apply on that path.

Set your printer's resolution

Thermal labels are rendered as a black-and-white bitmap at your printer's exact resolution, so what matters is that Stockroom knows what that resolution is. Go to Settings > Labels > Printer resolution and pick the one your printer prints at: 300 dpi for every Dymo LabelWriter (400, 450, 4XL, 550), 203 dpi for most Zebra, Rollo and Munbyn desktop printers - the spec sheet or model number will say. Stockroom starts at 203 dpi.

A mismatch in either direction makes the printer driver stretch or squeeze the label onto its own dot grid: text comes out jagged, and on the smallest stocks the bars of the barcode end up uneven widths and stop scanning. A Dymo LabelWriter left on the 203 dpi setting is the usual cause of a 1 x 1 label that looks fine in the preview but prints blurry and will not scan. If you print on a Dymo-only label size while the setting is still 203 dpi, the print dialog says so and links to the setting.

Labels print off-centre, cut off, or with a blank one between each

These three symptoms almost always have the same cause, and it is not your printer's calibration - a printer that prints correctly from other label software will still do this. Your browser is fitting a label-sized page onto whatever paper size the printer driver has selected, and when the driver's printable area is even slightly smaller than the label, the overflow spills onto a second label. That second label is the blank one, and the same overflow is what pushes the artwork off-centre and clips it.

The reliable fix is to take the browser out of it: install Dymo Connect or Zebra Browser Print and set Settings > Labels > Printer as described above. Stockroom then sends the printer an image the exact size of your label, so there is no paper size to mismatch and no page to spill.

If you would rather keep using the browser print dialog, set all three of these every time you print:

  • Paper size - pick the entry that matches your label, not Letter or A4. Dymo installs one per label type, for example "30332 1 in x 1 in".

  • Margins: None, under More settings.

  • Scale: 100%, not "Fit to page" or "Fit to printable area".

The print preview tells you whether you have it right. One label should be one page. If the preview says 2 pages for a single label, that second page is the blank label you are about to feed - change the paper size or the margins until it says 1.

If the label is blurry or the barcode will not scan, that is a different problem - see Set your printer's resolution above.

Good to know

  • Print at 100% / actual size in your printer dialog - "fit to page" or "fit to printable area" shrinks the bars and the barcode may not scan.

  • There is a limit of 500 labels per print run. A whole-PO print can exceed this on big orders - print per receipt instead, which matches what physically arrived.

  • The label count shown in the dialog is an estimate; the exact count is checked when you print.

For an overview of label printing, see Label printing on stockroom.app.

Did this answer your question?