Rechnungserstellung

Innerhalb der Einstellungen zur Rechnungserstellung kann die Rechnungsgenerierung für Bestellungen mit einem Rechnungsbetrag von 0 € deaktiviert werden. Sobald diese Einstellung ausgewählt wird, wird bei den betroffenen Bestellungen keine Rechnung erstellt oder mitgesendet.

In der Administration kann unter Verwaltung → Shops → bearbeiten → Rechungserstellung die Rechnungserstellung pro Shop aktiviert werden. Hierfür muss die Vorlage befüllt werden. Bitte alten Sie die Mustervorlage und speichern Sie Ihre Änderungen ab. Die Rechnung ist somit aktiviert und wird an den jeweils eingestellten Stellen angezeigt/ausgegeben.


Variablen

Folgende Variablen stehen in der Rechnungsvorlage zur Verfügung:


VariableTypBeschreibung
{$CurrencySymbol}
string
System - Währung
{$cart} 
array
Warenkorb
{$freifelder}
array
Freifelder unter Kunden - bearbeiten - Freifelder
{$orderInfo} 
array
Zusätzliche Bestellinformationen
{$gutscheinrechnung}
array
Rechnungstyp (bei = 1 handelt es sich um einen Gutschein)
{$Budget}
string
Budget
{$Total}
string
Rechungsbetrag
{$NetTotal}
string
Rechungsbetrag
{$VAT}
string
MwSt.
{$VAT_SPLITTED}
string
MwSt. für gesplitteten Warenkorb
{$module}
array
Für Abfragen ob jeweiliges Modul aktiv ist
{$Versandart}
string
Bezeichung der Versandart
{$VersandartPreis}
string
Preis der Versandart
{$PaymentMethod}
string
Bezeichung der Zahlungsart
{$Payment}
array
Zahlungsart (Live)
{$arr_paymentfelder}
array
Zusatzfelder Zahlungsart
{$PaymentId}
int
Zahlungsart-Id
{$order_DeliverAdressCompany}
string
Lieferadresse: Firma
{$Firma1}
string
Lieferadresse: Firma
{$InvoiceCompany}
string
Lieferadresse: Firma
{$LieferadresseFirma}
string
Lieferadresse: Firma
{$Firma2}
string
Lieferadresse: Firma 2
{$InvoiceCompany2}
string
Lieferadresse: Firma 2
{$LieferadresseFirma2}
string
Lieferadresse: Firma 2
{$Titel}
string
Lieferadresse: Titel
{$DeliverTitel}
string
Lieferadresse: Titel
{$order_DeliverAdressTitle}
string
Lieferadresse: Titel
{$LieferadresseTitel}
string
Lieferadresse: Titel
{$order_DeliverAdressName}
string
Lieferadresse: Ansprechpartner
{$LieferadresseAnsprechpartnter}
string
Lieferadresse: Ansprechpartner
{$Strasse}
string
Lieferadresse: Straße
{$InvoiceStreet}
string
Lieferadresse: Straße
{$order_DeliverAdressStreet}
string
Lieferadresse: Straße
{$LieferadresseStrasse}
string
Lieferadresse: Straße
{$PLZ}
string
Lieferadresse: PLZ
{$InvoiceZIP}
string
Lieferadresse: PLZ
{$order_DeliverAdressZIP}
string
Lieferadresse: PLZ
{$LieferadressePLZ} 
string
Lieferadresse: PLZ
{$Ort}
string
Lieferadresse: Ort
{$InvoiceTown}
string
Lieferadresse: Ort
{$order_DeliverAdressTown}
string
Lieferadresse: Ort
{$LieferadresseOrt}
string
Lieferadresse: Ort
{$InvoiceCountry}
string
Lieferadresse: Land
{$LieferadresseCountry}
string
Lieferadresse: Land
{$order_DeliverAdressTel}
string
Lieferadresse: Telefon
{$order_DeliverAdressFax}
string
Lieferadresse: Fax
{$order_DeliverAdressEMail}
string
Lieferadresse: E-Mail
{$LieferadresseEmail}
string
Lieferadresse: E-Mail
{$Kostenstelle}
string
Kostenstelle
{$InvoiceCompany}
string
Rechnungsadresse: Firma
{$RechnungsadresseFirma}
string
Rechnungsadresse: Firma
{$InvoiceCompany2}
string
Rechnungsadresse: Firma 2
{$RechnungsadresseFirma2}
string
Rechnungsadresse: Firma 2
{$InvoiceCompany3}
string
Rechnungsadresse: Firma 3
{$InvoiceTitle}
string
Rechnungsadresse: Titel
{$RechnungsadresseTitel}
string
Rechnungsadresse: Titel
{$InvoiceName}
string
Rechnungsadresse: Ansprechpartner
{$RechnungsadresseAnsprechpartnter}
string
Rechnungsadresse: Ansprechpartner
{$InvoiceStreet} 
string
Rechnungsadresse: Straße
{$RechnungsadresseStrasse}
string
Rechnungsadresse: PLZ
{$RechnungsadressePLZ}
string
Rechnungsadresse: PLZ
{$InvoiceTown}
string
Rechnungsadresse: Ort
{$RechnungsadresseOrt}
string
Rechnungsadresse: Ort
{$InvoiceCountry}
string
Rechnungsadresse: Land
{$RechnungsadresseCountry}
string
Rechnungsadresse: Land
{$InvoiceEMail}
string
Rechnungsadresse: E-Mail
{$ustid}
string
Umsatzstreuer-Id
{$Bestelldatum}
string
Bestelldatum
{$DeliveryDate}
string
Bestelldatum
{$InvoiceDate}
string
Bestelldatum formatiert (%e.%m.%Y)
{$DateOfInvoice}
string
Rechnungsdatum formatiert (DD.MM.YYYY)
{$Datum}
string
Bestelldatum formatiert (%e.%m.%Y)
{$Bestellcode}
string
Auftrags-Code (berücksichtigt aus den individuellen Code)
{$OrderCode}
string
6-stelliger Auftrags-Code
{$LieferscheinCode}
string
6-stelliger Auftrags-Code
{$Rechungscode}
string
6-stelliger Auftrags-Code
{$OrderNr}
string
Bestellnummer
{$LieferscheinNr}
string
Bestellnummer
{$InvoiceNr} 
string
Bestellnummer
{$billNumber}
string
Bestellnummer für Dienstleister
{$Lieferscheindatum}
string
Datum zum Zeitpunkt des Aufrufes
{$Bemerkung}
string
Bemerkung
{$CustomerUser}
array
Daten des Benutzers (live)
{$Kundendaten} 
array
Daten des Benutzers (live)
{$Kunde} 
array
Kundennummer des Benutzers (live)
{$ShopURL}
string
Url des Kunden-Shops
{$orderTaxRates}
array
default, reduced – enthält den jeweiligen Steuersatz zum Zeitpunkt der Bestellung
Beispielsweise enthält {$orderTaxRates.default} bei 19% MwSt. "19"
{$voucherGrossValue}stringIn Euro mit zwei Nachkommastellen. Wenn vorhanden, dann wurde bei der Bestellung ein Bruttogutschein verwendet.
{$subTotalGross}stringIn Euro mit zwei Nachkommastellen.
Nur vorhanden, wenn auch {$voucherGrossValue} gesetzt ist.
Dann enthält diese Variable die Bruttosumme bevor der Gutschein abgezogen wurde.


Beispiele

MwSt

MwSt und Betrag
# Mit dem folgenden Beispiel kann man den verwendeten MwSt-Satz und den dazugehörigen Wert ausgeben. 
# Falls der Warenkorb einen der beiden Steuersätze nicht hat, wird dieser nicht angezeigt mit "floatval($vatValue) !== 0.0".
{foreach from=$VAT_SPLITTED item=vatValue key=vatKey}
    {if floatval($vatValue) !== 0.0 }
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td colspan="2"> {$vatKey}% MwSt</td>
            <td align="right"></td>
            <td align="right" nowrap>
                {$vatValue} EUR
            </td>
        </tr>
    {/if}
{/foreach}
MwSt und Betrag
# Mit dem folgenden Beispiel kann man den verwendeten MwSt-Satz und den dazugehörigen Wert ausgeben.
# Falls der Warenkorb einen der beiden Steuersätze nicht hat, wird diese nicht angezeigt mit "floatval($vatValue) !== 0.0".
{foreach from=$taxSplitted->orderItemTaxSums item=vat key=vatKey}
    {if floatval($vat->taxValue) !== 0.0 }
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td colspan="2"> {$vatKey}% MwSt</td>
            <td align="right"></td>
            <td align="right" nowrap>
                {$vat->taxValue/100} EUR
            </td>
        </tr>
    {/if}
{/foreach}

POSTAKTUELL Verteilung - Shop-Betreiber (MwSt)

MwSt und Betrag
# Es muss bei den Unterelementen die Elemente nicht angezeigt werden, bei denen die MwSt includiert ist.
{foreach from=$item->getChildItems() item=childItem key=childId}
    {if isset($postAktuellGrossPriceDistributionPositions[$childItem->get('id')])}
        {continue}
    {/if}
    
	...
{/foreach}

# Ebenso muss dann die weitere Position ausgegeben werden, damit die Kosten die nicht unter dem Netto-Wert fallen, aber im Brutto auftauchen ausgewiesen werden:
{if $postAktuellGrossPriceDistributionSum > 0}
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td colspan="2">Verteilung (brutto) gesamt</td>
        <td align="right"></td>
        <td align="right" nowrap>
            {$postAktuellGrossPriceDistributionSum|string_format:"%.2f"} EUR
        </td>
    </tr>
    {/if}

Stornierte Artikel ausblenden

Stornierte Artikel ausblenden
Zeile 78:
{if $item->get('aid')>0 AND $item->get('status')!='STORNO'}


Währung

Währung
{assign var='currency' value=$orderObject->getOrderInfo('currency')}
Symbol: {$currency.symbol}
Name:   {$currency.name}

Rechnungsdatum

Rechnungsdatum
Innerhalb der folgenden Abfrage wird das Rechnungsdatum abgefragt, welches nach Bestellung im Backend abgeändert wird:
Rechnungsdatum formatiert (DD.MM.YYYY)

VARIABLE
{$DateOfInvoice}


Rechnungsdatum in deutscher Schreibweise

Rechnungsdatum in deutscher Schreibweise:
Sie können $DateofInvoice über Smarty aufsplitten und so eine deutsche Ausgabe erzwingen:


{assign var="VARIABLE_NEU" value="-"|explode:$VARIABLE}
{$VARIABLE_NEU[2]}.{$VARIABLE_NEU[1]}.{$VARIABLE_NEU[0]}


Für VARIABLE nutzen Sie DateofInvoice


Notizen für Bestellungen

Notizen für Bestellungen
Innerhalb der folgenden Abfrage werden bestellbezogene Notizen abgefragt, welches nach Bestellung im Backend abgeändert werden können:

VARIABLE
{if $orderObject}{$orderObject->getOrderInfo('notes')}{/if}

	

Gesamtgewicht des Warenkorbes

Gesamtgewicht des Warenkorbes
Bei einer Bestellung wird das Gesamtgewicht des Warenkorbes als Bestellinformation erfasst. In der Rechnungsvorlage kann diese Information wie folgt abgerufen werden:

VARIABLE
{$orderInfo.weight}

	

Ausgabe der Kundennummer

Ausgabe der Kundennummer
Um die Kundennummer in der Rechnung abzufragen benötigen Sie folgende Abfrage:

{if $orderObject && $orderObject->getCustomerUser()}
{$orderObject->getCustomerUser()->get('customer_user_kundennummer')}
{/if}


	

Zusatzfelder vom Dienstleister für die Bestellung

Zusatzfelder vom Dienstleister für die Bestellung
{if isset($cart[item]['serviceProvider'])}
    <ul>
    {foreach from=$cart[item]['serviceProvider']->additionalFields item=additionalField}
        <li>{$additionalField->name}: {$additionalField->value}</li>
    {/foreach}
    </ul>
{/if}
	

Budget

Budget
Budget vor Bestellung
{$orderData.order_BudgetVor}

verwendetes Budget:
{$orderData.order_BudgetBuchung}

Budget nach der Bestellung
{$orderData.order_BudgetBuchungNach}	

Guthaben

Budget
{foreach from=$orderObject->getOrderCart() item=item key=cartId}
        {if $item->get('aid')>0}
...
        {/if}

        {if $item->get('type') == 12}
            <tr>
                <td colspan="8"><hr class="separator" /></td>
            </tr>
            <tr>
                <td colspan="4"></td>
                <td>{$item->get('s_desc')}</td>
                <td>{$item->get('s_qty')} Stück</td>
                <td></td>
                <td class="text-right">{($item->get('s_ntotal'))|string_format:"%.2f"} EUR</td>
            </tr>
        {/if}
{/foreach}

Handlingpauschale

Budget
{foreach from=$orderObject->getOrderCart() item=item key=cartId}
        {if $item->get('aid')>0}
...
        {/if}

        {if $item->get('type') == 3}
            <tr>
                <td colspan="8"><hr class="separator" /></td>
            </tr>
            <tr>
                <td colspan="4"></td>
                <td>{$item->get('s_desc')}</td>
                <td>{$item->get('s_qty')} Stück</td>
                <td></td>
                <td class="text-right">{($item->get('s_ntotal')/100)|string_format:"%.2f"} EUR</td>
            </tr>
        {/if}
{/foreach}

Vorlage für Rechnungserstellung

Bei Klick auf "Vorlage laden" werden die Standardeinstellungen für "Vorlage für Rechnung", "Styles für Rechnung" sowie "Seitenränder" geladen. Durch betätigen des "Speichern"-Buttons werden die Einstellungen übernommen.


Vorschau personalisierter Artikel ( erste Seite )

Vorschau
{foreach from=$orderObject->getOrderCart() item=item key=cartId}
	<img src="{$cart[$cartId]['previewArticleImagePath']}">
{/foreach}


Datumformat

Das Datumformat wird in der Vorlage nach dem Muster DD.MM.YYYY ausgegeben.

Format
{$orderObject->get('date_of_invoice')|date_format:"%d.%m.%Y"}

Folgende Möglichkeiten gibt es im Format

%a - abgekürzter Name des Wochentages, abhängig von der gesetzten Umgebung
%A - ausgeschriebener Name des Wochentages, abhängig von der gesetzten Umgebung
%b - abgekürzter Name des Monats, abhängig von der gesetzten Umgebung
%B - ausgeschriebener Name des Monats, abhängig von der gesetzten Umgebung
%c - Wiedergabewerte für Datum und Zeit, abhängig von der gesetzten Umgebung
%C - Jahrhundert (Jahr geteilt durch 100, gekürzt auf Integer, Wertebereich 00 bis 99)
%d - Tag des Monats als Zahl (Bereich 00 bis 31)
%D - so wie %m/%d/%y
%e - Tag des Monats als Dezimal-Wert, einstelligen Werten wird ein Leerzeichen voran gestellt (Wertebereich Ž 0Ž bis Ž31Ž)
%g - wie %G, aber ohne Jahrhundert.
%G - Das vierstellige Jahr entsprechend der ISO Wochennummer (siehe %V). Das gleiche Format und der gleiche Wert wie bei %Y. Besonderheit: entspricht die ISO Wochennummer dem vorhergehenden oder folgenden Jahr, wird dieses Jahr verwendet.
%h - so wie %b
%H - Stunde als Zahl im 24-Stunden-Format (Bereich 00 bis 23)
%I - Stunde als Zahl im 12-Stunden-Format (Bereich 01 bis 12)
%j - Tag des Jahres als Zahl (Bereich 001 bis 366)
%m - Monat als Zahl (Bereich 01 bis 12)
%M - Minute als Dezimal-Wert
%n - neue Zeile
%p - entweder `am' oder `pm' (abhängig von der gesetzten Umgebung) oder die entsprechenden Zeichenketten der gesetzten Umgebung
%r - Zeit im Format a.m. oder p.m.
%R - Zeit in der 24-Stunden-Formatierung
%S - Sekunden als Dezimal-Wert
%t - Tabulator
%T - aktuelle Zeit, genau wie %H:%M:%S
%u - Tag der Woche als Dezimal-Wert [1,7], dabei ist 1 der Montag.
%U - Nummer der Woche des aktuellen Jahres als Dezimal-Wert, beginnend mit dem ersten Sonntag als erstem Tag der ersten Woche.
%V - Kalenderwoche (nach ISO 8601:1988) des aktuellen Jahres. Als Dezimal-Zahl mit dem Wertebereich 01 bis 53, wobei die Woche 01 die erste Woche mit mindestens 4 Tagen im aktuellen Jahr ist. Die Woche beginnt montags (nicht sonntags). (Benutzen Sie %G or %g für die Jahreskomponente, die der Wochennummer für den gegebenen Timestamp entspricht.)
%w - Wochentag als Dezimal-Wert, Sonntag ist 0
%W - Nummer der Woche des aktuellen Jahres, beginnend mit dem ersten Montag als erstem Tag der ersten Woche.
%x - bevorzugte Datumswiedergabe (ohne Zeit), abhängig von der gesetzten Umgebung.
%X - bevorzugte Zeitwiedergabe (ohne Datum), abhängig von der gesetzten Umgebung.
%y - Jahr als 2-stellige-Zahl (Bereich 00 bis 99)
%Y - Jahr als 4-stellige-Zahl inklusive des Jahrhunderts
%Z - Zeitzone, Name oder eine Abkürzung
%% - ein %-Zeichen

Zusatzfelder (Produkte > Zusatzfelder)
Bei einer Bestellung werden die Zusatzfelder unter "Produkte > Zusatzfelder" innerhalb des Warenkorbes als zusätzliche Bestellinformation bereitgestellt. In der Rechnungsvorlage kann diese Information wie folgt abgerufen werden:

{foreach key=key item=item from=$cart}
   {if $item.attributes.attr1.value}
      {$item.attributes.attr1.label}:{$item.attributes.attr1.value}<br>
   {/if}
{/foreach}

oder

{foreach key=key item=item from=$orderObject->getOrderCart()}
   {if $item->get('aid')>0}
      {foreach key=attributeKey item=attribute from=$item->getArticle()->getAttributes(true)}
         Attribut Index: {$attributeKey}<br>
         Attribut Label: {$attribute.label}<br>
         Attribut Wert: {$attribute.value}<br>
         <hr>
      {/foreach}
   {/if} 
{/foreach}