# Zusammenfassung der Berechnung

Das Feld **„Twig-Template für die Zusammenfassung der Berechnung unterhalb der Positionen"** (Karte „Bestellposition") steuert den Summenblock, der unterhalb der Positionstabelle ausgegeben wird – also Nettosumme, Steuern und Gesamtsumme.

Wird ein Template hinterlegt, ersetzt es den Standard-Summenblock von Shopware. Bleibt das Feld leer, wird der Standard-Block verwendet.

## Besonderheit: serverseitiges Rendering

Anders als die Positionstabelle wird dieses Template **vorab serverseitig gerendert** (`StringTemplateRenderer`) und anschließend in das Dokument eingefügt. Dabei stehen folgende Variablen zur Verfügung:

| Variable    | Beschreibung                         |
| ----------- | ------------------------------------ |
| `order`     | Das vollständige Bestellobjekt       |
| `lineItems` | Die Bestellpositionen der Bestellung |

## Beispiel (gekürzt)

```twig
{% set currencyIsoCode = order.currency.isoCode %}
{% set shippingAddress = order.deliveries.first.getShippingOrderAddress %}

<div class="sum-container">
    <table class="sum-table">
        <tr>
            <td class="align-right">Gesamtsumme (Netto):</td>
            <td class="align-right">{{ order.amountNet|currency(currencyIsoCode) }}</td>
        </tr>

        {% for calculatedTax in order.price.calculatedTaxes.sortByTax %}
            <tr>
                <td class="align-right">zzgl. {{ calculatedTax.taxRate }}% MwSt.:</td>
                <td class="align-right">{{ calculatedTax.tax|currency(currencyIsoCode) }}</td>
            </tr>
        {% endfor %}

        <tr class="bold">
            <td class="align-right">Gesamtsumme:</td>
            <td class="align-right">{{ order.price.totalPrice|currency(currencyIsoCode) }}</td>
        </tr>
    </table>
</div>
```

## Gerundete Gesamtsumme

Das mitgelieferte Standard-Template berücksichtigt zusätzlich die Rundungseinstellungen der Bestellung und zeigt bei Bedarf sowohl die rohe als auch die gerundete Gesamtsumme an:

```twig
{% set displayRounded = order.totalRounding.interval != 0.01 or order.totalRounding.decimals != order.itemRounding.decimals %}

{% if displayRounded %}
    <tr>
        <td class="align-right">Gesamtsumme:</td>
        <td class="align-right">{{ order.price.rawTotal|currency(currencyIsoCode) }}</td>
    </tr>
    <tr class="bold">
        <td class="align-right">Gesamtsumme (gerundet):</td>
        <td class="align-right">{{ order.price.totalPrice|currency(currencyIsoCode) }}</td>
    </tr>
{% else %}
    <tr class="bold">
        <td class="align-right">Gesamtsumme:</td>
        <td class="align-right">{{ order.price.totalPrice|currency(currencyIsoCode) }}</td>
    </tr>
{% endif %}
```

## Standardvorlage laden

Mit dem Button **Standardvorlage laden** unterhalb des Editors stellen Sie das mitgelieferte Standard-Template (passend zur aktuell gewählten Sprache) wieder her. Die vollständige Vorlage zum Kopieren finden Sie unter [Template Vorlagen](/pdf-dokumenten-template-bearbeiten/template-vorlagen.md).

> **Hinweis:** Für den **Lieferschein** wird beim Laden der Standardvorlage bewusst ein leeres Template gesetzt, da Lieferscheine in der Regel keine Preissummen enthalten.


---

# 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://docs.hubyte.de/pdf-dokumenten-template-bearbeiten/zusammenfassung-template.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.
