What's new in LabelCraft
LabelCraft - barcode labels for Shopify that print at exactly the size you set.
Improvements ship continuously. Here's what's changed recently - see support if you have a question or a request.
Print history, when it is empty, stops explaining how to reprint · August 9, 2026
- The print-history page said "You haven't printed any labels yet", and then, underneath, repeated the line written for a page that is full: how to reprint a past batch exactly as it was. The one merchant certain to have no past batches was the one being told how to reprint them.
- The empty page now says what will land there once you print, and keeps the button that takes you to Print labels. The line about reprinting stays where it is true, above the list.
Your first template no longer opens on an upgrade notice about fonts · August 9, 2026
- Opening a template put the Brand font card third on the page, above the elements and the preview. On the Free plan it came with a yellow warning about a Pro typeface - so the first thing you saw, before designing anything, was an upgrade notice for a feature you had not asked for.
- The card has moved below the element editor, next to the text it restyles. The upgrade notice now appears when you actually choose a font file, which is the point at which the plan matters. Before that, a plain line next to the picker says the upload is Pro, so nothing is hidden from you.
- The built-in font is unchanged and still free on every plan: printing your own alphabet is the app working, not branding.
The button at the bottom of Print labels no longer offers to add what you already added · August 9, 2026
- On Print labels, ticking a product is what puts it in your list. The button at the bottom of that step never added anything - it takes you to Quantities - but it was labelled "Add 5 & continue", and on a page you had just opened it read "Add to print list" with nothing selected yet.
- It now says where it goes, and how much you are taking with you: "Next: quantities (5 variants)". That matches the button one step later: "Next: print (12 labels)".
- Nothing about how you select products, or what gets printed, has changed.
The bin-label preview no longer stops at 200 rows without saying so · August 9, 2026
- Importing bin or shelf locations shows you a table to check before you commit a roll of labels. That table drew the first 200 rows and stopped. The count above it, and the print itself, covered all of them - so a 500-location import showed 200 rows with nothing on the page telling you the other 300 existed.
- There is now a line under the table saying how many rows are not shown, the same way the two advisories above it already state their own limits. Nothing about what gets printed has changed: every row you imported was always sent to the printer.
When a metafield prints blank, we now name the keys your products really have · August 9, 2026
- Shopify shows a metafield definition under the name you gave it, and stores it under a different string called the key. The label template needs the key. Typing the name is the easy mistake and there is nothing on screen to catch it: the metafield line simply prints blank, on every label, and the warning said the metafield was empty - which is true, and useless, because a key that does not exist and a product with nothing filled in produce exactly the same sentence.
- Yesterday we started adding a line to that warning listing the keys your products do carry, so you could spot the real one. It could not actually do that. It was only able to list keys already written into your own template, so on a template with a single metafield line it listed nothing and the advice never appeared at all - on precisely the template it was built for.
- It now asks your products directly what they carry, and names the keys you have not already used. Paste one in and the line prints. The list leads with the namespace your own key uses, then your custom ones, so the five it has room for are not spent on metafields another app put there; it never suggests a type that cannot be printed as text; and if the lookup fails for any reason the print is unaffected.
- Separately, the sentence explaining WHY this happens - that Shopify stores a key and displays a name, and that Settings > Custom data is where you check - only appeared when we had keys to list alongside it. A store whose products carry no other metafield got the advice it needed least often. It now appears whenever a metafield resolves on none of the products in a print, with or without a list.
When we suggest a wider label, it is now one your printer can actually take · August 8, 2026
- When a barcode cannot stay scannable on your current template, we name a specific wider one to switch to instead of leaving you to hunt through the list.
- That suggestion only knew the difference between roll labels and A4 sheets. It did not know the difference between the three kinds of roll: continuous tape that the printer cuts to length, die-cut rectangles, and die-cut circles. Those are three different things you buy. So a merchant printing on 29 mm continuous Brother tape was being told to switch to a 54 x 12 mm jewelry tag, which is wide enough and is also a different consumable in a different shape.
- The suggestion now stays on the stock you already use whenever something on that stock will work. In the case above it names the 62 mm continuous tape for the same printer. It will still cross over when nothing on your own stock can carry the code, because a suggestion that works is better than none, and it still puts a comfortable fit ahead of a merely adequate one.
A label count that drifted too high now repairs itself, on every plan · August 8, 2026
- Your label count for the month is charged the moment a print starts, and given back if the print fails. If the request itself dies mid-print - the server restarts, a deploy lands, a connection drops - it takes the refund with it, and the count stays high for labels that never came out of the printer.
- On the Free plan the app already noticed and corrected this on its own, by comparing the count against the print jobs actually recorded. On Pro it did not: with no monthly cap to enforce, that check was skipped, so an inflated number could sit on your dashboard for weeks. One store was showing 892 labels for the month against 88 it had really printed.
- A daily check now looks for a count standing above what the recorded print jobs can account for, on any plan, and corrects it using exactly the same comparison the Free plan already used. It only ever corrects DOWNWARD; it skips any store that has started a print or a reprint in the previous hour, so a job still running is never mistaken for a job that never happened; and it counts reprints and labels sent to a PrintNode printer as real usage. A correction can neither charge you for labels you did not print nor take away labels you did.
Carton barcodes (ITF-14) now say up front when the box is too small · August 8, 2026
- ITF-14 is the 14-digit code that goes on outer cases and cartons. Unlike a retail barcode it prints inside a heavy frame - the bearer bars - that the standard requires so a scanner dragged across a corner cannot read half a code as a whole one.
- We were sizing ITF-14 as though that frame were not there, so the minimum width we quoted was about a third too small: 21.3 mm at 300 dpi where the real figure is 31.0 mm, and 31.5 mm at 203 dpi where it is 45.8 mm. A box between those two numbers was accepted, and printed a code with bars narrower than any of our other symbologies are allowed to use.
- Now the width we ask for is the width the frame actually needs. A carton box below it is refused before the roll is spent, with the real figure in the message, exactly as every other barcode type behaves. The carton-label guide quotes the corrected numbers too.
- If you have an ITF-14 element narrower than the new figure, widen the box or move to a wider label; nothing else about how your labels print has changed, and no other barcode type is affected.
Customer data requests are now answered, and the privacy policy says so · August 7, 2026
- If a shopper asks a store you run for the data held about them, Shopify forwards that request to every app installed on the store. LabelCraft used to acknowledge it and stop there, because it was written when the app stored nothing that could relate to a shopper.
- That stopped being true when we began saving the order or return number on print jobs run from Order labels and Returns to label, so you can find and reprint a past batch. Erasure requests have been clearing those numbers for a while; access requests were still being answered as though there were nothing to look up.
- Now the request is looked up against your print-job history and the result is sent to you, the store owner, within the 30 days Shopify allows: which print jobs mention the orders in question, when they ran and how many labels they produced, or a clear statement that there are none. Nothing identifying the shopper is stored at any point.
- The privacy policy's GDPR section said we had nothing to return or erase. It now describes what actually happens, in all four languages.
When a label is too small for a barcode, we stop suggesting a fix that cannot work · August 7, 2026
- Some labels are simply too narrow to carry a given barcode: an EAN-13 needs about 29.8 mm of label whatever you do with the design, because the code and the blank margin the scanner needs are both fixed.
- Until now the warning for that case ended by telling you to give the barcode more width by trimming other elements, or to widen the box. When the label itself is the limit that is advice with no effect at all: every millimetre the barcode box gives up comes straight back as blank margin, so the verdict does not move. You could spend a long time resizing and never see the warning clear.
- The warning now names the remedies that exist: a wider label (with the concrete preset if one of ours fits), a shorter symbology, or a shorter value. It says this only after checking every barcode width this label could give: if any of them would work, you get the same advice as before, because there it works. Two common cases go that way - something sitting beside the barcode squeezing it, and a barcode box so wide that the blank margin the scanner needs has nowhere left to go.
A special character no longer hides whether your text fits · August 6, 2026
- When a product name or price contains a character our standard label font cannot print - a Hungarian ő, a Polish ł, a currency symbol like ₴ - the printed label shows a question mark in its place, and we warn you about it.
- Until now, that one character also switched off the separate check for whether the text fits inside its box. You were told about the question mark and told nothing about the overflow, on exactly the labels most likely to have both.
- The check now measures the text the same way the printer does, question marks included, so it answers about fit whatever characters your text contains. Text that always printed cleanly is measured exactly as before and no verdict about it changes.
The pre-flight check now reads your price the way your labels print it · August 6, 2026
- Earlier today the app started printing prices in your store's own currency formatting, so a tag matches your storefront instead of guessing from the language your admin is set to.
- The check that runs before you print did not get the same change, so it was inspecting a differently formatted price than the one going on the label. For a store whose currency symbol is outside the standard label alphabet - Czech koruna, zloty, lira, baht, rouble, hryvnia, naira, lev - that meant the check called the job clean while the printed tag showed a question mark where the symbol belongs.
- The check and the printer now build the price with the same code, so what you are shown before printing is what the roll receives. If a character will not print, you are told which one, and on which product, before the labels are spent.
The template list stops saying "roll" in French · August 6, 2026
- On Templates, the badge naming each template's media showed the word stored in our database - always the English "roll" or "sheet" - so on a French, German or Spanish admin it was the one untranslated word in an otherwise translated table.
- It now reads Rouleau or Planche, Rolle or Bogen, Rollo or Hoja. Nothing else about the table changes.
Long product names stop spilling off the label in silence · August 6, 2026
- Before printing, the app measures your text to decide whether it fits. That measurement was reading a slightly narrower string than the one that actually gets printed - up to 1.1 mm narrower on a name like "WATERPROOF" - because it counted the tighter letter spacing that page-layout software applies and label files do not. Digits are spaced the same way either way, so prices, SKUs and barcode numbers were never affected: this only ever touched lettering, which in practice means product and vendor names.
- The consequence was the one thing this app exists to make impossible. A name could print past the edge of its box with nothing warning you - the pre-flight check called the job clean, the print said nothing, and the roll was already spent by the time you saw it.
- Text is now measured at exactly the width your labels carry, so a name that will not fit is caught before you print, and one that does fit is left exactly as it was. Nothing gets smaller: across every built-in template, not one font size changed.
- Centred and right-aligned text was pushed slightly too far right for the same reason - a right-aligned price could creep into the clear space a barcode needs to scan. It now lands where it belongs, within a tenth of a millimetre.
- The calibration sheet and the ruler page had the same flaw, and it mattered more there: both promised their captions would never run off the page, and in French, German and Spanish they sometimes quietly did. They no longer can.
Remove buttons say what they remove · August 6, 2026
- In the quantity tables on Print labels and Print a collection, every row's Remove button was announced to a screen reader as just "Remove", with nothing to tell the rows apart - and one press deletes the row straight away. Each button now says which product and variant it removes, so the two rows of the same product in different sizes are no longer indistinguishable.
- The column those buttons sit in also had no name. It has one now, read by screen readers and invisible on screen, so nothing about the table looks different.
The euro sign stops landing on top of your price · August 6, 2026
- A price like €300.00 printed correctly from Chrome and Edge, but from macOS Preview, Safari's print preview and some Linux viewers the € was drawn with no width at all, so it sat on top of the first digit and the price came out unreadable. Nothing warned you, because nothing was wrong with the label - the same file printed fine somewhere else.
- Your labels now carry the exact character widths the layout was measured with, so every viewer draws them the same way and the € takes its own space. Nothing about your templates changes: the positions, sizes and text are identical, the file simply stops leaving the spacing up to whichever app opens it.
- This applies to every character in the standard font, not only the euro - the pound, the section sign and the accented letters were all relying on the same guesswork. The calibration sheet and the ruler page get the same treatment, since they print in the same file as your labels.
- If you switched a template to the built-in extended font to work around this, there is no need to switch back: that font also draws characters the standard one cannot, so leaving it on is safe and switching off could bring back a missing character on a viewer that has no outline for it.
The billing page stops congratulating you for visiting it · August 5, 2026
- Every time a Pro shop opened Billing, a green "You're on the Pro plan - unlimited labels!" popped up. It was not telling you anything had happened, only that you had opened a page.
- It was at its worst in the two places it mattered: if you had already scheduled your move back to Free, it cheered next to the card telling you the date you leave, and if you came to that page to cancel, it congratulated you on the way in.
- That message now appears once, when you come back from approving a charge, which is the moment it was written for.
The GS1 prefix error speaks your language · August 3, 2026
- Settings is fully translated, except for one sentence: if you typed a GS1 company prefix that was not 4 to 11 digits, the rejection arrived in English whatever language your admin is in. It was the only validation message that form can produce.
- It is now in French, German and Spanish alongside English. Both Save buttons on that page also tell the server which language you are working in, so the answer comes back in it, whatever language your browser happens to be set to.
Print from a list no longer counts labels it will not print · August 3, 2026
- The line above your matched list said "Printing 12 labels for 3 of 5 lines". The label number was the total of every row in your file, including the rows that matched nothing, so a paste with unmatched lines announced more labels than could ever come out. It now counts the labels the matched rows asked for.
- The same arithmetic could hide the worst case: if NOTHING in your file matched, those quantities still added up, so you were told a print was about to happen while the list below read "No variants matched". A paste that matched nothing now says so.
- Once you edit that list, the line stops describing a print that is no longer the one about to happen. Remove a row or change a quantity and it tells you what your file matched and points at the list below, which is what prints. Remove every row and it says you removed them and how to bring them back, instead of telling you to fix a file that was never at fault.
The first screen counts the steps it actually shows you · August 3, 2026
- "Get started in three steps" sat above "0 of 2 steps done" and three numbered blocks. The tally was counting a different set of steps than the ones on the page: it counted saved presets, which are not on that card and are a Pro feature, and it knew nothing about the third block, print and verify it scans.
- The number now covers exactly the three steps on the card, and each of them carries its own tick as you finish it, from the day you install.
- The checklist that replaces that card after your first print had the mirror of the same problem: on the free plan, the Pro-only "save a preset" line sat in the list wearing an empty tick above "2 of 3 steps done", as if it were a fourth thing you had left undone. It now reads as what it is, an upgrade you can take or leave.
Receive no longer opens on a scan box for labels you have not printed · August 2, 2026
- The Receive page opens on your most recent transfer and fills in the lines for you. It was also opening the scan-to-verify panel at the same moment, three cards above the template picker, reading "0 of N units verified" for labels that did not exist yet. Because that panel grabs the keyboard, arriving on the page jumped you into the middle of it, past the step you came to do.
- It now appears after you print, at the bottom of the page, which is where you will be standing when you have a stack of labels and a scanner in your hand. Print from a list already worked this way.
- It also no longer takes the keyboard by itself. On your first clean print there are two scan boxes on screen, and the one that confirms your first label really scans should get the first beep, not the batch tally.
- One related fix on both pages: if the download itself failed after the labels were generated, you could end up with a failure message and an open scan panel at the same time. The panel now waits for the file.
Checking a pasted list no longer answers with raw Shopify errors · August 2, 2026
- Barcode check and Print from a list both ask Shopify to look up every code you paste. When Shopify refused - too many requests, a list too large to check in one go, or a permission we no longer hold - the page showed you the raw technical reply, in English whatever language your admin is in, with nothing to do about it.
- You now get a sentence in your own language that names the cause and what to try: wait a moment, split the list into smaller batches, or reinstall to restore the permission. The technical detail goes to our logs instead of your screen.
- If your session had quietly expired, that used to surface as one of those errors too, leaving you stuck. It now sends you through the normal sign-in instead.
"1 labels" is fixed across the printing flow · August 2, 2026
- Printing a single label said "Next: print (1 labels)" - and "1 étiquettes", "1 Etiketten", "1 etiquetas" in the other three languages we ship. That was the very first print button you meet when you come in from a single product.
- The counts along the whole printing path now read correctly at one: the selection line, the summary above the print button, the warning banners, and the confirmation after the PDF or ZPL downloads.
- The message that tells you some elements are still outside the label - the one that matters, because those labels come out clipped - said "1 element(s) still need a manual fix" right next to a sentence that got it right. Both halves read properly now.
Print buttons that were greyed out now tell you why · August 2, 2026
- Five screens could reach a state where the print buttons were dead and nothing on the page said what to do about it: Print labels, Print a collection, Print from a list, Order labels and Return labels. The usual cause is that every row is set to 0 copies, which is what happens by default if you have never opened Settings and changed the default quantity.
- On Print a collection, this hit on day one: you picked a collection, found the products, got a full table, and both Generate PDF and Download ZPL were greyed out with no explanation. The only clue was a faint "0 labels across N products" above the table.
- On the main Print labels flow it was the quantities step: the button that takes you to printing was dead, and the explanation we already had lived on the step that button leads to, which you could not reach until you fixed the thing nobody had told you about.
- All five now say it plainly, next to the button that will not work: this would print 0 labels, and what to change. Order labels and Return labels say "copies", because that is what their column is called.
- Print from a list, when you have grouped rows by bin or location, says how many of the batches are empty in a single message, and reminds you that the batches with labels in them can still be printed on their own.
The Templates page's empty screen now leads somewhere · August 2, 2026
- Before you have built a template, that page used to end with an instruction it could not honour: name your printer brand, or measure a label edge with the ruler. There is no brand box and no ruler on that page. It now says what it can do for you and links straight to the two places that can take the answer: your printer brand in Settings, and the printed ruler in Printer calibration.
- That text was also English on an otherwise translated page, whatever language your Shopify admin is in. All of it is translated now, in the four languages we ship.
- It is also honest about the in-between case. If you use a printer we know but have no built-in size for yet, it says so and offers the same two ways forward, instead of behaving as though we had nothing on file.
Save is now in the header of the template editor · August 2, 2026
- The template editor is the longest screen in the app. Its only Save was the very last thing on the page, so changing the label width at the top meant scrolling past the preset card, the template details, the brand font, the sheet grid, every element and the live preview just to commit it.
- Save is now in the page header too. It is the same save as the button at the bottom, which stays where it was.
- Neither button can fire twice any more. Creating a new template involved a brief moment, while the editor was still on screen, where a second click made a second template.
- Still true, and worth saying: the back arrow next to Save discards unsaved changes without asking. That is on the list.
Receive & label now works for stock that arrives without a transfer · August 1, 2026
- Until now, the Receive page could only show stock that arrived on a Shopify inventory transfer. If a box turns up from a supplier you did not raise a purchase order for, or you restock from a cash-and-carry run, there was nothing on the page to label and no way to add anything.
- There is now a "Receive manually" option on that page. Search your products, tick what came in, type how many of each you got, and print. The rest of the flow is unchanged: the same missing-barcode check, the same duplicate-barcode warning, the same scan-fit check before you print, the same templates.
- It only prints. Nothing you type here is written to your Shopify inventory, no transfer is created and no stock level moves - the quantity is simply how many labels you want.
- A batch printed this way is named "Manual receive" in your print history, so you can tell it apart from a transfer receipt when you go back to reprint.
Order labels counted refunded and removed units as if they were still in the box · July 31, 2026
- When you open an order, we fill in the number of copies for each line so you can print without retyping anything. We took that number from the quantity ORDERED, which in Shopify's own words includes units that have since been refunded or removed from the order. So an order that was partly refunded, or edited to drop a line, opened with copy counts for stock that is not there. A line you deleted during an order edit still appeared, at its full original count.
- We now use the count of units still in the order, which is a separate figure Shopify keeps for exactly this. On the example we tested against, an order holding four units used to open ready to print thirteen labels; it now opens at four, and the deleted line is gone.
- Because that means printing fewer labels than the order document shows, the page says so: a notice tells you how many units, on how many lines, were refunded or removed and are therefore not in this batch. Copy counts stay editable, so a line that still has units in it can be printed at whatever count you want.
- One consequence worth stating plainly, because it is a change and not everyone will want it: a line with nothing left in it, and an order where nothing is left at all (a cancelled order, say), no longer appear on this page. They are reported above the list rather than silently absent, but to print labels for goods that have left an order you now go through the product list or the returns page instead.
- This only ever affected orders that were refunded or edited after they were placed. An untouched order printed, and still prints, exactly the quantity ordered.
Order labels quietly left out the lines it could not print · July 31, 2026
- An order can carry a line with no product behind it: an engraving or a gift-wrap charge typed straight onto the order, or a product you have since deleted from your catalogue. We cannot make a barcode label for those, because there is no product to take a barcode from. That part is fine. What was not fine is that we dropped them without a word. An order for ten units could open with three rows on it, and nothing anywhere on the page mentioned the other seven.
- The worse version of the same silence: an order where EVERY line is like that did not appear in the list at all. If you went looking for the order you had just taken, the honest conclusion was that LabelCraft could not see your orders.
- Both are fixed. Select an order that has lines we cannot label and a notice now tells you how many units, on how many lines, are not in the print set, so you can check them in Shopify rather than discovering the shortfall at the printer. Recent orders with nothing on them we can label are counted above the list, instead of being absent without explanation.
- Our returns and incoming-shipments pages have counted these all along; the order page was the odd one out. Nothing about the labels themselves changed: the lines we can label print exactly what they printed before.
The check before you print said “they will scan” about labels we knew could not · July 31, 2026
- A barcode needs two things to scan: bars wide enough to read, and a strip of blank space either side, which is how a scanner finds where the code starts. The check that runs when you pick a template only ever looked at the first one. So on a narrow roll from a 300 dpi printer, a 29 mm Brother tape being the one we ship, it told you an EAN-13 was “scannable here, but tight” and that “they will scan”, while the app's own printing engine, minutes later, said that label cannot hold an EAN-13 at a readable size with the blank space around it. Both sentences were us, about the same label.
- The printing engine was the one that was right, and the check now measures the same thing it does. On those templates you get a clear “will not stay scannable” before the roll goes through the printer instead of a reassurance afterwards.
- And the way out actually works now. The banner used to offer to name a wider template that fixes it, but on exactly these labels it named nothing, because it only looked for codes it had already called too narrow. It now names one, and the template it names is checked to carry your code properly.
- The same blind spot was worse on the everyday codes. A barcode that is not a retail EAN or UPC prints as Code 128, which is what your SKUs use, and there the check could say “comfortable width to stay scannable” about a label the engine would refuse. That is covered too now, on the plain barcode element every custom template starts with.
- Nothing about how your labels are drawn changed. If a template was printing fine, it still is, and it is still described the same way. This is only about being told the truth before you spend the roll.
Making sure we notice if your data is not deleted after you uninstall · July 30, 2026
- Our privacy policy promises that your store's data is purged shortly after you uninstall. The promise is kept by two messages Shopify sends us, and we have alarms that watch for the purge not happening. Those alarms all worked off our own record of your uninstall, which is written by the first of those two messages, so if that message never arrived the alarms had nothing to look at and stayed quiet. The two messages travel the same way, so the outage that loses one tends to lose both: the case the alarms exist for was the case they could not see.
- They now also check Shopify's own record of who has uninstalled, which does not depend on any message reaching us, and they cross out any store that still has a live session or whose record is out of date rather than guess. And a background message arriving late, after an uninstall, can no longer overwrite our record of it, which was a second way an uninstall could quietly go unnoticed.
- Nothing about what we store or how long we keep it changed. This is about being able to tell when the deletion did not happen.
Uploading a brand font stopped the “this title won't fit” check · July 30, 2026
- The check that runs before you print, the one that names the products whose text will not fit on the label, was skipped entirely for any template using an uploaded font. The reasoning was that your font's letters are not the same width as the built-in one, so measuring with the built-in one could be wrong. True, and the wrong conclusion: the check now measures with YOUR font, the same one the label itself is printed with, instead of not measuring at all.
- So if you uploaded a brand font, the pre-print check went quiet exactly when you needed it, and you found out a long product name did not fit only after the roll had gone through the printer. It speaks again now.
- If your font file turns out to be unreadable, the label prints in the standard font instead, with a warning saying so. The check now measures in that same standard font rather than going silent, so the merchant whose font is broken is the one who most needs the warning and now gets it.
- Two things deliberately do not use your uploaded font. If you print to a Zebra, the label is drawn in the printer's own built-in font, which never loads an upload, so the check measures in the standard font too. And when the check suggests switching to one of our built-in templates to fix a long name, it now says out loud that built-in templates print in the standard font, so switching would drop your brand font.
“Returns to label” asked for one permission when it needed two · July 30, 2026
- In Shopify a return belongs to an order, so listing your returns needs permission to read returns AND permission to read orders. The page only ever asked for the returns one. If you opened “Returns to label” before “Order labels”, you granted exactly what was asked, the page told you your access was fine, and then it sat on “Couldn’t load your recent returns” forever. Worse, its only button asked again for the permission you had just given, so there was no way out from that page.
- It now asks for both at once, and only shows you the page when both are granted.
- Revoking from this page still removes returns access only: the orders permission is shared with “Order labels”, and turning it off here would have broken a page you never touched. So “Order labels” now says the opposite too, that revoking there also turns off “Returns to label”. The permission screen, the error message and the privacy policy all name both permissions now instead of only one.
Your labels-used count now matches what actually came out of the printer · July 30, 2026
- When you print straight to a connected printer, the labels leave the printer before the app has finished writing the job into your history. If that write failed, the app could no longer see the print, decide those labels had never been produced, and quietly hand the allowance back. It sounds generous and it is not: your used count and your job history disagreed, and neither of them was right. Labels that physically printed are now always counted, whether or not their history entry made it.
- For the same reason, a print that fails at the very last moment, after the paper has already come out, no longer refunds the allowance for labels you are holding in your hand.
- The bigger version of the same problem: while a print was still running, opening LabelCraft in another tab could make the app conclude that the print had never happened and quietly put the labels back. It now recognises a print in progress and leaves its count alone until it finishes.
- Reprinting a very old job could put your used count into the negative, which then let the month's allowance run well past its limit without anything saying so. Reprints now count exactly the labels they produce.
An English word had got into three languages' import warnings · July 29, 2026
- When the import reads a formatted quantity cell as a whole number, or refuses to guess at one, it names the row it is talking about: “line 12, for barcode 5012345678900”. In French, German and Spanish that sentence was correct except for the word “barcode”, which stayed in English. It is now written in the language you are reading, the same way the rest of the import already does it.
Importing a supplier file now tells you it is too big before you print · July 29, 2026
- A print job can hold up to 2,000 labels. Three screens used to let you assemble a bigger batch and only tell you when you clicked Generate: the supplier-file import, Print labels itself, and printing a whole collection. All three now grey out Generate and explain the limit while you are still building the batch, which is what receiving, orders, returns and location labels already did.
- When your file has a location or bin column, the import prints one batch per bin, and each of those is its own job. So each batch is now judged on its own size: an oversized bin is flagged and blocked on its own, and the batches beside it stay printable instead of the whole import being stuck.
A clipped template now tells you on the page you land on · July 29, 2026
- If one of your templates has an element outside the label, every label it prints comes out cut off. The app already knew - but it only said so in the template list, which you have no reason to open when you are printing, or in a warning after a job had already printed. Your dashboard now shows it straight away, names the template, and gives you the same one-click “Move back inside” that slides the element back in, keeping its size wherever it still fits. Labels you have already printed are unaffected, and past jobs reprint exactly as they did.
- When that repair finds nothing to move, the template list now says so plainly instead of reporting “0 elements moved back inside” as a success. If your labels still come out clipped after that, the cause is where the label prints rather than how it is designed - check your printer calibration offset in Settings.
Three warnings that told you about a problem but not the way out · July 28, 2026
- When a warning keeps coming back, the dashboard offers you the guide that walks through fixing it. Three warnings were missing that link while the warning right next to them had it: the barcode number being too small to read when you print to a Zebra, text falling under the readable size because of a calibration offset, and a price stored in a metafield whose decimals do not match its currency. All three now open the same guide their twin already did.
A better guess at your language when Shopify does not tell us · July 28, 2026
- When Shopify does not tell the app which language to use, it falls back on the list of languages your browser asks for. It was reading only the first entry in that list, so a browser whose top language LabelCraft does not speak dropped straight to English, even when it ranked German, French or Spanish above English further down. The whole list is now read in the order you ranked it.
The privacy policy now says everything it should have said · July 28, 2026
- Our privacy policy did not mention two things we store for you: the PrintNode API key you paste when you connect a printer, and the template and copies rule each of your per-location print stations remembers. Both are named now, along with your declared printer brand, model and calibration offsets. The key is used server-side only, to talk to PrintNode, and is never sent back to your browser.
- The uninstall promise said we purge your data “within 48 hours”. The clock actually starts when Shopify tells us you uninstalled, and that notice is Shopify's to send, so the flat number was a promise we do not fully control. It now says what really happens.
- “We delete everything” was not quite true either, and the policy now names the three records that outlive the purge and why each exists: two one-line markers (your domain plus one date) that stop the same store taking an endless run of free trials and stop a returning store being announced as new, and one pseudonymous record of how an install went, kept to understand why stores leave. None of them holds product, order, customer or staff data.
- If you print through PrintNode, the finished label leaves our EU servers to reach your printer. That was true before and the policy did not say so; the hosting section now does.
A reprint that failed no longer costs you labels · July 28, 2026
- If you reprinted a past batch and the print failed - a render error, or a printer that would not take the job - the labels came off your monthly count, but a second internal counter kept them. The app uses that counter to work out whether your monthly count has drifted above what you actually printed and to give the difference back, so a single failed reprint stopped it correcting itself for the rest of the month. On the Free plan that meant reaching the 200-label limit early, paying for labels you never got. Both counters are now put back together, and a month with a failed reprint in it corrects itself again.
Dismissed means dismissed · July 27, 2026
- When the same warning keeps coming back, the dashboard offers you a way out of it. Dismissing that suggestion used to stop working after a few more prints: the app forgot which problem you had waved away and asked again about the very same one. It now remembers what you dismissed until the problem is actually gone - and if it comes back later, so does the suggestion.
- The “these new products are ready to label” nudge and the “this product has more than 100 variants, review it in Barcode check” warning are two different messages about two different things. They used to share one dismiss button, so clearing the everyday one also cleared the rare, more serious one before you had read it. Each one is now dismissed on its own.
- Order numbers no longer linger in your print history after a customer data-deletion request. When Shopify asks us to redact a customer's orders, the order numbers stored against your past print jobs are scrubbed too; every other batch in your history is untouched.
A template can no longer print off the edge of your label · July 27, 2026
- If part of your design sat outside the label - an element nudged past the edge, or a logo wider than the label itself - every label you printed was quietly clipped. The app warned you at print time, once per job, and it was easy to scroll past. Now the template editor simply refuses to save a design that would print off the label, and tells you which element is out and by how many millimetres. Templates you already have are untouched: if one of them is affected, the template list shows it with a “Move back inside” button that slides the element back in one click, keeping its exact size wherever it still fits. Past print jobs reprint exactly as they always did.
Leave Pro on your own, and keep what you paid for · July 26, 2026
- Going back to Free no longer means writing to support. Billing has a “Switch to Free” option that takes effect at the end of the period you have already paid for - so you keep Pro until the day it would have renewed, then move to Free automatically. Change your mind before then and one click cancels the switch.
- Upgrading mid-print used to cost you your work: leaving for the Shopify approval screen threw away whatever you had selected. Your selection is now kept and offered back the moment you return.
Check that a reprint scans, and read the digits under the bars · July 26, 2026
- The post-print “scan one to check” card now also appears after a one-click reprint, from the dashboard and from Job History - the two places you could reprint without ever confirming the result scanned.
- The pre-flight and the scan-readiness check now look at the human-readable digits under the barcode too, not just the bars. A barcode whose bars scan perfectly but whose printed number is too small to read is caught before you print, instead of at the shelf.
Search inside long product lists, and see which order a return came from · July 25, 2026
- Orders, returns and receiving all have a search box in the product picker. On a long order you can type a name or SKU instead of scrolling.
- A return now shows the order it came from, so you can tell two similar returns apart before printing.
- The annual plan is shown wherever you can upgrade, not only on the billing page - two months free is hard to choose when you cannot see it.
Know a batch will hit your monthly limit before it stops halfway · July 23, 2026
- Every bulk-print screen now shows what the batch you are about to print will do to your monthly Free allowance, before you print it. A run that would stop halfway is flagged up front, rather than after the first 40 labels.
- The presets screen tells a Free shop that saved presets are a Pro feature up front, instead of letting you build one and discover the paywall at print time.
Two products sharing one barcode, caught before the labels are on the shelf · July 19, 2026
- If two variants in your catalogue carry the same barcode, both labels ring up as the same product at the till. The app now checks your whole catalogue and warns you before the print, on importing a list, on orders and on returns.
- Reprinting the same line of an order twice - the classic double-label - is flagged as well, scoped to that order so it never cries wolf over two different orders that happen to share a SKU.
A product search that stops finding nothing · July 17, 2026
- Searching for a product whose name contains characters like “1:18” used to silently return no results: the text was being read as search syntax rather than as what you typed. Now it searches for what you typed.
- Every screen that prints in bulk shows how much of your monthly allowance is left, so the number is in front of you when you decide how much to print.
- A branded page now replaces the raw error screen when a link goes nowhere.
Switch to annual billing without cancelling first, and design guidance above the warnings · July 16, 2026
- An existing Pro subscriber can move from monthly to annual (or back) directly, without cancelling and re-subscribing.
- The pre-flight and the editor now comment on the design as a whole, not only element by element. A label where everything is individually legal but collectively too tight is told so, once, instead of producing four separate warnings you have to piece together yourself.
Sharper QR codes, and a warning when one is too small for a phone · July 15, 2026
- 2D symbols (QR, DataMatrix) are now snapped to whole printer dots when drawn. On a thermal printer that is the difference between crisp modules and a slightly blurred code that a phone camera struggles with.
- A QR code printed smaller than a phone camera comfortably reads is flagged before you print, with the size it would need.
- A new 50 × 30 mm apparel preset (EAN + storefront QR + material) that clears every scannability floor by construction - the size where hand-arranging elements walks straight into four space warnings at once.
Newest shipments first, and access you can take back · July 14, 2026
- Receiving lists your most recent shipments first. Finding the delivery that just arrived no longer means paging to the end.
- Order and return access is now optional and asked for in context, at the moment you first print from an order - not upfront at install. You can revoke it from inside the app afterwards, and the rest of the app keeps working without it.
Metafields print again · July 13, 2026
- For three weeks, any label with a metafield element printed that field blank - no error, no warning, just an empty space where your custom value should have been. The query the app used to read metafields was being rejected by Shopify in a way that returned nothing rather than failing. It is fixed, and the rendering engine is now checked against Shopify's real API on every release so a query that Shopify would reject can no longer ship.
A heads-up when a spreadsheet has mangled your barcode column · June 26, 2026
- Exported your products or a purchase order (from Stocky or any tool), opened it in Excel, and saved? Excel quietly turns long barcode numbers into scientific notation like “7.51E+11” - which matches no product, so a “Print from a list” import comes back empty with no explanation. Now we spot that before the match runs and tell you to re-import the file as text (or format the column as Text first), so your first import works instead of mysteriously finding nothing.
Smarter supplier-list imports for receiving · June 25, 2026
- Printing labels from a supplier CSV or packing slip now copes with how real exports actually look. Quantities written as “12.00”, “1,200” or the European “12,0” are read as whole counts instead of being dropped, and we always show what we read - a genuinely fractional count like “12.5” is still flagged, never guessed.
- For grouped purchase orders where one SKU heads several size or lot rows and the lower rows leave the SKU blank, a new “Fill a blank SKU from the row above” option carries the code down and adds up the quantities.
- If the same product lands on two list rows under two different codes (its SKU and its barcode), we now sum them into one label run and tell you, instead of silently printing it twice. Available in English, French, German and Spanish.
Download your pre-receiving barcode check as a spreadsheet · June 25, 2026
- Auditing an incoming supplier list on “Audit a list”? You can now download the whole QC result as a CSV - one row per pasted code with the matched product, its barcode status, an in-list-duplicate flag and the full verdict. Every row is included, clean ones too, so it's a complete record you can work through in a spreadsheet instead of on screen. Available in English, French, German and Spanish.
- Brand-new store with no products yet? The dashboard now tells you to add a product in Shopify first instead of showing a misleading green “barcodes ready” step - and after you try a sample print, a clear next step points you to printing your real products.
A heads-up when we complete a barcode's check digit · June 25, 2026
- If you set a label's barcode to a retail format (EAN-13, UPC-A, EAN-8 or ITF-14) but the value is one digit short, we compute and add the final check digit for you - but now we also tell you. A new notice names both what you entered and what will actually print, so if your code was already complete you can catch a mismatch before it scans as a different product. Available in English, French, German and Spanish.
Label several shipments of one transfer at once · June 25, 2026
- When a transfer arrives in more than one shipment, you no longer have to label them one at a time. On Receive & label you can now tick several received shipments and label them together - a product that came across multiple boxes is combined into a single row with the total quantity received, so you print one label run for the whole delivery. The put-away manifest and the print job name both reflect the combined shipments. Available in English, French, German and Spanish.
See the feedback you've shared with us · June 25, 2026
- When you tell us something could be better, that note now has a home: the new “Feedback” page lists everything you've shared with us, newest first, and your dashboard shows a quick thank-you when there's something new. You can also download it all as a spreadsheet. We read every note - this just closes the loop so you can see we heard you. Available in English, French, German and Spanish.
Print the date on your labels · June 25, 2026
- Need a printed-on or packed-on date for stock rotation, received goods, or freshness? Add the new “Date” element in the template editor and each label is stamped with the day you print it - shown with a written month so there’s no day/month confusion (“Jun 25, 2026”), in your admin language. It prints to both PDF and Zebra/ZPL, and like every text element it’s shrunk to fit or flagged rather than silently cut off. Available in English, French, German and Spanish.
Print net weight on your labels · June 25, 2026
- Selling by weight - deli, grocery, supplements, bulk goods? You can now print a product’s net weight in plain text on a label. Add the new “Weight” element in the template editor and each label shows the variant’s weight the way a person reads it - “250 g”, “2.5 kg”, “1.5 lb”, “8 oz” - taken automatically from the weight you already set in Shopify. (Previously the weight could only be hidden inside a GS1-128 barcode.) Products without a weight simply leave the element blank, and it prints to both PDF and Zebra/ZPL. Available in English, French, German and Spanish.
Number your labels in sequence · June 25, 2026
- Need running numbers on your labels - asset tags, serial numbers, raffle tickets, batch IDs? Add the new “Serial number” element in the template editor and each label is numbered in order: set a prefix (e.g. ASSET-), a starting number, how much to add per label, and how many digits to zero-pad to (ASSET-0001, ASSET-0002, …). The numbering counts up across the whole print job and restarts on the next one, and it prints to both PDF and Zebra/ZPL. Like every text element, a number that won’t fit its box is shrunk to fit or flagged - never silently cut off. Available in English, French, German and Spanish.
Send labels straight to your printer (PrintNode) · June 24, 2026
- You can now skip the download-and-print-dialog dance. Connect your free PrintNode account in Settings, pick your printer, and a new “Send to printer” button on the print screen pushes labels straight to a networked or thermal printer - including raw ZPL to a Zebra for the crispest barcodes. Your existing PDF and ZPL downloads work exactly as before; direct printing only appears once you’ve connected a key, and if a job can’t reach the printer you’re told why instead of it failing silently. Available in English, French, German and Spanish.
Line up label elements with one click · June 24, 2026
- Designing a custom template just got faster. Tick two or more elements in the template editor and a new “Align & distribute” toolbar lets you snap their left/right/top/bottom edges together, centre them horizontally or vertically, or spread three or more out with even spacing - no more typing matching X/Y millimetre values by hand. Only the position changes; element sizes stay exact, and your existing templates print exactly as before until you choose to move something. Available in English, French, German and Spanish.
Download your import exceptions as a spreadsheet · June 24, 2026
- When you match a supplier list in “Print from a list,” the Exceptions panel now has a “Download exceptions (CSV)” button. Instead of reading a wall of comma-separated codes, you get a clean spreadsheet - one row per problem - listing what couldn’t be matched (codes not found, codes that hit several variants), lines that couldn’t be read, and matched products still missing a barcode, each with a note on what to do. Open it in Excel or Sheets, fix everything there, and re-match. Available in English, French, German and Spanish.
Print from a list remembers your supplier's columns · June 24, 2026
- If you print from the same supplier's CSV every week, Print from a list now remembers how you mapped its columns. The next time you upload or paste a file with the same headers, LabelCraft pre-fills which column is the SKU/barcode and which is the quantity (and your “try the other code” setting) - so you can jump straight to matching. It always shows you what it filled in, with a one-click “Use detected columns” to start fresh, so it can never quietly map a different file the wrong way. Available in English, French, German and Spanish.
Three more barcode types: Data Matrix, ITF-14 and Code 39 · June 24, 2026
- Your label templates can now use three more barcode symbologies, chosen per barcode element in the template editor: Data Matrix (a compact 2D code for small items like jewellery, electronics and cosmetics), ITF-14 (the 14-digit GTIN code for cartons and cases - it prints with the standard bearer bar), and Code 39 (the classic alphanumeric code many asset, library and government scanners expect). Each is checked the same way as every other barcode - exact size, whole-dot modules, and a clear warning if a box is too small to scan - so nothing prints unscannably. ITF-14 even computes and verifies its check digit for you. Available in English, French, German and Spanish. (Note: these three print from the PDF output; Zebra/ZPL output will tell you to use the PDF for them for now.)
A setup checklist on your dashboard · June 24, 2026
- After your first print, the dashboard now shows a short “Finish setting up” checklist so you can see what’s done and what’s left - check your barcodes, print your first labels, and save a preset for one-click reprints. It ticks off each step as you go and disappears once you’re all set, so it’s a gentle nudge, never clutter. Available in English, French, German and Spanish.
Make labels match your printer - exactly · June 24, 2026
- If your label printer prints a few millimetres larger or smaller than the size you designed, you can now fix it for good. The new printer calibration wizard (Settings → Calibrate my printer) walks you through it: print a test pattern, measure one edge with a ruler, enter the actual size, and LabelCraft corrects every future label so the printed size matches your design - to the millimetre. It’s a one-time setup, applies to your roll/continuous label printer (Brother, Dymo, Zebra), and you can clear it any time. Available in English, French, German and Spanish.
- Added three datasheet-accurate Brother label sizes: DK-1202 (62 × 100 mm shipping), DK-1208 (38 × 90 mm large address) and DK-2210 (29 mm continuous), all at the QL series’ native 300 dpi.
Tell us how it’s going · June 24, 2026
- After a few clean prints, LabelCraft now asks a quick “how’s it going?” - a simple thumbs up or down. Thumbs up takes you to leave an App Store review if you’d like; thumbs down opens a short note that comes straight to our team, so when something isn’t working you can tell us privately instead of being sent to a public review. We only ask once, never right after a print that had a warning, and you can dismiss it any time. Available in English, French, German and Spanish.
Print warnings are now grouped by problem · June 24, 2026
- When a large print run hits the same issue on many labels - say one element nudged off the label edge across a 2,000-label job - the warning banner used to list it once per label, burying the detail you actually need. It now groups warnings by problem: one line per distinct issue, how many labels it affects, and which products are involved (with a sample like "Affected products: Red Mug, Blue Mug (+12 more)"). Nothing is hidden - the banner still reports the true total and never drops a problem silently; it's just finally readable. Available in English, French, German and Spanish.
More print warnings now speak your language · June 24, 2026
- We've extended last update's translated print warnings to cover the Zebra (ZPL) download path and barcode size checks. If you print to a Zebra thermal printer, the heads-up messages - a barcode or QR code too small to scan, text that won't fit the label, a logo or coloured background that Zebra's monochrome output can't carry, a value too long for the printer's field limit, an element pushed off the label by your calibration nudge - now appear in French, German and Spanish too, not just English. The same goes for the "this barcode is being squeezed too small to scan reliably" warning on the PDF path. As always, the advice on how to fix each one is preserved exactly, English is unchanged, and nothing about how your labels actually print has changed.
Print warnings now speak your language · June 24, 2026
- Our never-silent promise - we warn you before a label prints something wrong, instead of failing quietly - now warns you in your own language. If a custom template has a problem (text that won't fit, an element pushed off the label edge, a barcode another element covers, a missing glyph in your brand font, an unusable logo or font, a price/SKU with no barcode), the warning that appears in the print and preview screens is now written in French, German and Spanish for merchants using the app in those languages, not just English. The advice on how to fix it is preserved exactly. English is unchanged, and nothing about how your labels print has changed - only the wording of the heads-up you see.
Metafield values now print in a readable format · June 24, 2026
- Building on last update's metafield fix: metafields that aren't plain text now print the way a person reads them, not the way Shopify stores them. A weight metafield prints "2.5 kg" instead of {"value":2.5,"unit":"KILOGRAMS"}; a dimension or volume shows its unit ("10 cm", "500 ml"); a price shows "10.50 USD"; a rating shows "3.5/5"; a yes/no field shows "Yes" or "No"; and a list field (like a set of tags or colours) prints comma-separated ("Red, Blue, Green"). And in keeping with our never-print-blind promise: if a metafield points to another object (a linked product, a file, a metaobject) or holds raw JSON - which can't be shown as plain text on a label - we now tell you before you print and leave that label blank, instead of stamping an internal id or a blob of code onto it. Text, number, date, measurement, money, rating and boolean metafields all just work.
Metafield values now actually print on your labels · June 23, 2026
- If you add a metafield element to a custom template - to put a product's ingredients, country of origin, expiry date, care instructions or any other custom field on the label - it now prints the real value from each product (or variant). Previously the value showed in the editor preview but came out blank on the actual print; that's fixed. And in keeping with our never-print-blind promise, if a product you're printing has no value for that metafield, we now tell you before you print (naming the field and how many products are missing it) instead of silently printing a gap - so you can fill it in or remove the element. We read the variant's value first, then fall back to the product. Type the field as "namespace.key" (for example "custom.ingredients").
See what's new without leaving your dashboard · June 23, 2026
- Your dashboard now shows a quiet 'What's new' note when we've shipped an update since you last looked, with a link to the full release notes - so you can see what's improved at a glance and dismiss it in one click. It only appears once you've started printing (new merchants keep their getting-started guide), and it goes away as soon as you've seen the latest release. No pop-ups, no email - just a heads-up that the app keeps getting better. Available in English, French, German, and Spanish.
We now warn you when calibration pushes a label off the page · June 23, 2026
- If your per-printer calibration offset (or, on a sheet, where a label sits in the grid) shifts a label so part of it falls outside the printable page, LabelCraft now flags it before you print - naming the element that would be cut off. This was the sneakiest kind of clipping: the editor preview always shows your label without the calibration nudge, so an offset that pushed a barcode or price off the page was invisible until the physical print came out short. Now it's caught up front in the print flow. It applies to both PDF and Zebra/ZPL output, it only fires when something is genuinely pushed off the page (a nudge with room to spare is fine), and - like every LabelCraft warning - it's a heads-up, never a block: your label still generates, exactly to size. The fix is usually to reduce the calibration offset or move the element a little further from the edge.
A redesigned dashboard that helps you get going · June 23, 2026
- Your home screen now does more than list past print jobs. New merchants get a clear three-step start - check your barcodes, pick products and quantities, download and print - and if any of your products are missing a barcode, the dashboard tells you up front and links you straight to one-click generation, so you fix the number-one print blocker before it bites. Below that, an 'Everything you can do' grid surfaces features that were easy to miss (print from a supplier list, print a whole collection, location and bin labels, the barcode health check, custom templates, and saved presets), and free-plan shops see a calm summary of what Pro adds - unlimited labels and the full toolkit - with no pop-ups. Nothing about how your labels print changed; this is purely making the app easier to find your way around. Available in English, French, German, and Spanish.
We now warn you when an element runs off the label edge · June 23, 2026
- If a template element (a barcode, price, logo, anything) is positioned or sized so it extends past the edge of the label, LabelCraft now flags it before you print - in both the live editor preview and the print flow - rather than letting the printer silently cut it off. A barcode that runs off the edge won't scan; a price that's half-clipped is missing information. The warning names the element and its position so you can pull it back inside the label. Zebra/ZPL output already did this; now the PDF output - what most merchants print - does too. As always it's a heads-up, never a block: your label still generates, exactly to size, with nothing else changed.
Choose what your GS1-128 barcode embeds · June 22, 2026
- You can now pick exactly which fields a GS1-128 barcode carries. On a barcode element set to 'GS1-128 (GTIN + price + weight)', two new tick-boxes - 'Embed price' and 'Embed net weight' - let you include or leave out the price and the weight independently. Previously the weight was always added whenever a variant had one, so a fixed-price item ended up with its shipping weight in the code even if you only wanted the GTIN and price. Now you can print a GTIN-only label, a GTIN + price label, a GTIN + weight label, or all three - whatever your scales, POS or marketplace expect. Both boxes stay ticked by default, so existing templates print exactly as before; the same never-silent guarantee applies (a field you choose to include but that's invalid is still flagged before printing, and a field you leave out is simply absent).
New Avery EU sheet presets, and the Barcode check page is now fully localised · June 22, 2026
- Two new Avery EU A4 sheet presets: L7159 (63.5 × 33.9 mm, 24-up) and L7161 (63.5 × 46.6 mm, 18-up). They join the existing L7160 (21-up) and L7163 (14-up) in the built-in list - EU merchants working with standard Avery stock can now get started without entering custom dimensions.
- The Barcode check page and its CSV download are now fully in French, German, and Spanish. Every problem description, fix suggestion, and spreadsheet column header adapts to the admin language you already use - no more switching to English to read what's wrong with a barcode.
GS1-128 can now embed the price with its currency · June 21, 2026
- Your GS1-128 barcodes can now carry the price together with the shop's currency in a single scannable code - useful for cross-border selling and marketplaces where the amount alone is ambiguous. On a barcode element set to 'GS1-128 (GTIN + price + weight)', tick 'Include currency in price (GS1 393n)'. LabelCraft then encodes the price with the standard ISO currency code (for example euros as 978) using GS1 Application Identifier 393n, instead of the price-only 392n. The currency comes from your shop automatically, so there's nothing to type. It stays never-silent: if your shop's currency isn't one we can encode yet, we tell you before printing instead of guessing - so a price barcode never scans to the wrong currency. Leave the box unticked and nothing changes; existing templates print exactly as before.
Give your text room to breathe with per-element padding · June 21, 2026
- Every text element in the template designer now has a Padding (mm) setting that insets the text inside its box on all four sides. It's perfect with a coloured background fill: the chip keeps its size while the text gets breathing room instead of touching the edges. Padding is purely internal - your label's exact dimensions never change, and a value of 0 (the default) prints exactly as before, so every existing template and built-in preset is untouched. As always, if padding leaves too little room for the text, we warn you before you print rather than silently clipping it.
We warn you when something is printed on top of a barcode · June 21, 2026
- If a custom template places a coloured background, a logo, or another barcode on top of one of your barcodes - covering the bars so it might not scan - we now flag it before you print, right in the live preview and the print flow, instead of silently producing a label that fails at the till. Move the elements apart and the warning clears. This only ever adds a heads-up; it never changes how your labels print, and well-designed templates (including all of our built-in presets) never trigger it.
New (Pro): add a coloured background behind any text · June 21, 2026
- Custom templates can now put a solid colour behind any text element - a yellow price chip, a red 'SALE' badge, a colour-coded category swatch - so the right labels jump out on the shelf. Open a text element in the template editor, pick a Background colour with the swatch, and see it instantly in the live preview; 'Remove background' takes it away again. Backgrounds are part of Pro and apply to text only. Two deliberate rules keep your prints reliable: barcodes never get a background fill, so they always print on clean white and keep scanning; and the fill only appears where there's text - an empty field (say a product with no compare-at price) prints nothing, never a mystery coloured box. On a thermal Zebra (ZPL) the text still prints in full, but the coloured background isn't applied - Zebra printers are monochrome, so use PDF output for the chip; we tell you instead of leaving it off silently. Nothing changes for your existing templates - they print exactly as before.
New (Pro): use your own brand font on labels · June 20, 2026
- Custom templates can now use your own typeface. Upload a TTF or OTF font (up to 256 KB) in the template editor's new 'Brand font' card, and every bit of text on that template prints in your font instead of the default - your labels finally look like your brand. It shows instantly in the live preview, and you can remove it to go back to the default anytime. The brand font is part of Pro. A few practical rules keep prints reliable: barcodes are never affected (they keep their crisp machine font), SKU and other 'monospaced' fields keep the default fixed-width font so columns of digits stay aligned, and bold elements use your font as-is (we don't fake a bold weight). As always it's never-silent - if a file isn't a usable TTF/OTF (for example a WOFF web font or a font collection), we tell you and keep the default font rather than printing a surprise; and if your brand font is missing a character your label actually uses (an accent like é, a € sign, or the … that appears when long text is shortened), we flag exactly which characters before you print, instead of letting them come out as blank boxes. Nothing changes for your existing templates.
New (Pro): print text and lines in your brand colour · June 20, 2026
- Custom templates can now give any text element - or a divider line - its own colour, so your labels match your brand instead of being black-only. Open a text element in the template editor, pick a colour with the swatch, and see it instantly in the live preview. Black stays the default, and you can reset to black anytime. Brand colours are part of Pro. Two deliberate rules keep your prints reliable: barcodes always print pure black so they keep scanning (a tinted or low-contrast barcode silently fails at the till), and on a thermal Zebra (ZPL) everything prints in the printer's single colour. Nothing changes for your existing templates - they print exactly as before.
New (Pro): add your logo or an image to any label · June 20, 2026
- Custom templates can now include a 'Logo / image' element - upload a PNG or JPEG (up to 128 KB) and it prints right on your labels, scaled to fit its box while keeping its proportions (never stretched or cropped). Perfect for putting your brand mark, a certification badge, or a 'made in' icon on every product, shelf, or location label. Add a 'Logo / image' element in the template editor, upload your image, and see it instantly in the live preview. Logos are part of Pro. As always it's never-silent: if an image is missing, the wrong file type, or too large, we tell you before you print rather than leaving a blank space. (PDF output; logos aren't supported on native Zebra ZPL - use PDF to print them.)
New: GS1-128 barcodes with price and weight built in (for grocery & deli) · June 20, 2026
- Custom templates can now use a GS1-128 barcode that encodes the product's GTIN together with its price and net weight in a single scannable code - the format weigh-counter and deli scales expect. Pick 'GS1-128 (GTIN + price + weight)' as the barcode format on a barcode element; LabelCraft builds the GS1 Application Identifier string from each variant's barcode (GTIN), price, and weight automatically. Price and weight are included whenever the variant has them. As always it's never-silent: if a variant's barcode isn't a valid GTIN, or a weight has no unit, we warn you instead of printing a wrong code - never a barcode that scans to the wrong price or weight. (PDF output; ZPL for GS1-128 is coming next.)
New: print a whole collection (or vendor, tag, or product type) at once · June 20, 2026
- A new 'Print a collection' page labels an entire group of products in one go. Pick one of your Shopify collections - or print everything from a vendor, with a tag, or of a product type - and LabelCraft pulls in all the variants automatically, so you don't have to search and add products one at a time (the main print flow only shows 50 search results). Set quantities in bulk (a flat number, zero, or match your stock levels), choose a template, and print as PDF or native Zebra ZPL. It uses the same exact-size, never-silent engine, the same monthly allowance, and the same one-click reprint history as every other print. If a group is very large we show the first 1000 variants and tell you so. Available in your admin language (English, French, German, Spanish).
'Print from a list' can now download native ZPL for Zebra printers · June 20, 2026
- The 'Print from a list' (supplier CSV / SKU list) flow now has the same 'Download ZPL (Zebra)' button as the main 'Print labels' flow. After matching your SKU or barcode list and reviewing quantities, click 'Download ZPL (Zebra)' to get a native ZPL II file for the whole job - exactly the right quantity of labels, whole-dot barcodes drawn by the printer (not rasterised through the browser), same quota and readability checks as PDF. Roll and thermal templates only; sheet presets are flagged.
Print whole jobs straight to a Zebra (native ZPL) · June 20, 2026
- The 'Print labels' flow now has a 'Download ZPL (Zebra)' button next to 'Generate PDF'. It produces native Zebra (ZPL II) for your whole selection - quantities and all - so the printer draws crisp, whole-dot barcodes itself instead of rasterising a PDF through the browser. Send the .zpl file straight to your Zebra. It uses the exact same quota, label sizing and never-silent barcode-readability checks as the PDF path; ZPL targets roll/thermal printers, so a sheet template prints one label per command and tells you the page grid was ignored. (Until now ZPL was only available as a single sample label in the template editor.)
New: print labels the moment stock arrives ('Receive & label') · June 19, 2026
- A new 'Receive & label' page turns a received inventory transfer into a print job. Pick a shipment that just arrived in Shopify and LabelCraft shows exactly what was received - each line resolved to its product, SKU, barcode and the quantity accepted - with the number of copies pre-filled to match. Adjust any row, generate barcodes for items that don't have one yet (we only fill empty ones, never overwrite), choose a template and print. It reads Shopify's native inventory transfers (no Stocky required - Stocky and its APIs are shutting down on 31 August 2026), prints through the same exact-size, never-silent-overflow engine as the rest of the app, and counts toward your monthly label allowance. Available in your admin language (English, French, German, Spanish).
New: location, bin and shelf labels · June 19, 2026
- A new 'Location labels' page prints scannable labels for your warehouse bins, shelves and stock locations - each with the location name in big text and a Code 128 barcode of the location code printed below it. Type or paste your bins (one per line: a code on its own, or 'code, name, copies'), or seed the list from your real Shopify locations in one click, then print. Two ready-made templates are included (a 57 × 32 mm roll and a 21-per-sheet A4 layout), and you can use any of your own templates too. Location labels print through the same exact-size, never-silent-overflow engine as your product labels and count toward your monthly label allowance. Available in your admin language (English, French, German, Spanish).
Print guidance at the download step - get the size right the first time · June 19, 2026
- When you generate a PDF in 'Print labels' or 'Print from a list', a short 'Before you print' note now appears next to the button. It reminds you of the one setting that matters most: print at actual size (100%), never 'Fit to page' - because the PDF already carries the exact label size, and any scaling shifts every label and can shrink barcodes below the size they need to scan. The advice adapts to your device: on Android (where the PDF opens in a separate viewer that often defaults to 'Fit') it's flagged as a warning; on iPhone/iPad it points you to AirPrint; on desktop it names the 'Actual size' setting in the print dialog. It also reminds you that receipt printers can't print these labels - use a label printer (Dymo, Zebra, Brother) or an AirPrint/network thermal printer. Shown in your admin language (English, French, German, Spanish).
- Added the Dymo 30336 multipurpose label (54 × 25.4 mm) as a built-in preset.
The whole admin app - including 'Print from a list' and all error messages - is now in French, German, and Spanish · June 19, 2026
- The 'Print from a list' page - column-mapping card, match results, exceptions panel, and barcode-generation modal - now displays in French (Français), German (Deutsch), and Spanish (Español). In the same update, every server-side error message in the print, preview, generate, and import flows also localizes: if something goes wrong mid-job (quota hit, unknown template, no barcodes selected, Shopify rejected the write), the message shown matches your admin language. The embedded admin-app localization is now complete: every page and every error in LabelCraft speaks your Shopify admin language.
Template editor and Barcode check page now in French, German, and Spanish · June 19, 2026
- The custom template editor - element list, element properties, calibration, sheet config, and the live preview captions - now displays in French (Français), German (Deutsch), and Spanish (Español). The Barcode check page - audit badges, problem table, fix-check-digit and generate-missing modals, the duplicate-barcodes keeper table, and the GS1-prefix card - is localized in the same update. The language is picked automatically from your Shopify admin language setting; no configuration required.
Print flow now available in French, German, and Spanish · June 19, 2026
- The three-step print flow - search, quantities, and print - now displays in French (Français), German (Deutsch), and Spanish (Español), including the quota banners, preset replay notice, 'What you'll get' preview captions, the generate-missing-barcodes modal, and the save-as-preset modal.
New built-in presets: Avery A4 sheets (EU) and Zebra 4×6 shipping labels · June 18, 2026
- Added two Avery L-series sheet presets for A4 paper used across Europe and the UK: Avery L7160 (63.5 × 38.1 mm, 21 labels/sheet) and Avery L7163 (99.1 × 38.1 mm, 14 labels/sheet). Margins and gutters are taken directly from Avery's official EU datasheets, so the first label lands in the right cell without manual calibration.
- Added a Zebra 4 × 6 in shipping label preset (101.6 × 152.4 mm) - the standard 4×6 thermal format used by most carrier integrations (USPS, UPS, FedEx, DHL). Useful for merchant-printed barcode labels on inbound stock or for custom product labels that ship with the same printer.
Print crisp, driverless barcodes on Zebra printers (native ZPL) · June 18, 2026
- Template editors can now download their label as native Zebra ZPL - the language Zebra thermal printers speak directly - instead of only a PDF. On a Zebra, a PDF prints through your browser, which turns the barcode into a screen-quality image; ZPL hands the barcode to the printer to draw itself, so the bars come out perfectly crisp and scan first time, with no printer driver. Open a template, click "Download ZPL (Zebra)", and send the file straight to your Zebra to test. The same guarantees apply as everywhere else in LabelCraft: exact dimensions in printer dots, GS1 check digits computed correctly, and any barcode that would print too small to scan, any text that won't fit, or anything that would run off the label edge is flagged up front - never printed wrong in silence.
Admin app now available in French, German, and Spanish · June 18, 2026
- The LabelCraft admin - navigation, dashboard, print job history, settings, billing, presets, and templates list - now displays in French (Français), German (Deutsch), and Spanish (Español) for merchants whose Shopify admin is set to one of those languages. No configuration required: LabelCraft reads the language from your Shopify admin and switches automatically. English is unchanged.
Print from a list now reads full supplier CSVs and matches by barcode · June 18, 2026
- The "Print from a list" receiving flow now accepts a real supplier purchase-order or packing-slip CSV - many columns, a header row, and quoted fields like "Black, Large" - not just a bare SKU list. After you paste or upload the file, choose which column holds the SKU or barcode and which holds the received quantity; LabelCraft pre-selects them from the header automatically. You can now match by barcode/UPC as well as by SKU, so a supplier list that identifies items by UPC works without re-keying everything to your internal SKUs. Matching stays exact - a code that hits more than one variant is flagged, never guessed - and every line that can't be read is reported, never silently dropped. Unrecognised codes, ambiguous codes, and matched products missing a barcode are gathered into a single Exceptions panel before you print.
Billing plan syncs automatically when a subscription lapses · June 18, 2026
- If a Pro subscription is cancelled or a payment fails, LabelCraft now detects the change at the print gate and applies the Free plan's 200-label monthly cap within the hour - no visit to the Billing page required. Previously a lapsed subscription left the account in 'Pro' mode indefinitely until the merchant opened the Billing page. The check runs at most once per hour: a valid, paying Pro subscription is never blocked by a transient billing-API error.
QR codes now print square and scannable · June 18, 2026
- QR codes on custom label templates are now rendered as perfect squares. Previously LabelCraft stretched the QR image to fill the label box regardless of its aspect ratio - a 30 mm wide × 8 mm tall box produced a very wide, distorted QR symbol that scanners could not read. The fix is automatic: the symbol is now sized to the smaller side of the box so it always stays square, and the existing readability warning now checks height as well as width so a QR that is too short to scan is flagged before the PDF is made.
Compare-at price now prints on labels · June 18, 2026
- If your custom label template includes a 'Compare at price' element (the 'was' / strikethrough price), it now shows the real value when printing. Previously the element appeared populated in the template designer preview but was blank on every printed label. Existing templates that use this element will show the correct value on the next print - no template changes needed. Labels printed before today reprint exactly as they were (the blank box is preserved for historical jobs, so reprints never change).
Print from a list: generate missing barcodes before printing · June 17, 2026
- After matching your SKU list, if any matched products have no barcode a warning banner appears in the review step with a one-click 'Generate missing barcodes' button. LabelCraft generates real GTIN-13s when you've set a GS1 company prefix in Settings, or unique internal codes otherwise. Existing barcodes are never overwritten; the review table updates in place so your subsequent print is immediately warning-free - no need to visit the Barcode check page separately first.
Barcodes that won't scan reliably are flagged before the PDF is made · June 17, 2026
- LabelCraft now warns you - before generating the PDF - when a barcode element will print too small to scan reliably. This happens when a label box is short enough that aspect-fitting the barcode shrinks the printed width below the minimum module width for the format (e.g. an EAN-13 needs at least 28 mm of printed width; a QR code's minimum scales with the length of its content). The warning names the exact format, the drawn width, and the minimum needed - so you can widen the box before a single label rolls off the printer. For QR codes, the minimum is computed from the real symbol size for your actual content, not a fixed approximation. This is exactly the "EAN-13 printed too small to scan" failure that drives merchants off Shopify's official label app.
Reprints always use the original template · June 17, 2026
- Edit a template freely - past prints reprint exactly as they were. LabelCraft now saves a snapshot of every template version, so a 1-click reprint from your job history uses the layout that was active when that job was printed, not whatever the template looks like today. This is the most common reason merchants leave Shopify's built-in label app: a template update silently changes how historical reprints look.
New guide: GS1 barcodes & valid GTINs · June 17, 2026
- Published a free guide at labelcraft.tech/shopify-gs1-barcodes explaining what GTINs are, how the EAN-13 check digit works, which GS1 prefix ranges are restricted (in-store, coupons, ISBN), and why Google Merchant Center and Amazon reject invalid or duplicate barcodes - so you know what to fix before products go into a marketplace feed.
Barcode health check - audit, fix, and export your whole catalog · June 16, 2026
- New "Barcode check" page audits every variant in your catalog before a label prints: invalid check digits, restricted GS1 ranges (in-store, coupon, ISBN), missing barcodes, and - for the first time - whole-catalog duplicate detection. Two products sharing the same barcode ring up the wrong item at POS; no per-barcode check can see this.
- Fix missing barcodes in one click: the page generates real GTIN-13s (with your GS1 company prefix) or unique internal codes and writes them directly - dry-run preview before a single change hits Shopify. Generated codes are checked against your whole catalog first, so fixing a missing barcode can never accidentally create a new duplicate.
- Fix duplicate barcodes: choose which variant keeps the shared code, preview the replacement codes for the rest, then confirm. The kept variant is never touched; only losers get new unique barcodes.
- Fix bad check digits in one click: LabelCraft recomputes the correct final digit and writes it - bulk-fix all flagged variants at once, or row by row. Only the last digit ever changes; dry-run preview shows Was → Corrected before a single change hits Shopify.
- Download a CSV report of all issues - one row per problem variant and per duplicate-group member, with plain-English fixes. Opens cleanly in Excel and Google Sheets.
- The audit page is read-only and never charges your label quota.
Print labels from a SKU list · June 15, 2026
- New "Print from a list" page: paste or upload a SKU + quantity list (from a spreadsheet, purchase order, or inventory count) and LabelCraft matches the SKUs to your products and prints labels - no need to search for products one by one.
- Ambiguous SKUs (shared across variants) and typos are flagged on screen before printing - nothing is silently guessed.
What's new page & smarter review prompts · June 14, 2026
- Added this changelog so you can always see what shipped.
- LabelCraft now asks for an App Store review only after a run of clean, warning-free prints - never after something went wrong.
See it before you print · June 12, 2026
- Every print job now shows a preview of page 1, rendered by the exact same engine that makes the PDF - overflow and truncated text are flagged before you hit print, never silently dropped.
- Added a printable calibration test page (label outlines, crosshairs and 1 mm rulers) so you can dial in printer offsets against real label stock.
Custom templates, presets, barcodes & billing · June 11, 2026
- Design your own label templates - any size, roll or sheet - with a live preview while you edit.
- Printer calibration: nudge the whole layout by ±5 mm (in 0.1 mm steps) to line up with your exact hardware.
- Save a selection and its quantities as a reusable preset, then replay it in one click with current prices and stock (Pro).
- Reuse a partially-used label sheet by choosing the start position, so printing resumes on the first empty cell.
- Generate missing barcodes in bulk - real GS1 GTIN-13s when you set your company prefix in Settings, or unique internal codes otherwise.
- Plans & quota: Free up to 200 labels/month; Pro ($9.99/month, 14-day free trial) removes the limit.
LabelCraft launches · June 10, 2026
- Barcode labels for Shopify that print at exactly the size you set - guaranteed dimensions, no print-dialog guesswork.
- Default print quantity is 0, so you never get a wall of unwanted labels - set quantities per product, from inventory, or in bulk.
- One-click reprint of any past job from the dashboard.
Enjoying LabelCraft? Leave a review on the Shopify App Store