# Anpassbare Vorlagen (CODE)

Diese Vorlagen können ausschließlich über das ETRON HWS angesprochen werden.

Alle Vorlagen sind individuell anpassbar und in Jinja-Code aufgebaut. Die enthaltenen Felder sowie deren Positionierung sind auf die jeweilige Etikettengröße abgestimmt.

Weicht die Etikettengröße von der angegebenen ab, ist eine entsprechende Anpassung der Felder und des Layouts erforderlich.

{% hint style="success" %}
S*ollten weitere Anpassungen benötigt werden, die auf dieser Seite nicht angeführt sind, kann der* [*ETRON Support*](/support-sonstiges/support-kontaktieren.md) *beauftragt werden. Eine entsprechende Etikettenvorlage wird anschließend zur Verfügung gestellt.*
{% endhint %}

## Produkte

### 38x25: seitliches Firmenlogo, 1. Produkt-Stichwort, zwei-zeiliger Produktname

<div data-with-frame="true"><figure><img src="/files/GgwIbyHEzyKXHnTFazW5" alt=""><figcaption><p>Vorlagenlayout 38x25mm</p></figcaption></figure></div>

> *Einstellungen -> Etiketten Drucker -> Neu*

Modell: `Produkt`

IP-Adresse: `http://localhost:7786/EtrHws/run`

Drucker: `[Etikettendruckernamen]`

Optimale Etikettengröße: 38x25mm

{% code overflow="wrap" lineNumbers="true" expandable="true" %}

```jinja
{#- ==== onRetail ETIKETTEN SYSTEMVORLAGE  ==== #}

{#- ======================   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 }}
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("ZDesigner ZD420-203dpi ZPL (35*20)") %}
{%- set LABEL_TEMPLATE_NUMBER = 99 %}
{%- 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[0:25]) %}
{%- set PRODUCT_NAME2 = json.dumps(model.name[25:51]) %}
{%- set PRODUCT_EAN = json.dumps(model.barcode) %}
{%- set PRODUCT_PLU = model.id %}

{%- set PRODUCT_TAG = json.dumps('') %}
{% if model.product_tag_ids|length > 0 %}
  {%- set PRODUCT_TAG = json.dumps(model.product_tag_ids[0].name) %}
{% endif %}

{%- set MANUFACTURER_CODE = json.dumps(model.manufacturer_code) %} 

{%- set FDS -%}
ID;ETT01;3;Benutzerdefiniertes Etikett
         ; ID ; OPT ; TEXT               ; FORM ; FORM SIZE
FormAsgn ; Z  ; 0   ; Benutzerdefiniert  ; 99   ; Benutzerdefiniert

 
; Seite
Head ; FORM99 ; 38x25 ;
   Font  ; 5.Arial

  ; Hier kann ein PNG-Bild in base64 angegeben werden. Verwenden Sie hierfür einen PNG ->     base 64 converter und fügen nach "DATBIN:png:" die Ziffern für das Bild ein
   Bitmap; 3 ; -3 ; 19; 0 ; DATBIN:png:iVBORw0KG...
   
   ; 1. Produkt-Stichwort
   Font  ; 6.Arial
   Field ; 1 ; 31 ; 0 ; TEXT3 ; SAYRIGHT

   ; Artikeltext
   Font  ; 6.Arial Bold
   Field ; 4 ; 31 ; 0 ; TEXT1 ; SAYRIGHT

   ; Artikeltext2
   Font  ; 6.Arial Bold
   Field ; 6.5 ; 31 ; 0 ; TEXT2 ; SAYRIGHT

   #;Text  ; 8 ; 1 ; 0 ; BN:
   #;Field ; 8 ; 1 ; 0 ; BENR
 

   ; EAN
   ;Font   ; 17.EAN-13B Half Height
   ;Field ; 10 ; 7 ; 0 ; EANFCD ; FONTBOX{84,70}
   ;Field ; 10 ; -1 ; 0 ; EANFCD ; FONTBOX{92,70}

   Font ; 19.Code 128
   Field ; 15 ; 2  ; 0 ; C28FCD ; FONTBOX{80,60} ANSI

   ; Text
   Font  ; 6.Arial
   Field ; 9 ; 4 ; 0 ; TEXT4

   ; Preis
   Font ; 12.Arial Bold
   Field ; 19 ; 29 ; 0 ; LDWSYM
   Font ; 13.Arial Black
   Field ; 19 ; 29 ; 0 ; VKP ; SAYRIGHT

   ;BITMAP ; 12 ; 3 ; 16 ; 8 ; BlueCode.jpg ;
{%- endset %}
{%- set FDSDATA = json.dumps(FDS) -%}

 

{#- =======================   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": 1,
      "ColCount": 1,
      "StartRow": 5,
      "StartCol": 50
    },
    "PrintData": [{
      "Ean": {{ PRODUCT_EAN }},
      "Plu": {{ PRODUCT_PLU }},
      "Text": {{ PRODUCT_NAME }},
      "Text2": {{ PRODUCT_NAME2 }},
      "Text3": {{ PRODUCT_TAG }},
      "Text4": {{ MANUFACTURER_CODE }},
      "Price": {{ PRODUCT_PRICE }},
      "ShowPrice": true,
      "VatPrice": true,
      "VatRate": {{ TAX_INFO }},
      "GpiTmg": 200,
      "GpiMeh": "ML",
      "GpiBas": 1000
    }],"FdsData":{{FDSDATA}}  
  }
}

 

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

{% endcode %}

## Produktvarianten

### 50x70mm, separat aufgezählte Attribute

<div data-with-frame="true"><figure><img src="/files/NwoYj2LJYC3pIaDzOh0c" alt=""><figcaption><p>Vorlagenlayout 50x70mm</p></figcaption></figure></div>

> *Einstellungen -> Etiketten Drucker -> Neu*

Modell: `Produktvarianten`

IP-Adresse: `http://localhost:7786/EtrHws/run`

Drucker: `[Etikettendruckername]`

Optimale Etikettengröße: 50x70mm

Gefilterte Attribute: **Farbe**, **Größe** und **Marke** (sind andere Attribute gewünscht, müssen die gesuchten Attributnamen abgeändert werden)

{% code overflow="wrap" lineNumbers="true" fullWidth="true" expandable="true" %}

```jinja


{#- ==== 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 }}
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 = 99 %}
{%- set LABEL_TYPE = json.dumps("Variantenartikel") %}
{%- set purchase = model %}
{%- 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"' %}

{# Attribute extrahieren (Farbe, Grösse, Marke) #}
{% set VARIANT_SIZE %}
{% for attr in model.product_template_variant_value_ids %}{% if attr.attribute_id.name == "Größe" %}
{{ attr.name }}{% endif %}{% endfor %}{% endset %}
{% set VARIANT_SIZE = json.dumps(VARIANT_SIZE) %}

{% set VARIANT_ATTRIBUTES_MARKE %}
{% for line in model.product_tmpl_id.attribute_line_ids %}{% if line.attribute_id.name == "Marke" %}
{{ line.value_ids[0].name }}{% endif %}{% endfor %}{% endset %}
{% set VARIANT_ATTRIBUTES_MARKE = json.dumps(VARIANT_ATTRIBUTES_MARKE) %}

{% set VARIANT_ATTRIBUTES = [] %}
{% for attr in model.product_template_variant_value_ids | sort(attribute="attribute_id.name", reverse=true) %}
{% if attr.attribute_id.name == "Farbe" %}
{% set _ = VARIANT_ATTRIBUTES.append(attr.name) %}
{% endif %}
{% endfor %}
{% if VARIANT_ATTRIBUTES | length == 0 %}
  {% for line in model.product_tmpl_id.attribute_line_ids %}
    {% if line.attribute_id.name == "Farbe" %}
      {% for value in line.value_ids %}
        {% set _ = VARIANT_ATTRIBUTES.append(value.name) %}
      {% endfor %}
    {% endif %}
  {% endfor %}
{% endif %}
{% set VARIANT_ATTRIBUTES = json.dumps(VARIANT_ATTRIBUTES[0] if VARIANT_ATTRIBUTES else "") %}

{%- if model.shelf_label_special_price < model.lst_price %}
  {%- set PRODUCT_PRICE = model.shelf_label_special_price %}
  {%- set CROSSED_PRICE = model.lst_price %}
{%- else %}
  {%- set PRODUCT_PRICE = model.lst_price %}
  {%- set CROSSED_PRICE = 0 %}
{%- endif %}

{%- set LABEL_REF_NAME = json.dumps(model.name) %}
{%- set PRODUCT_NAME = json.dumps(model.name) %}
{%- set PRODUCT_EAN = json.dumps(model.barcode) %}
{%- set PRODUCT_PLU = model.id %}
{%- set PRODUCT_REF = json.dumps(model.default_code) %}
{%- set PRODUCT_UOM = json.dumps(model.uom_id.name) %}

{%- set FDS -%}
ID;ETT01;3;Etikett mit Attributen
FormAsgn ; Z  ; 0   ; Benutzerdefiniert  ; 99   ; Benutzerdefiniert

; Seite
Head ; FORM99 ; 50x70 ;

; Hier kann ein PNG-Bild in base64 angegeben werden. Verwenden Sie hierfür einen PNG -> base 64 converter und fügen nach "DATBIN:png:" die Ziffern für das Bild ein
Bitmap; -5 ; 6 ; 13; 42 ; DATBIN:png:iVBOR...
  
; Feldpositionen (Field ; Höhenabstand zu TOP in mm ; Breitenabstand zu LEFT in mm; 0):
; SAYLEFT, SAYCENTER, SAYRIGHT = Textausrichtungen -> Linksbündig, Mittig, Rechtsbündig
    
  ; Marke
  Font  ; 10.Arial
  Field ; 19 ; 25 ; 0 ; TEXT4; SAYCENTER
  
  ; Produktname
  Font  ; 9.Arial
  Field ; 26 ; 25 ; 0 ; TEXT1; SAYCENTER
  Font  ; 9.Arial
  
  ; Farbe
  Field ; 31 ; 25 ; 0 ; TEXT2; SAYCENTER
  Font  ; 12.Arial Bold
  
  ; Größe
  Field ; 36 ; 25 ; 0 ; TEXT3; SAYCENTER
  Font ; 24.Arial Bold
  
  ; VKP
  Field ; 45 ; 34 ; 0 ; VKP ; SAYRIGHT
  Font ; 24.Arial Bold
  ; €
  Field ; 45 ; 35.5 ; 0 ; LDWSYM ; SAYLEFT
  
  ; Barcode
  Font ; 42.EAN-13B Half Height
  Field ; 56 ; 4.5 ; 0 ; EANFCD ; FONTBOX{140,120}; SAYCENTER
{%- endset %}
{%- set FDSDATA = json.dumps(FDS) -%}

{#- =======================   LABEL DRUCKER DATEN   ======================= #}
{
  "Quantity": {{ LABEL_QUANTITY }},
  "FormName": {{ LABEL_REF_NAME }},
  "FormDesc": {{ VARIANT_ATTRIBUTES }},
  "GroupName": {{ GROUP_NAME }},
  "LabelType": {{ LABEL_TYPE }},
  "LabelPrinterData": {
    "CmdVer": 1,
    "Cmd": "PrintLabel",
    "PrinterSettings": {
       "PrinterName": {{ PRINTER_NAME }}
    },
    "Layout": {
      "Style": {{ LABEL_TEMPLATE_NUMBER }},
      "RowCount": 1,
      "ColCount": 1,
      "StartRow": 2,
      "StartCol": 0
    },
    "PrintData": [{
      "Ean": {{ PRODUCT_EAN }},
      "Plu": {{ PRODUCT_PLU }},
      "Text": {{ PRODUCT_NAME }},
      "Text2": {{ VARIANT_ATTRIBUTES }},
      "Text3": {{ VARIANT_SIZE }},
      "Text4": {{ VARIANT_ATTRIBUTES_MARKE }},
      "Text5": {{PRODUCT_REF }},
      "Price": {{ PRODUCT_PRICE }},
      "CrossedPrice": {{ CROSSED_PRICE }},
      "ShowPrice": true,
      "VatPrice": true,
      "VatRate": {{ TAX_INFO }},
      "GpiTmg": 200,
      "GpiMeh": "ML",
      "GpiBas": 1000
    }],"FdsData":{{FDSDATA}} 
  }
}

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

{% endcode %}

### 24x20 mit Artikelnummer

<div data-with-frame="true"><figure><img src="/files/67VzPKykr6P3fh2spvZa" alt=""><figcaption><p>Vorlagenlayout 24x20mm</p></figcaption></figure></div>

> *Einstellungen -> Etiketten Drucker -> Neu*

Modell: `Produktvarianten`

IP-Adresse: `http://localhost:7786/EtrHws/run`

Drucker: `[Etikettendruckername]`

Optimale Etikettengröße: 24x20mm

{% code overflow="wrap" lineNumbers="true" expandable="true" %}

```jinja
{#- ==== 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 }}
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 =  99%}
{%- 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 VARIANT_ATTRIBUTES %}
  {%- for attr in model.product_template_variant_value_ids|sort(attribute="attribute_id.name",reverse=true) %}
    {%- if loop.index > 1 %}, {% endif %}
    {{- attr.attribute_id.name| truncate(2,True, '', 0)}}: {{attr.name}}
  {%- endfor %}
    {%- if model.base_unit_count %}
        ({{ model.base_unit_price }}/{{ model.base_unit_name }})
    {%- endif %}
{%- endset %}
{%- set VARIANT_ATTRIBUTES = json.dumps(VARIANT_ATTRIBUTES|trim) %}

{#- set PRODUCT_PRICE = model.list_price #}

{%- if model.shelf_label_special_price < model.lst_price %}
    {%- set PRODUCT_PRICE = model.shelf_label_special_price %}
    {%- set CROSSED_PRICE = model.lst_price %}
{%- else %}
    {%- set PRODUCT_PRICE = model.lst_price %}
    {%- set CROSSED_PRICE = 0 %}
{%- endif %}

{%- set LABEL_REF_NAME = json.dumps(model.name) %}
{%- set PRODUCT_NAME = json.dumps(model.name[0:30]) %}
{%- set INTERNAL_REF = model.default_code and json.dumps(model.default_code) or '""' %}
{%- set PRODUCT_EAN = json.dumps(model.barcode) %}
{%- set PRODUCT_PLU = model.id %}

{%- set VARIANT_TAGS %}
  {%- for tag in model.product_tmpl_id.product_tag_ids %}
    {%- if loop.index > 1 %}, {% endif %}
    {{- tag.name -}}
  {%- endfor %}
{%- endset %}
{%- set VARIANT_TAGS = json.dumps(VARIANT_TAGS|trim) %}

{%- set FDS -%}
ID;ETT01;3;Benutzerdefiniertes Etikett
         ; ID ; OPT ; TEXT               ; FORM ; FORM SIZE
FormAsgn ; Z  ; 0   ; Benutzerdefiniert  ; 99   ; Benutzerdefiniert

; Seite
Head ; FORM99 ; 24x20 ;
   Font  ; 5.Arial

   ; Produktname
   Font  ; 6.Arial Bold
   Field ; 0 ; 0.5 ; 0 ; TEXT1

   ; Variantenwerte
   Font  ; 6.Arial Bold
   Field ; 2 ; 0.5 ; 0 ; TEXT2

   ; Artikelnummer
   Font  ; 4.Arial Bold
   Field ; 7 ; 0.5 ; 0 ; TEXT4

   ; Preis
   Font ; 10.Arial Bold
   Field ; 5 ; 20 ; 0 ; LDWSYM
   Font ; 10.Arial Black
   Field ; 5 ; 19.5 ; 0 ; VKP ; SAYRIGHT

   ; EAN
   Font   ; 17.EAN-13B Half Height
   Field ; 13 ; 0 ; 0 ; EANFCD ; FONTBOX{84,70}

{%- endset %}
{%- set FDSDATA = json.dumps(FDS) -%}
{#- =======================   LABEL DRUCKER DATEN   ======================= #}
{
  "Quantity": {{ LABEL_QUANTITY }},
  "FormName": {{ LABEL_REF_NAME }},
  "GroupName": {{ GROUP_NAME }},
  "LabelType": {{ LABEL_TYPE }},
  "LabelPrinterData": {
    "CmdVer": 1,
    "Cmd": "PrintLabel",
    "PrinterSettings": {
       "PrinterName": {{ PRINTER_NAME }}
    },
    "Layout": {
      "Style": {{ LABEL_TEMPLATE_NUMBER }},
      "RowCount": 1,
      "ColCount": 1,
      "StartRow": 2,
      "StartCol": 0
    },
    "PrintData": [{
      "Ean": {{ PRODUCT_EAN }},
      "Plu": {{ PRODUCT_PLU }},
      "Text": {{ PRODUCT_NAME }},
      "Text2": {{ VARIANT_ATTRIBUTES }},
      "Text3": {{ VARIANT_TAGS }},
      "Text4": {{ INTERNAL_REF }},
      "Price": {{ PRODUCT_PRICE }},
      "ShowPrice": true,
      "VatPrice": true,
      "VatRate": {{ TAX_INFO }},
      "GpiTmg": 200,
      "GpiMeh": "ML",
      "GpiBas": 1000
    }],"FdsData":{{FDSDATA}}
  }
}

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


        
```

{% endcode %}

## Aufträge & Bestellungen

### 57x24 separate Attribute (Farbe & Größe), Artikelnummer

<div data-with-frame="true"><figure><img src="/files/WLap019RDD4bylnkBhVh" alt=""><figcaption><p>Vorlagenlayout 57x24mm</p></figcaption></figure></div>

> *Einstellungen -> Etiketten Drucker -> Neu*

Modell: `Bestellung`

IP-Adresse: `http://localhost:7786/EtrHws/run`

Drucker: `[Etikettendruckername]`

Optimale Etikettengröße: 57x24mm

{% code overflow="wrap" lineNumbers="true" expandable="true" %}

```jinja
{#- ==== 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 }}
#}


{#- ====================   DEFINITIONEN   ===================== #}
{%- set PRINTER_NAME = json.dumps(template.printer_name) %}
{%- set LABEL_TEMPLATE_NUMBER = 99 %}
{%- set LABEL_TYPE = json.dumps("Bestellung") %}
{%- set purchase = model %}
{%- set GROUP_NAME = json.dumps(purchase.name) %}
{%- set lines = purchase.order_line %}
{%- set ORDER_QUANTITY = 1 %}

{%- for line in lines %}
  {%- if loop.index > 1 %},{% endif %}
  {%- set model = line.product_id %}
  {%- set LABEL_QUANTITY = line.product_qty|int %}

  {%- set TAX_INFO =
      model.taxes_id
      and json.dumps(model.taxes_id[0].name | replace("Mehrwertsteuer ", "MwSt: "))
      or '"keine MwSt"' %}

  {# =================== GRÖSSE separat in TEXT4 – alle Werte wie bei Farbe =================== #}
  {%- set SIZE_VALUES = [] %}

  {# 1. Versuch: Variantenwerte #}
  {%- for attr in model.product_template_variant_value_ids %}
    {%- if attr.attribute_id.name == "Größe" %}
      {%- set _ = SIZE_VALUES.append(attr.name) %}
    {%- endif %}
  {%- endfor %}

  {# 2. Fallback: Template-Attribute #}
  {%- if SIZE_VALUES|length == 0 %}
    {%- for line2 in model.product_tmpl_id.attribute_line_ids %}
      {%- if line2.attribute_id.name == "Größe" %}
        {%- for value in line2.value_ids %}
          {%- set _ = SIZE_VALUES.append(value.name) %}
        {%- endfor %}
      {%- endif %}
    {%- endfor %}
  {%- endif %}

  {%- if SIZE_VALUES|length > 0 %}
    {%- set SIZE_TXT = "Gr: " ~ SIZE_VALUES|join(", ") %}
  {%- else %}
    {%- set SIZE_TXT = "" %}
  {%- endif %}

  {%- set VARIANT_SIZE = json.dumps(SIZE_TXT|trim) %}

  {# ========== Variantenattribute OHNE Größe & OHNE Marke + Grundeinheit ========== #}
  {%- set VA_LIST = [] %}

  {# Variantenwerte (Variante) #}
  {%- for attr in model.product_template_variant_value_ids
        | sort(attribute="attribute_id.name", reverse=true) %}
    {%- if attr.attribute_id.name not in ["Größe", "Marke"] %}
      {%- set _ = VA_LIST.append(attr.attribute_id.name|truncate(2,True,'',0) ~ ": " ~ attr.name) %}
    {%- endif %}
  {%- endfor %}

  {# Fallback: Template-Attribute, falls auf Variante nichts ist #}
  {%- if VA_LIST|length == 0 %}
    {%- for line2 in model.product_tmpl_id.attribute_line_ids %}
      {%- if line2.attribute_id.name not in ["Größe", "Marke"] %}
        {%- for value in line2.value_ids %}
          {%- set _ = VA_LIST.append(line2.attribute_id.name|truncate(2,True,'',0) ~ ": " ~ value.name) %}
        {%- endfor %}
      {%- endif %}
    {%- endfor %}
  {%- endif %}

  {# Grundeinheitsinfo anhängen #}
  {%- if model.base_unit_count %}
    {%- set _ = VA_LIST.append("(" ~ model.base_unit_price ~ "/" ~ model.base_unit_name ~ ")") %}
  {%- endif %}

  {%- set VARIANT_ATTRIBUTES = json.dumps(VA_LIST|join(" ")|trim) %}

  {# =================== Preislogik =================== #}
  {%- set PRODUCT_PRICE = model.lst_price %}
  {%- set CROSSED_PRICE = model.regular_price or 0 %}
  {%- set CROSSED_PRICE = json.dumps(CROSSED_PRICE) %}
  {%- set PRODUCT_PRICE = json.dumps(PRODUCT_PRICE) %}

  {%- set LABEL_REF_NAME = json.dumps(model.name) %}
  {%- set PRODUCT_NAME = json.dumps(model.name) %}
  {%- set INT_REF = json.dumps(model.default_code) %}
  {%- set PRODUCT_EAN = json.dumps(model.barcode) %}
  {%- set PRODUCT_PLU = model.id %}

  {# =============== FDS – Layout wie V1 =============== #}
  {%- set FDS -%}

ID;ETT01;3;Benutzerdefiniertes Etikett
         ; ID ; OPT ; TEXT               ; FORM ; FORM SIZE
FormAsgn ; Z  ; 0   ; Benutzerdefiniert  ; 99   ; Benutzerdefiniert

; Seite
Head ; FORM99 ; 57x24 Preis Rechts
   ; EAN
   Font   ; 36.EAN-13B Half Height
   Field ; 3 ; 1 ; 0 ; EANFCD ; FONTBOX{108,70}

  ; Artikeltext
   Font  ; 8.Arial Bold
   Field ; 8 ; 1 ; 0 ; TEXT1
   Field ; 12 ; 1 ; 0 ; TEXT2
   Field ; 18 ; 1 ; 0 ; TEXT3
   
   ; Artikeltext4 Attribut Größe
   Font  ; 14.Arial Bold
   Field ; 25.5 ; 1 ; 0 ; TEXT4

   ; Box für Preis
   Line ; 25 ; 0 ; 25 ; 51 ; 3
   Line ; 25 ; 26 ; 30.5 ; 26 ; 3 
   Line ; 30.5 ; 51 ;25 ; 51 ; 7
   Line ; 30.5 ; 26 ; 30.5 ; 51 ; 7

   ; Preis
   Font ; 14.Arial Bold
   Field ; 25.5 ; 27 ; 0 ; LDWSYM
   Font ; 14.Arial Black
   Field ; 25.5 ; 50 ; 0 ; VKP ; SAYRIGHT

  {%- endset %}
  {%- set FDSDATA = json.dumps(FDS) -%}

  {#- =======================   LABEL DRUCKER DATEN   ======================= #}
  {
    "Quantity": {{ LABEL_QUANTITY }},
    "FormName": {{ LABEL_REF_NAME }},
    "FormDesc": {{ VARIANT_ATTRIBUTES }},
    "GroupName": {{ GROUP_NAME }},
    "LabelType": {{ LABEL_TYPE }},
    "LabelPrinterData": {
      "CmdVer": 1,
      "Cmd": "PrintLabel",
      "PrinterSettings": {
         "PrinterName": {{ PRINTER_NAME }}
      },
      "Layout": {
        "Style": {{ LABEL_TEMPLATE_NUMBER }},
        "RowCount": 1,
        "ColCount": 1,
        "StartRow": 2,
        "StartCol": 0
      },
      "PrintData": [{
        "Ean": {{ PRODUCT_EAN }},
        "Plu": {{ PRODUCT_PLU }},
        "Text": {{ PRODUCT_NAME }},
        "Text2": {{ VARIANT_ATTRIBUTES }},
        "Text3": {{ INT_REF }},
        "Text4": {{ VARIANT_SIZE }},
        "Price": {{ PRODUCT_PRICE }},
        "CrossedPrice": {{ CROSSED_PRICE }},
        "ShowPrice": true,
        "VatPrice": true,
        "VatRate": {{ TAX_INFO }},
        "GpiTmg": 200,
        "GpiMeh": "ML",
        "GpiBas": 1000
      }],"FdsData":{{FDSDATA}}
    }
  }
{%- endfor %}

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

```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://helpcenter.etron.info/verwaltungsoberflache/einstellungen/etiketten-drucker/anpassbare-vorlagen-code.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
