> This page is for Product Documentation.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.navipartner.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.navipartner.com/_mcp/server.

# Create a new price label/matrix template

> Price labels can be printed in various shapes, sizes and materials to suit the targeted product best. It is for this reason that you may want to create custom price label templates for your business.

> **Note:** NaviPartner provides a large selection of predefined templates for most typical processes, optimized for various printers and print media. You can retrieve these predefined templates with the **Download Template Data** action in the **Print Template List** administrative section. Some of these templates are created specifically for printing price labels - Z420T_PRICE_SMALL / RFID_PRICE_SHORTWIDE.

This article can also be used as a reference whenever you need to create matrix print templates. Although some options are label-specific, most of the demonstrated configurations can be applied when creating templates for printing [<ins>coupons</ins>](/product/retail-printing-create-print-template-coupon) and tickets.

## Create a basic price label print template

1. Search for **Print Template List**, and open the related link.\
   On fresh installation, an empty template list is displayed.
2. Click **New** to open an empty **Template Card**.
3. Provide a unique name for the template in the **Code** field.\
   For the purposes of this example, the code is **DEMO_PRICE_LABEL**.
4. Select **Matrix** in the **Printer Type** field.\
   The **Matrix Settings** panel is displayed below.\
   Matrix and line printing are described in more detail in the [<ins>Printer properties</ins>](/product/retail-printing-print-properties) article.
5. Make sure that **Zebra** is selected as the **Matrix Device** in the **Matrix Settings** panel.\
   You've now created the most basic price label print template. However, it's recommended to also define which tables will be data sources for the template.

## Add and link data sources

1. Click **Edit Data Items** in the **Template Card**.\
   The **Data Items** page provides an overview of all available data items, their relations, and constraints.

2. Add the **NPR Retail Journal Line** table as the main data source.

   When printing price labels, item data is transferred to a common table **NPR Retail Journal Line** which serves as the initial data source. Any additional data sources need to be referenced as subsets of it. **NP Retail Journal Line** contains fields like **Item No.**, **Description**, **Variant Code**, **Base Unit of Measure**, **Unit Price**, and **Barcode**.

   In this example, the label should contain a **Description**, **Variant Description**, **Unit Price**, and **Barcode**, so the **NPR Retail Journal Line** contains all of the necessary information except for the **Variant Description**. The missing data will be extracted from another table called **Item Variant**.

3. Add a line below **NPR Retail Journal Line**, and select the **Item Variant** data source.

   ![data\_source\_variant](/_fern-files/_img/18ca67c0ed839ee80c04418a41aaab68915dc188b4f8e3818b84f53f95ba9338.webp)

4. Set the **Iteration Type** for the **Item Variant** to **First**.\
   As a reference, you can choose between the following iteration types:

| Option Name         | Description                                                                                                                  |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **`<blank>`**       | No restrictions will be placed on iterations; all records will be included in the iteration.                                 |
| **First**           | The first available record will be selected.                                                                                 |
| **Last**            | The last available record will be selected.                                                                                  |
| **Total**           | You need to select the fields that should be totaled if you use this option. It works as a summation of the selected fields. |
| **Distinct Values** | This option is typically used only for the **Line Print**, when it's necessary to print all unique/distinct values.          |
| **Field Value**     | Used when the number of iterations is determined by a field value (integer).                                                 |

4. To link two data sources, and make **Item Variant** a subset of the **NPR Retail Journal Line**, select the row with the **Item Variant**, and use the **Indent** action at the top of the page.

> **Note:** It's possible to have multiple levels of indentation, i.e. multiple data sources can be subsets of others.

It's also necessary to set data item links for the item variant in the **Data Item Links** panel at the bottom of the page.

There are two filter types in the **Data Item Links**:

* **TableLink** - compares a field from the parent data source with a field from the current data source
* **Fixed Filter** - uses a user-defined **Filter Value** to a field value from the current data source

5. Establish a link between the **Item No.** and the **Variant Code** in the **NPR Retail Journal Line**, and the **Item No.** and **Code** in the **Item Variant**.

   ![data\_item\_links](/_fern-files/_img/0cebb8e0a354364ec4e92f615dc86ffaf658aed3f6154c97ddc1eaf8691decc6.webp)

## Set up Template Matrix Designer

1. Navigate back to the **Template Card**, and click **Edit Layout**.\
   The **Template Matrix Designer** is displayed.\
   As the **Printer Type** is set to **Matrix**, the fields for the **X** and **Y** coordinates are displayed.\
   The available **Type Options** correspond to the selected Matrix device, which is Zebra in this example.

   > **Note:** For better readability, the order of elements should match the actual output order.

   This is the visual representation of the layout, taking into account the previously performed setup:

![print\_template\_layout](/_fern-files/navipartner.docs.buildwithfern.com/a9d69a72816f402c7b3af423ff14fd747df650b4c1b94869460ecd8ce0f7b71e/products/product/assets/retail/printing/how-to/create_print_template_label/print_template_layout.png)

The first line in the layout design needs to be placed in the top left corner. The X and Y coordinates are relative to the previously defined **LABEL_HOME**, so if the first line is placed at 0,0, the final position will be 10,10 due to this setting.

2. For **Type Option** select **Font U**.

   > **Note:** You can use either **Fonts** or **Scale Fonts** for the text output. **Font A** is a small font, whereas **Font V** is a big font. For the **Scale Fonts**, it is possible to define other values than the predefined ones, so it could be Scale Font 30,10 if it was to be desired.

3. Open the lookup in the **Table Name**, and select **RetailJournalLine**.\
   The available options will be the data sources defined earlier in the setup.

4. Open the lookup dialog box for the **Field Name**, and select **Description**.\
   This is everything you need to do in order to display the first line of our example. However, other lines can also be set up to match the configuration displayed in the following screenshot:

   ![template\_matrix](/_fern-files/_img/e577e059b345e731dd98fa3f2332000e71afa65b403eff440eebaea59384fa9f.webp)

## Configure Device Settings

After you've finished configuring the layout, click **Edit Device Settings**.

As with the layout, the selections under the **Printer Type** and **Matrix Device** determine the available options.\
Typically, **LABEL_HOME**, **PRINT_WIDTH**, **MEDIA_DARKNESS**, and **PRINT_RATE** are set up to ensure correct calibration and good performance.

![device\_settings](/_fern-files/_img/202501af20e06a0594116b974a45e52bd152656d324607a0a8b789793c0bd746.webp)

In this example, **LABEL_HOME** is set to **10,10** to add a small margin from the corner of the label. The other settings may require some tweaking, since they are dependent on the hardware and media specifications. **PRINT_WIDTH** in this example depends on the DPI, as the value is measured in dots. **PRINT_RATE** is set to **3**, which is the default print rate. **MEDIA_DARKNESS** in this example is set to **28**.

#### See also

* [<ins>Printer troubleshooting</ins>](/product/troubleshooting-printer)
* [<ins>Printing overview</ins>](/product/retail-printing-intro)
* [<ins>Print properties</ins>](/product/retail-printing-print-properties)
* [<ins>Create a simple receipt/line print template</ins>](/product/retail-printing-receipt-print-template)
* [<ins>Set up coupon print templates</ins>](/product/retail-printing-create-print-template-coupon)
* [<ins>Printing Chinese Characters on Zebra Labels in NP Retail</ins>](/product/retail-printing-chinese-characters-zebra-labels)