Put GTIN, price and weight in one GS1-128 barcode

LabelCraft - barcode labels for Shopify that print at exactly the size you set.

EN · FR · DE · ES
The guarantees behind every label
Exact to ±0.1 mm

Every label prints at the size you set - measured, not approximate.

Never a silent failure

Overflow or a missing barcode always raises a visible warning before you print.

Whole-dot barcodes

Modules snap to your printer's dots, so codes stay crisp and scan first time.

Your barcodes, untouched

We never overwrite or reassign a product's existing barcode.

A retail EAN-13 carries one thing: the product number. A GS1-128 barcode carries several - the GTIN, the net weight, the price - each one tagged so a scanner knows what it is reading. That is the format warehouse and 3PL receiving systems expect, and it is why a single GS1-128 label can replace a row of separate stickers.

What an Application Identifier is

Inside a GS1-128 symbol each field starts with an Application Identifier (AI) - a 2-to-4 digit prefix, written in parentheses, that tells the scanner what the digits after it mean. (01) introduces a 14-digit GTIN; (310n) a net weight in kilograms; (392n) an amount payable. The AI is part of the encoded data, not decoration, so one symbol can hold a GTIN, a weight and a price without the scanner ever confusing one for another.

The element string LabelCraft builds

Give LabelCraft a variant with GTIN 4006381333931, a net weight of 0.5 kg and a price of 19.99, and it builds this exact element string:

(01)04006381333931(3103)000500(3922)1999

Weight: (310n) for kilograms, (320n) for pounds

LabelCraft encodes metric weights under (310n) and imperial weights under (320n), always as six digits with three implied decimals. Grams and ounces are converted first, so 500 g and 0.5 kg both encode as (3103)000500. A weight with no unit is never guessed - LabelCraft rejects it rather than print a barcode that scans as the wrong mass.

Price: (392n) plain, (393n) with a currency

An amount on its own uses (392n). When you embed the currency too, LabelCraft uses (393n), which prefixes the amount with the 3-digit ISO-4217 numeric currency code. A price of 10.99 in EUR (numeric code 978) encodes as (3932)9781099. An unknown currency is rejected, never guessed - a wrong currency on a price barcode is a silent mispricing.

One symbol only holds so much

A single GS1-128 symbol is capped by the GS1 General Specifications at 48 encoded characters. Pack in a GTIN, a weight, a long price and (later) a lot or expiry, and you can run past that ceiling - at which point a careless generator either fails or lets the symbol grow so wide it overflows the label and drops the trailing fields. LabelCraft assesses the payload before it prints and tells you which AI would not fit, so the overflow is never silent.

How LabelCraft prints it

Add a GS1-128 element to your template and switch on the GTIN, weight and price fields you want. Every field is validated on its own and as a whole: an invalid GTIN, an unconvertible weight, an unknown currency or an over-capacity payload is a hard stop, not a half-right barcode. The result is the one thing a receiving label has to be - scannable, and carrying exactly the data the warehouse expects.

Install free - 200 labels per month →

Related: GS1 barcodes and GTINs, the GTIN check digit, receiving barcode labels - or contact LabelCraft support.

Related guides