Etikettendruck Grundlagen

Beim ETRON onRetail Etikettendruck mittels ETRON Hardware Service für das Ansprechen von lokalen Labelprintern werden die in der Systemanforderung angeführten Etikettendrucker und A4 Drucker unterstützt.

In der onRetail Verwaltungsoberfläche findet man die Einstellungen dafür unter Einstellungen > Allgemeine Einstellungen > Etiketten Druck.

Vorlagen-Typen

In ETRON onRetail sind bereits mehrere Etikett Druck Konfigurationen als Vorlage angelegt und können direkt übernommen und adaptiert werden.

Die Listenansicht zeigt, um welches Etikett es sich handelt (Name), auf welches Datenmodell das Etikett zugreift (Modell) und ob es bereits im Druckmenü sichtbar ist (Druck Menü ist Sichtbar).

Das Modell sagt auch aus, wo das Druckmenü später erscheint. Es ist also notwendig, dass für den Etikettendruck bei einer Bestellung das Modell Beschaffungsauftrag ausgewählt wird.

Microsoft Print to PDF (A4 Etiketten)

Druckformat: A4

Diese Vorlage zeigt die Möglichkeit zum Druck auf A4 Etiketten, wenn kein echter Etikettendrucker vorhanden ist.

Es wird eine A4 Seite erstellt und anschließend auf den Microsoft Print to PDF Drucker (Standard PDF Drucker von Microsoft Windows) gedruckt. Wie viele Etiketten auf das A4 Papier gedruckt werden, wird im Label Print Code definiert.

Achten Sie auf das gewünschte Modell für Ihren A4 Druck. Standardmäßig ist das Modell Produktvorlage ausgewählt.

Achten Sie auf die Modellbezeichnung, leider ist diese etwas verwirrend!

Das Modell Produktvorlage wird für das "Produkte", bzw "Hauptprodukte" verwendet.

Das Modell Produkt wird für die Varianten verwendet. Dh falls Sie mit Varianten arbeiten, so arbeiten Sie immer mit "Produkt".

HWS Produkt

Druckformat: Etikett

Diese Vorlage zeigt ein Beispiel für den Etikettendruck direkt bei den Artikel-Stammdaten.

HWS Produkt Varianten

Druckformat: Etikett

Diese Vorlage zeigt ein Beispiel für den Etikettendruck direkt bei den Stammdaten der Artikelvarianten.

HWS Bestellung m. Varianten

Druckformat: Etikett

Diese Vorlage zeigt ein Beispiel für den Etikettendruck bei Bestellungen im Einkaufswesen. Basierend auf Artikelvarianten.

HWS Anlieferung m. Varianten

Druckformat: Etikett

Diese Vorlage zeigt ein Beispiel für den Etikettendruck bei Anlieferungen im Lagerwesen. Basierend auf Artikelvarianten.

Formular-Ansicht

Wenn Sie eine der bestehenden Etiketten-Vorlagen bearbeiten oder eine neue Etikette anlegen landen Sie in der Formular-Ansicht.

Die allgemeinen Felder haben folgende Bedeutung:

Name: Name des Labels im System

Modell: Auswahl der Datenquelle für das Befüllen des Labels mit Inhalten Die relevantesten Datenquellen sind:

Modell

Anzeige des Druck Menüs in..

Produktvorlage

Produkte (Stammdaten)

Produkt

Produktvarianten (Stammdaten)

Beschaffungsauftrag

Bestellung (Einkauf)

Lieferung vornehmen

Anlieferung (Lager)

IP-Adresse: Adresse des ETRON Hardware Service. Standardmäßig immer: http://localhost:7786/EtrHws/run

Port: Bleibt „0“.

Druckername: Name des Druckers in Windows. Dieser Name muss 1:1 die selbe Schreibweise aufweisen, wie der Drucker unter Microsoft Windows in der Druckauflistung benannt wird.

Label Print Code: Hier wird JSON Code nach der Vorlage des ETRON Hardware Service eingetragen. Beispiele finden sich in Ihrem ETRON Hardware Service Ordner unter C:\HWS\PROG\Doku\PrintLabel Doku.txt (Laufwerk C: kann ggfs. abweichen, je nachdem welches Laufwerk bei der Installation gewählt wurde), sowie hier im Artikel unter Label Print Code.

Zum Drückmenü hinzufügen: Dieser Button fügt das konfigurierte Etikett anschließend in die Etikettendruck-Auswahl anschließend zur Ansicht des Ausgewählten Modell hinzu.

Druckvorgang

Wenn alles mittels Vorlagen-Typen und Formular-Ansicht konfiguriert ist, kann der erste Testdruck erfolgen.

Stellen Sie sicher, dass Ihre Etiketten-Konfiguration auch aktiviert wurde mittels des Button "Zum Druckmenü hinzufügen". Ohne diese Aktion erscheint in Ihrem gewünschten Model nicht die Auswahl zum Drucken der Etiketten.

Gehen Sie nun in die gewünschte Ansicht in der Sie Etiketten drucken möchten. In unserem Beispiel sind es die normalen Produktetiketten über die Artikel-Stammdaten Ansicht.

Markieren Sie die Produkte zu denen Sie Etiketten drucken möchten über die Checkbox in der Listenansicht und gehen Sie anschließend auf den Button "Drucken" und wählen die gewünschte Etiketten-Konfiguration aus:

Nach Auswahl der gewünschten Etiketten-Konfiguration erscheint eine neue Ansicht in der die Menge der jeweiligen Etiketten festgelegt werden können. Setze Sie diese nach Bedarf und klicken Sie rechts oben auf Jetzt x Etiketten drucken!

Ihr definierter Etikettendrucker sollte nun den Druckauftrag erhalten. Dies können Sie auch über den Druckerspooler in Microsoft Windows überprüfen.

Achten Sie ebenfalls darauf, dass das ETRON Hardware Service installiert ist und läuft.

Label Print Code

Der Label Print Code legt fest, wie die gedruckte Etikette aussehen soll und welche Daten darauf beschrieben sein sollen.

Dieser Teil des Codes beschreibt, wie die Etikette auszusehen hat:

{
    „CmdVer“: 1,             // Version ist derzeit 1, bleibt unverändert
    „Cmd“: „PrintLabel“,     // Name des Befehls, muss PrintLabel heißen
    „PrinterSettings“: {
        „PrinterName“: „ZDesigner ZD420-300dpi ZPL“ 
        
        // Name des Druckernamens in Windows, 
        // dieser Name muss exakt der selbe 
        // wie in den Windows Druckereinstellungen sein.
    },
    „Layout“: {
        „Style“:11,
        „RowCount“:1,
        „ColCount“:1,
        „StartRow“:2,
        „StartCol“:0
    },
    
    [...]

Dieser Teil des Codes beschreibt, welche Daten auf dem Etikett gedruckt werden: (dieses Beispiel bezieht sich auf das Modell „Produktvorlage“):

„PrintData“: [{
    „Ean“: „model.barcodes“,                 // EAN Nummer
    „Plu“: „model.default_code“,             // Interne Artikelnummer
    „Text“: „model.name“,                    // Artikeltext
    „Text2“: „model.description_sale“        // Erweiterter Artikeltext
    „Price“: “model.list_price“,             // Verkaufspreis
    „CrossedPrice“: “model.regular_price“,   // Stattpreis, ist der Stattpreis 0 wird kein Wert auf das Etikett gedruckt.
    „ShowPrice“: true,                       // Gibt an, ob der Preis angezeigt werden soll
    „VatPrice“: true,                        // Gibt an, ob die Steuer angezeigt werden soll
    „VatRate“: “model.taxes_id“,             // Steuersatz
    „OrderNumber“: „model.product_code“,     // Auftragsnummer, wenn benötigt, bei reinen Artikeletiketten nicht notwendig
    „GpiTmg“: 200,                           // Standardwert, bitte belassen
    „GpiMeh“: „ML“,                          // Standardwert, bitte belassen
    „GpiBas“: 1000                           // Standardwert, bitte belassen.
}]

Beispiel: Varianten-Etiketten.

Die Template Sprache Jinja wird hier verwendet.

Jinja Templating

{
  "CmdVer": 1,
  "Cmd": "PrintLabel",
  "PrinterSettings": {
    "PrinterName": "ZDesigner ZD420-300dpi ZPL"
  },
  "Layout": {
    "Style": 11,
    "RowCount": 1,
    "ColCount": 1,
    "StartRow": 2,
    "StartCol": 0
  },
  "PrintData": [
    {
      "Ean": "{{model.product_code}}",
      "Plu": "{{model.id}}",
      "Text": "{{model.name}}",
      "Text2":"
      {%- for attr in model.attribute_value_ids|sort(attribute="attribute_id.name",reverse=true) %}
          {%- if loop.index > 1 %}, {% endif %}
          {{-attr.attribute_id.name| truncate(200,end="")}}: {{attr.name}}
      {%- endfor %}",
      "Price": "{{model.list_price}}",
      "CrossedPrice": "{{model.regular_price}}",
      "ShowPrice": true,
      "VatPrice": true,
      "VatRate": "{{model.taxes_id.name|replace("Mehrwertsteuer ", "MwSt: ")}}",
      "GpiTmg": 200,
      "GpiMeh": "ML",
      "GpiBas": 1000
    }
  ]
}

JSON Format

Das Format der Etikette ist JSON. Im JSON Format dürfen keine Kommentare eingefügt sein, ansonsten ist es ungültig.

Etiketten für Hauptprodukte werden in der Etikettendefinition auf das Modell „product.template“ gelegt, die für Variantenprodukte auf das Modell „product.product“.

Nach Erstellen der Etikettendefinition muss der Aktionsbutton „Zum Druckmenü hinzufügen“ aktiviert werden, damit die Etikettenvariante nach Auswahl von Artikeln in der Listenansicht im Drucken Dropdown sichtbar wird.

„Style“: 11, bezieht sich auf ein vordefiniertes Etikettenformat für die Artikelauszeichnung.

for attr in model.attribute_value_ids ist die Schleife über die Attributwerte der Variante.

|sort(attribute=„attribute_id.name“,reverse=true) Die Pipe „|“ ermöglicht es Datenfelder mit verschiedenen von Jinja definierten Helfer Funktionen weiter zu bearbeiten. Hier wird die Liste der Attribute nach ihren Namen in umgekehrter Reihenfolge sortiert.

, Ein Beistrich soll vor das Attribut nur gesetzt werden, wenn es nicht das erste ist.

| truncate(200,end=„“) Mit dem Helfer „truncate“ können zu lange Texte abgeschnitten werden. Hier ist die maximale Länge 200 Zeichen.

|replace(„Mehrwertsteuer “, „MwSt: “) Der „replace“ Helfer wird hier verwendet, um das ausgegebene Wort „Mehrwertsteuer “ auf dem Etikett abzukürzen.

Bei den Jinja Variablen und Codeblöcken kann man die Leerzeichen davor aufsaugen indem man ein Minus nach den öffnenden Klammern/dem ersten Prozentzeichen anhängt.

{{- variable }} anstatt {{variable}}
und
{%- etc... %} anstatt {% etc ... %}

Etikett mit Grundpreisauszeichnung

Um ein Etikett mit einer Grundpreisauszeichnung zu erstellen

Grundpreiseinheit: z.B. kg / g / Liter

Grundpreismenge: die Menge der Grundpreiseinheit, anhand der der Preis aus der Teilmenge errechnet wird, z.B. 1 (für 1 kg, 1 Liter)

Teilmenge: die Verkaufsmenge des Produkts (z.B. 0,2 für eine 200g Schokolade-Tafel, da die Grundpreiseinheit kg is

Anhand der Teilmenge und des Produktpreises wird der Preis für für die Grundpreiseinheit berechnet (z.B. 1 kg 11,50 € - bei Verkaufspreis 2,30)

  • muss das Etikettenlayout unter Einstellungen > Allgemeine Einstellungen > Etiketten Druck folgend angepasst werden:

  1. Beim Etikettenlayout muss unter "Definitionen"

 {%- set LABEL_TEMPLATE_NUMBER = 21 %}

oder

{%- set LABEL_TEMPLATE_NUMBER = 99 %} 

eingetragen sein (siehe Beispiel: Etikett mit Grundpreisauszeichnung, Zeile 29).

  1. Zu "Definitionen" müssen folgende Felder hinzugefügt werden:

{%- set GPITMG = json.dumps(model.sub_qty) %}
{%- set GPIMEH = json.dumps(model.base_price_uom_id.name) %}
{%- set GPIBAS = json.dumps(model.base_price_qty) %}

(siehe Beispiel: Etikett mit Grundpreisauszeichnung, Zeile 42-44)

  1. Zu "Label Drucker Daten" müssen folgende Felder hinzugefügt werden:

"GpiTmg": {{ GPITMG }},
"GpiMeh": {{ GPIMEH }},
"GpiBas": {{ GPIBAS }}

(siehe Beispiel: Etikett mit Grundpreisauszeichnung, Zeile 76-78)

Beispiel: Etikett mit Grundpreisauszeichnung

Das Etikettenlayout sieht dann folgend aus (Änderungen/zusätzliche Felder für die Grundpreisauszeichnung in Zeile 29, 42-44, 76-78)

{#- ==== onRetail ETIKETTEN SYSTEMVORLAGE (bitte kopieren) ==== #}


{#- ======================   LEGENDE   ======================= #}
{#-
  Allgemeine Einstellungen:
Drucker Name (wie in Windows)         {{ PRINTER_NAME }}
Nummer der Etikettenvorlage           {{ LABEL_TEMPLATE_NUMBER }}

  Druckbildschirm Info:
Etikettentyp                          {{ LABEL_TYPE }}
Farbige Info Name der Bestellung      {{ GROUP_NAME }}
Label Referenz Name                   {{ LABEL_REF_NAME }}

  Label Daten:
Label Anzahl pro Bestellzeile         {{ ORDER_QUANTITY }}
Produkt Varianten Attribute           {{ VARIANT_ATTRIBUTES }}
Produkt Steuer                        {{ TAX_INFO }}
Produkt (Varianten) Preis             {{ PRODUCT_PRICE }}
Durchgestrichener Statt Preis         {{ CROSSED_PRICE }}
Produkt Barcode                       {{ PRODUCT_EAN }}
Produkt Id onRetail                   {{ PRODUCT_PLU }}
(durch 0 ersetzen falls kein Statt Preis gewünscht ist)
#}


{#- ====================   DEFINITIONEN   ===================== #} 
{%- set PRINTER_NAME = json.dumps(template.printer_name) %}
{%- set LABEL_TEMPLATE_NUMBER = 21 %}
{%- set LABEL_TYPE = json.dumps("Artikel") %}
{%- set GROUP_NAME -%}
  "ID: {{ model.id }}"
{%- endset %}
{%- set LABEL_QUANTITY = 1 %}
{%- set TAX_INFO = model.taxes_id and json.dumps(model.taxes_id[0].name|replace("Mehrwertsteuer ", "MwSt: ")) or '"keine MwSt"' %}
{%- set PRODUCT_PRICE = model.list_price %}
{%- set LABEL_REF_NAME = json.dumps(model.name) %}
{%- set PRODUCT_NAME = json.dumps(model.name) %}
{%- set CROSSED_PRICE = json.dumps(model.regular_price or 0) %}
{%- set PRODUCT_EAN = json.dumps(model.product_code) %}
{%- set PRODUCT_PLU = model.id %}  
{%- set GPITMG = json.dumps(model.sub_qty) %}
{%- set GPIMEH = json.dumps(model.base_price_uom_id.name) %}
{%- set GPIBAS = json.dumps(model.base_price_qty) %}

{#- =======================   LABEL DRUCKER DATEN   ======================= #}
{
  "Quantity": {{ LABEL_QUANTITY }},
  "FormName": {{ LABEL_REF_NAME }},
  "FormDesc": {{ PRODUCT_EAN }},
  "GroupName": {{ GROUP_NAME }},
  "LabelType": {{ LABEL_TYPE }},
  "LabelPrinterData": {
    "CmdVer": 1,
    "Cmd": "PrintLabel",
    "PrinterSettings": {
       "PrinterName": {{ PRINTER_NAME }}
    },
    "Layout": {
      "Style": {{ LABEL_TEMPLATE_NUMBER }},
      "RowCount": 10,
      "ColCount": 3,
      "StartRow": 20,
      "StartCol": 40
    },
    "PrintData": [{
      "Ean": {{ PRODUCT_EAN }},
      "Plu": {{ PRODUCT_PLU }},
      "Text": "",
      "Text2": {{ PRODUCT_NAME }},
      "Price": {{ PRODUCT_PRICE }},
      "CrossedPrice": {{ CROSSED_PRICE }},
      "ShowPrice": true,
      "VatPrice": true,
      "VatRate": {{ TAX_INFO }},
      "GpiTmg": {{ GPITMG }},
      "GpiMeh": {{ GPIMEH }},
      "GpiBas": {{GPIBAS  }}
    }]
  }
}

{#- =======================   LABEL DRUCKER DATEN ENDE   ======================= #}

Last updated

(c)2024 ETRON Softwareentwicklungs- und Vertriebs GmbH