Designing labels
Zebra Designer is free Windows-based WYSIWYG software offering basic barcode label design and print features.
Designing a new label
Prepare the label layout in Zebra Designer using static text labels and values. In label design please consider the following:
- Give enough space to the QR, Datamatrix, or other barcode: the bigger, the better.
- Use only ZEBRA fonts. Other font types are converted to graphics and can only be used for text that appears on all labels.
- Consider what text must be printed on the label. Our eyes can't read QR codes just yet. Space is limited! Keep the label informative, but not overloaded with text and graphics.
- Save your design files so you can update them later, or share them with others.
Do not include data that is subject to change. If you print the location of the inventory on the label, will you have to print a new label when its location is reassigned?
You can always look up inventory data by scanning the QR code on the label!
Export as ZPL
- Use Save to file option in the label print dialog.
- Select the destination folder and file name.
- Open the file in a text editor and inspect the generated ZPL.
Convert to a label template
- Open the file in a text editor.
- Replace static text with appropriate variable placeholders
- Add the label to GGCE
Variable placeholders
GGCE will process the ZPL template and populate the variable placeholders with actual data.
Placeholders are in the form {{{variable.name}}}. The variables depend on the type of label. Variables for inventory labels are different than those for viability tests.
Inventory labels
The following variables are available for Inventory labels.
| Variable name | Example | Description |
|---|---|---|
{{{inventory...}}} | ... | Any inventory field. See Inventory data model below. |
{{{inventory.barcode}}} | I:654332 | The barcode value assigned to the inventory. Use this variable for QR and other barcodes. |
{{{inventory.inventoryNumber}}} | INTRO 4421 SD | Human-readable inventory number. |
{{{accession...}}} | ... | Any accession field. Accession data model below. |
{{{accession.accessionNumber}}} | TMp-419 | The accession number. |
{{{taxon}}} | Hordeum vulgare | The full taxonomic name of the accession. |
See the Data model below for other available variables!
Order request item labels
| Variable name | Example | Description |
|---|---|---|
{{{orderRequestItem...}}} | Any propery of the request item. See OrderRequestItem data model below. | |
{{{orderRequestItem.sequenceNumber}}} | 3 | The number of the item in the order. |
{{{orderRequest...}}} | Any property of the request. See OrderRequest data model below. | |
{{{orderRequest.localNumber}}} | The local number of the request. | |
{{{inventory...}}} | Any field of the inventory of the item. See Inventory data model below. | |
{{{inventory.inventoryNumber}}} | The inventory of the item. See Inventory data model below. | |
{{{inventory.accession...}}} | Any field of the accession of the inventory. See Accession data model below. | |
{{{inventory.accession.accessionNumber}}} | TMp-419 | The accession number of the inventory |
{{{withdrawnInventory...}}} | Any field of the withdrawn inventory of the item. See Inventory data model below. | |
{{{item}}} | Deprecated Use orderRequestItem.sequenceNumber instead. | |
{{{requestItem...}}} | ... | Deprecated Use orderRequestItem instead. |
Seed viability labels
| Variable name | Example | Description |
|---|---|---|
{{{replicate}}} | 1 | The number of the replicate |
{{{inventoryViability...}}} | See InventoryViability data model | |
{{{inventory...}}} | Any property of the inventory being tested. See Inventory model below | |
{{{accession...}}} | Any property of the accession. See Accession data model below | |
{{{inventoryViabilityRule....}}} | Any propery of the viability rule. See InventoryViabilityRule data model | |
{{{_counter}}} | 1 | Deprecated The number of the replicate |
Formatting dates
Dates in ZPL label templates can be formatted with {{#formatDate}}...{{/formatDate}} tag.
The syntax requires that the formatting pattern and the date value are separated by a single whitespace character.
The following are a few examples you can choose from:
| Format | Syntax | Result |
|---|---|---|
| Year only | {{#year}}{{{inventory.propagationDate}}}{{/year}}is shorthand for yyyy pattern below. | 2024 |
| Year only | {{#formatDate}}yyyy {{{inventory.propagationDate}}}{{/formatDate}} | 2024 |
| Year and month | {{#formatDate}}yyyy-M {{{inventory.propagationDate}}}{{/formatDate}} | 2024-5 |
| Year and two digit month | {{#formatDate}}yyyy-MM {{{inventory.propagationDate}}}{{/formatDate}} | 2024-05 |
| Date/month/year | {{#formatDate}}d/M/yyyy {{{inventory.propagationDate}}}{{/formatDate}} | 1/5/2024 |
| Date/month/year | {{#formatDate}}dd/MM/yyyy {{{inventory.propagationDate}}}{{/formatDate}} | 01/05/2024 |
| Short month | {{#formatDate}}d MMM yyyy {{{inventory.propagationDate}}}{{/formatDate}} | 1 AUG 2024 |
| Long month | {{#formatDate}}d MMM yyyy {{{inventory.propagationDate}}}{{/formatDate}} | 1 August 2024 |
Print only the year of propagation
Applying {{#year}}{{{inventory.propagationDate}}}{{/year}} will print only the year of the propagation date of the inventory:

Add label template to GGCE
Once you have your design worked out and have applied variables to the ZPL code it is time to add the label to GGCE.
Your label template will be registered as an Application setting in GGCE Admin tools:

- Open Application settings menu in Admin tools.
- Add a new setting with category
LABELand the Name:- For inventory labels use
INVENTORYITEM - For viability test labels use
INVENTORYVIABILITY_REPLICATE - For distribution labels use
REQUESTITEM
- For inventory labels use
- Since you'll have more than one design you should specify a unique Sort order number starting from
1. Other label designs of the same type will use different numbers. - Add the ZPL to the Value field and hit Save.
Friendly names for your designs
The names and descriptions of the designs are managed in the BARCODE_LABEL vocabulary.
To give a friendly name to INVENTORYITEM label with Sort order 1 you need to:
- Navigate to Code values menu in Admin tools.
- Hit the
+action button to open the form to add a new code value. - Fill out the form:
- Group: must be
BARCODE_LABEL. - Code: is
INVENTORYITEM_1for label of typeINVENTORYITEMwith Sort order1. - Title: enter a user-friendly and short name for this label.
- Description: add an explanation when this label should be used (e.g. "For 10x5 labels on printer B").
- Group: must be
- Hit Submit.
Special characters
The contents of field data ^FD...^FS and field variable ^FV...^FS commands are automatically processed and characters ~ and ^ are replaced by their hexadecimal representations \7e and \5e respectively. The field command will be prefixed by ^FH\ if a replacement was made.
For an accession with DOI 10.000/AAA~ the template ^FD{{{accession.doi}}}^FS results in ^FH\^FD10.000/AAA\7e^FS instead of simply ^FD10.000/AAA~^FS.
Data model
- Inventory
- Accession
- OrderRequestItem
- OrderRequest
- InventoryViability
- InventoryViabilityRule