Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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 die die Mustervorlage und speichern Sie Ihre Änderungen ab. Die Rechnung ist somit aktiviert und wird an den jeweils eingestellten Stellen angezeigt/ausgegeben.


Inhalt

Variablen

Folgende Variablen stehen in der Rechnungsvorlage zur Verfügung:

...

VariableTypBeschreibung
{$CurrencySymbol} 
string
Währungssymbol
{$cart} 
array
Warenkorb
{$serviceprovider}
array
Dienstleister
{$PaymentId}
int
Zahlungsart-Id
{$PaymentMethod}
string
Bezeichung der Zahlungsart
{$Payment}
array
Zahlungsart (Live)
{$arr_paymentfelder}
array
Zusatzfelder Zahlungsart
{$orderTotalShipping}
float
Summe der Bestellung inkl. Versandkosten
{$orderTotalWithoutShipping}
float
Summe der Bestellung exkl. Versandkosten
{$orderTotal}
float
Summe der Bestellung exkl. Versandkosten
{$Versandkosten}
array
Versandkosten
{$Total}
string
Rechnungsbetrag
{$NetTotal}
string
Rechnungsbetrag
{$VAT}
string
MwSt.
{$Kunde} 
array
Daten des Benutzers (live)
{$Kundendaten} 
array
Daten des Benutzers (live)
{$Bestelldaten} 
array
Bestelldaten
{$Firma1}
string
Lieferadresse: Firma
{$InvoiceCompany}
string
Lieferadresse: Firma
{$LieferadresseFirma}
string
Lieferadresse: Firma
{$Firma2}
string
Lieferadresse: Firma 2
{$InvoiceCompany2}
string
Lieferadresse: Firma 2
{$Ansprechpartnter}
string
Lieferadresse: Ansprechpartner
{$Strasse}
string
Lieferadresse: Straße
{$PLZ}
string
Lieferadresse: PLZ
{$Ort}
string
Lieferadresse: Ort
{$Kostenstelle}
string
Kostenstelle
{$RechnungsadresseFirma}
string
Rechnungsadresse: Firma
{$RechnungsadresseFirma2}
string
Rechnungsadresse: Firma 2
{$RechnungsadresseAnsprechpartnter}
string
Rechnungsadresse: Ansprechpartner
{$RechnungsadresseStrasse}
string
Rechnungsadresse: Straße
{$RechnungsadressePLZ}
string
Rechnungsadresse: PLZ
{$RechnungsadresseOrt}
string
Rechnungsadresse: Ort
{$RechnungsadresseCountry}
string
Rechnungsadresse: Land
{$Bestellcode}
string
Auftragscode (berücksichtigt aus dem individuellen Code)
{$Rechungscode}
string
6-stelliger Auftragscode
{$ustid}
string
Umsatzsteuer-Id
{$ShopURL}
string
Shop URL
{$orderObject}
object
Bestelldaten 
{$cart} (Version 1)arrayBestellpositionen
{$orderItems} (Version 2)arrayBestellpositionen
{$orderItem} (Version 2)arrayBestellposition (pro Posten)



Beispiele


Codeblock
languageactionscript3
titleBestellcode
collapsetrue
Für eine Bestellung kann der Bestellcode in die XML-Vorlage wie folgt eingesetzt werden. Diese Variable unterstützt auch die Funktion dynamischer Bestellcode:

VARIABLE
<OrderCode>{$orderObject->getOrderCode()}</OrderCode>

	

...

Codeblock
languageactionscript3
titleBenutzergruppe der BestellungNur freigegebene Positionen berücksichtigen
collapsetrue
FürWird einedie BestellungVariable kann die Benutzergruppe über das Bestelldaten-Objekt abgefragt werden. 
Hinweis: Mit dieser Variablen erfolgt eine Live-Abfrage auf die Benutzergruppen-Tabelle, sollte die Benutzergruppe entfernt worden sein, gibt die Variable "false" zurück.

VARIABLE:
{if $orderObject->getCustomerUser() && $orderObject->getCustomerUser()->getBudgetgroup()}
<BezeichnungBenutzergruppe>{$orderObject->getCustomerUser()->getBudgetgroup()->get('bezeichnung')}</BezeichnungBenutzergruppe>
<KundennummerBenutzergruppe>{$orderObject->getCustomerUser()->getBudgetgroup()->get('kundennummer')}</KundennummerBenutzergruppe>
{/if} 

	
Codeblock
languageactionscript3
titlePersonalisierungsfelder
collapsetrue
Innerhalb der folgenden Abfrage werden die Warenkorbpositionen durchlaufen:
{foreach key=key item=item from=$orderObject->getOrderCart()}
{/foreach}

setzen Sie die Abfrage für die Personalisierungsfelder ein.
{if $item->getPersData()}
  	{foreach key=name item=value from=$item->getPersData()}
    	{$name}: {$value}<br>
  	{/foreach}
{/if}

Beispiel:
{foreach key=key item=item from=$orderObject->getOrderCart()}
	{if $item->getPersData()}
  		{foreach key=name item=value from=$item->getPersData()}
    		{$name}: {$value}<br>
  		{/foreach}
	{/if}
{/foreach}

	
Codeblock
languageactionscript3
titleDateien eines Bestellpostens
collapsetrue
Innerhalb der folgenden Abfrage werden die Dateien einer Warenkorbposition durchlaufen:
{foreach from=$orderCartObject->getFiles() item="file"}
{/foreach}

Beispiel:
{foreach key=key item=item from=$orderObject->getOrderCart()} 
	<files>
	{foreach from=$item->getFiles() item="file"}
		<file>
			<id>{$file.name}</id>
			<name>{$file.name}</name>
            <filename>{$file.filename}</filename>
			<filenameRenamed>{$file.filenameRenamed}</filenameRenamed>
			<path>{$file.path}</path>
            <size>{$file.size}</size>
 			<type>{$file.path}</type>
		</file>
	{/foreach}
	</files>
{/foreach} 






{$cart} verwendet, muss nichts beachtet werden, da diese die abgelehnten Artikel gar nicht berücksichtigt.
{foreach key=key item=item from=$cart}
	{if $item['aid'] > 0}
		Artikelbezeichnung: {$item['s_desc']}
	{/if}
{/foreach}


Bei Verwendung von $orderObject->getOrderCart(), werden grundsätzlich alle Positionen durchlaufen.Dabei müssen die Positionen mit dem nicht gewollten Status übersprungen werden.

{foreach key=key item=item from=$orderObject->getOrderCart()}
	{if $item->get('status') != 'OK' && $item->get('status') != 'PACKED' && $item->get('status') != 'SHIPPED'}
		{continue}
	{/if}

	{if $item->get('aid') > 0}
		Artikelbezeichnung: {$item->get('s_desc')}
	{/if}
{/foreach}


Codeblock
languageactionscript3
titleBenutzergruppe der Bestellung
collapsetrue
Für eine Bestellung kann die Benutzergruppe über das Bestelldaten-Objekt abgefragt werden. 
Hinweis: Mit dieser Variablen erfolgt eine Live-Abfrage auf die Benutzergruppen-Tabelle, sollte die Benutzergruppe entfernt worden sein, gibt die Variable "false" zurück.

VARIABLE:
{if $orderObject->getCustomerUser() && $orderObject->getCustomerUser()->getBudgetgroup()}
<BezeichnungBenutzergruppe>{$orderObject->getCustomerUser()->getBudgetgroup()->get('bezeichnung')}</BezeichnungBenutzergruppe>
<KundennummerBenutzergruppe>{$orderObject->getCustomerUser()->getBudgetgroup()->get('kundennummer')}</KundennummerBenutzergruppe>
{/if} 

	


Codeblock
languageactionscript3
titlePersonalisierungsfelder
collapsetrue
Innerhalb der folgenden Abfrage werden die Warenkorbpositionen durchlaufen:
{foreach key=key item=item from=$orderObject->getOrderCart()}
{/foreach}

setzen Sie die Abfrage für die Personalisierungsfelder ein.
{if $item->getPersData()}
  	{foreach key=name item=value from=$item->getPersData()}
    	{$name}: {$value}<br>
  	{/foreach}
{/if}

Beispiel:
{foreach key=key item=item from=$orderObject->getOrderCart()}
	{if $item->getPersData()}
  		{foreach key=name item=value from=$item->getPersData()}
    		{$name}: {$value}<br>
  		{/foreach}
	{/if}
{/foreach}

	


Codeblock
languageactionscript3
titleID der Preisstaffel (Versandkosten)Attribute / Zusatzfelder
collapsetrue
DieInnerhalb Preisstaffel-IDder derfolgenden VersandkostenAbfrage lässtwerden sichdie mitWarenkorbpositionen derdurchlaufen:
folgenden Variable ausgeben:
{$Versandkosten.preisstaffelId}
Codeblock
languageactionscript3
titleName des Freigebers
collapsetrue
Der Name des Freigebers kann innerhalb einer Schleife der Positionen im Warenkorb wie folgt ausgegeben werden:
{foreach from=$cart item=orderItem}
	{$orderItem.releaseRecipientName}
{/foreach}

Beispiele XML-Export:

Codeblock
titleXML
linenumberstrue
collapsetrue
{if $orderObject->getPayment()}
{assign value=$orderObject->getPayment()->get('payment_desc') var="payment_desc"}
{assign value=$orderObject->getPayment()->get('price') var="payment_price"}
{/if}

{$exportColumns = array()}{foreach from=$cart item=orderItem}{$exportColumns[] = [
        'ID der Bestellposition' => $orderItem.id,
        'Lieferanschrift Unternehmen' => $orderObject->get('order_DeliverAdressCompany'),{section name=item loop=$cart}
{/section}

setzen Sie die Abfrage für die Zusatzfelder / Attribute ein.
{if $cart[item].attributes}
  	{foreach key=name item=value from=$cart[item].attributes}
    	{$name}: {$value}<br>
  	{/foreach}
{/if}
	


Codeblock
languageactionscript3
titleDateien eines Bestellpostens
collapsetrue
Innerhalb der folgenden Abfrage werden die Dateien einer Warenkorbposition durchlaufen:
{foreach from=$orderCartObject->getFiles() item="file"}
{/foreach}

Beispiel:
{foreach key=key item=item from=$orderObject->getOrderCart()} 
	<files>
	{foreach from=$item->getFiles() item="file"}
		<file>
			<id>{$file.name}</id>
			<name>{$file.name}</name>
            <filename>{$file.filename}</filename>
			<filenameRenamed>{$file.filenameRenamed}</filenameRenamed>
			<path>{$file.path}</path>
             'Lieferanschrift Unternehmen 2' => $orderObject->get('order_DeliverAdressCompany2'),<size>{$file.size}</size>
 			<type>{$file.path}</type>
		</file>
	{/foreach}
	</files>
{/foreach} 







Codeblock
languageactionscript3
titleID der Preisstaffel (Versandkosten)
collapsetrue
Die Preisstaffel-ID 'Lieferanschriftder Anschrift'Versandkosten => $orderObject->get('order_DeliverAdressName'),
        'Lieferanschrift Ansprechpartner Vorname' => $orderObject->get('order_DeliverAdressFirstname'),
        'Lieferanschrift Ansprechpartner Nachname' => $orderObject->get('order_DeliverAdressLastname'),
        'Lieferanschrift Ansprechpartner Straße' => $orderObject->get('order_DeliverAdressStreet'),
        'Lieferanschrift Ansprechpartner PLZ' => $orderObject->get('order_DeliverAdressZIP'),
        'Lieferanschrift Ansprechpartner Stadt' => $orderObject->get('order_DeliverAdressTown'),
        'Lieferanschrift Ansprechpartner E - Mail' => $orderObject->get('order_DeliverAdressEMail'),
        'Artikelnummer' => $orderItem.article_desc_intern,
        'stueckzahl' => $orderItem.s_qty,lässt sich mit der folgenden Variable ausgeben:
{$Versandkosten.preisstaffelId}


Codeblock
languageactionscript3
titleName des Freigebers
collapsetrue
Der Name des Freigebers kann innerhalb einer Schleife der Positionen im Warenkorb wie folgt ausgegeben werden:
{foreach from=$cart item=orderItem}
	{$orderItem.releaseRecipientName}
{/foreach}


Codeblock
languageactionscript3
titleID der dynamischen Optionen
collapsetrue
Die ID der dynamischen Optionen kann innerhalb einer Schleife der Positionen im Warenkorb wie folgt ausgegeben werden:
{assign var="dynamicOptions" value=$item->getInfo('dynamicOptions')|json_decode}
{foreach from=$dynamicOptions item=option}
<DynamicOption>
	<DynamicOptionId>{$option->dynamic_option_id}</DynamicOptionId>
	<DynamicOptionValueId>{$option->dynamic_option_value_id}</DynamicOptionValueId>
	<AdditionalId>{$option->dynamicOptionAdditionalId}</AdditionalId>
	<AdditionalValueId>{$option->dynamicOptionValueAdditionalId}</AdditionalValueId>
</DynamicOption>
{/foreach}


Beispiele CSV-Export:

Codeblock
titleCSV
linenumberstrue
collapsetrue
{if $orderObject && $orderObject->getPayment()}
{assign value=$orderObject->getPayment()->get('payment_desc') var="payment_desc"}
{assign value=$orderObject->getPayment()->get('price') var="payment_price"}
{/if}

{$exportColumns = array()}{foreach from=$cart item=orderItem}{$exportColumns[] = [
        'aussendienstnummerID der Bestellposition' => 0$orderItem.id,
        'pdf_nameLieferanschrift Unternehmen' => $orderItem.filename$orderObject->get('order_DeliverAdressCompany'),
        'auftrags_datumLieferanschrift Unternehmen 2' => $orderObject->get('cdateorder_DeliverAdressCompany2'),
        'kunde'Lieferanschrift Anschrift' => $orderObject->getCustomer()->get('customerorder_companyDeliverAdressName'),
        'kundenidLieferanschrift Ansprechpartner Vorname' => $orderObject->getCustomer()->get('idorder_DeliverAdressFirstname'),
        'artikelidLieferanschrift Ansprechpartner Nachname' => $orderItem.aid$orderObject->get('order_DeliverAdressLastname'),
        'InvoiceAdressCompany1Lieferanschrift Ansprechpartner Straße' => $orderObject->get('InvoiceAdressCompany1order_DeliverAdressStreet'),
        'InvoiceAdressCompany2Lieferanschrift Ansprechpartner PLZ' => $orderObject->get('InvoiceAdressCompany2order_DeliverAdressZIP'),
        'InvoiceAdressNameLieferanschrift Ansprechpartner Stadt' => $orderObject->get('InvoiceAdressNameorder_DeliverAdressTown'),
        'InvoiceAdressStreetLieferanschrift Ansprechpartner E - Mail' => $orderObject->get('InvoiceAdressStreetorder_DeliverAdressEMail'),
        'InvoiceAdressZIPArtikelnummer' => $orderObject->get('InvoiceAdressZIP')$orderItem.article_desc_intern,
        'InvoiceAdressTownstueckzahl' => $orderObject->get('InvoiceAdressTown')$orderItem.s_qty,
        'preis_nettoaussendienstnummer' => $orderItem.s_total0,
        'mwstpdf_name' => $orderItem.s_mwstfilename,
        'persdataauftrags_datum' => $orderItem.persdata$orderObject->get('cdate'),
        'bestellerkunde' => $orderObject->getCustomer()->get('order_customer_user_idcompany'),
        'md5kundenid' => $orderItem.md5,
        'auftragsbezeichnung' => $orderObject->get('order_code$orderObject->getCustomer()->get('id'),
        'articletypartikelid' => $orderItem.article_typeaid,
        'sap_numberInvoiceAdressCompany1' => $orderItem.article_sap_nummer$orderObject->get('InvoiceAdressCompany1'),
        'costcenterInvoiceAdressCompany2' => $orderObject->getCustomerUser()->get('customer_user_costcenterInvoiceAdressCompany2'),
        'kundennummerInvoiceAdressName' => $orderObject->getCustomerUser>get('InvoiceAdressName'),
        'InvoiceAdressStreet' => $orderObject->get('customer_user_kundennummerInvoiceAdressStreet'),
        'budgetgruppenidInvoiceAdressZIP' => $orderObject->get('order_budgetgruppen_user_idInvoiceAdressZIP'),
        'InvoiceAdressTown' =>     'lieferadresse_ansprechpartner' => $orderObject->get('order_DeliverAdressName'),
        'rechnungsadresse_ansprechpartner' => $orderObject->get('InvoiceAdressName'),
        'zahlungsart' => $payment_desc,
        'zahlungsart_preis' => $payment_price,
        'versandkosten' => $orderObject->get('versandkosten'),
        'remark' => $orderItem.remark,
        'auftragsname' => $orderItem.jobname,$orderObject->get('InvoiceAdressTown'),
        'preis_netto' => $orderItem.s_total,
        'mwst' => $orderItem.s_mwst,
        'persdata' => $orderItem.persdata,
        'besteller' => $orderObject->get('order_customer_user_id'),
        'md5' => $orderItem.md5,
        'auftragsbezeichnung' => $orderObject->get('order_code'),
        'articletyp' => $orderItem.article_type,
        'sap_number' => $orderItem.article_sap_nummer,
        'costcenter' => $orderObject->getCustomerUser()->get('customer_user_costcenter'),
        'kundennummer' => $orderObject->getCustomerUser()->get('customer_user_kundennummer'),
        'budgetgruppenid' => $orderObject->get('order_budgetgruppen_user_id'),
        'lieferadresse_ansprechpartner' => $orderObject->get('order_DeliverAdressName'),
        'rechnungsadresse_ansprechpartner' => $orderObject->get('InvoiceAdressName'),
        'zahlungsart' => $payment_desc,
        'zahlungsart_preis' => $payment_price,
        'versandkosten' => $orderObject->get('versandkosten'),
        'remark' => $orderItem.remark,
        'auftragsname' => $orderItem.jobname,
        'costcenterCart' => $orderItem.cstctr,
        'price_total' => $orderObject->get('brutto'),
        'country_code' => $orderObject->get('order_DeliverAdressCountryCode')
    ]}{/foreach}{array_keys($exportColumns[0])|implode:';'}
{foreach from=$exportColumns item=row}{$row|implode:';'}
{/foreach}


Codeblock
languageactionscript3
title Adressliste für Liefer- und Rechnungsdaten - AddressListForCart
collapsetrue
{assign value=$orderObject->getOrderInfo('AddressListForCart-delivery_address_list') var="deliveryAddressListValues"}
{if !is_array($deliveryAddressListValues)}
    {assign value=[] var="deliveryAddressListValues"}
{/if}
{assign value=$orderObject->getOrderInfo('AddressListForCart-invoice_address_list') var="invoiceAddressListValues"}
{if !is_array($invoiceAddressListValues)}
    {assign value=[] var="invoiceAddressListValues"}
{/if}

...

Rechnungsadresseliste Adressnummer: {if isset($invoiceAddressListValues['Adressnummer'])}{$invoiceAddressListValues['Adressnummer']}{/if}
Lieferadresseliste Kundennummer: {if isset($deliveryAddressListValues['Kundennummer'])}{$deliveryAddressListValues['Kundennummer']}{/if}


Codeblock
languageactionscript3
titlezipDownloadUrl
collapsetrue
{*Version 1*}
{if $cart}
    {foreach key=key item=item from=$cart}
        'costcenterCart' => $orderItem.cstctr,{if $item.zipDownloadUrl}
        'price_total' => $orderObject->get('brutto'),     <url>{$item.zipDownloadUrl}</url>
   'country_code' => $orderObject->get('order_DeliverAdressCountryCode')     ]}{/foreach}{array_keys($exportColumns[0])|implode:';'}
{foreach from=$exportColumns item=row}{$row|implode:';'if}
    {/foreach}
{/foreach}
Codeblock
languageactionscript3
titlezipDownloadUrl
collapsetrue
if}

{*Version 12*}
{if $cart$orderItems}
    {foreach key=key item=item from=$cart$orderItems}
        {if $item.orderItem.zipDownloadUrl}
            <url>{$item.orderItem.zipDownloadUrl}</url>
        {/if}else}
            <nourl {/foreach}
{/if}

{*Version 2*}
{if $orderItemsitems/>
        {/if}
    {/foreach key=key item=item from=$orderItems}
   }
{else} {*Posten bezogener Export*}
    {if $item.orderItem$orderItem.zipDownloadUrl}

           <url>{$item$orderItem.orderItem.zipDownloadUrl}</url>
   
    {else}
           
<nourl items/>       <nourl item {/if}>
    {/foreachif}
{else} {*Posten bezogener Export*}
    {if $orderItem.zipDownloadUrl}
        <url>{$orderItem.zipDownloadUrl}</url>
    {else}
        <nourl item />
    /if}


Codeblock
languageactionscript3
firstline0
titleReseller Artikel Informationen
collapsetrue
{foreach key=key item=value from=$orderItem.info}
	{if $key === 'printwarehouseArticleSettings'}
		{assign var=object value=$value|json_decode:1}
		Preis: {$object.price|number_format:2:',':'.'} €<br>
		{foreach key=name item=setting from=$object.settings}
			{$setting['name']}:{$setting['value']}<br>
		{/foreach}
	{/if}
{/ifforeach}