Abweichende Lieferadresse auf pdf-Rechnung

Habe gleiches Problem. Aber selbst mit der Anpassung

 

{if $User.$shippingaddress.additional_address_line1}{$User.$shippingaddress.additional_address_line1}{/if}
					 {if $User.$shippingaddress.additional_address_line2}{$User.$shippingaddress.additional_address_line2}{/if}

klappt es nicht es erschein enen zwei leerzeilen wenn die Rechnung erstellt wird… Hat jemand noch eine idee!? Meine Theme.php sieht wie folgt aus:

 

Muss ich hier explizit noch angeben wovon die Document templates vererbt werden!? mir scheint es so als würde es nicht greifen…

Meine Güte regen mich diese be****** Dokumente auf!

Seit nunmehr 10 Monaten versuche ich darin Anpassungen für die Rechnung vorzunehmen - er klappt nicht.

Egal ob ich es direkt in der index.tpl beim Bare Template ändere oder auch eine eigene index.tpl im eigenen Template erstelle und dort änderungen vornehmen.

Wenn ich ich z.B. einfach folgende Zeile (ca. 130)

{s name="DocumentIndexInvoiceNumber"}Rechnung Nr. {$Document.id}{/s}

in der index.tpl einfach ändere in:

test01 {s name="DocumentIndexInvoiceNumber"}Rechnung Nr. {$Document.id}{/s}

Dann wird das “test01” nicht im PDF Dokument angezeigt.

Cache vom Shop und Browser habe ich immer geleert.

Da muss doch noch irgendwo was dazwischenfunken.
Meine Güte bin ich genervt.

Jemand eine Ahnung, warum dies nicht klappt? Danke !

Gruß Daniel

Hi,

hast du auch in den Grundeinstellugen des Shops dein Dokumententemplate auf dein eigenes umgestellt? 

Ich habe im Punkt PDF-Belegerstellung “Rechnung” das Template im Feld Template umgenannt in index_re.tpl.

Habe die index.tpl als Vorlage genommen, umbenannt und in hochgeladen sowohl in:

themes/Frontend/Bare/documents

als auch

themes/Frontend/eigenesTemplate/documents

Aber dann wird gar kein PDF mehr erstellt.

Erhalre die Fehlermeldung:
exception ‘SmartyException’ with message ‘Unable to load template snippet ‘documents/index_re.tpl’’ in /pfad/zumshop/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php:127

Ich habe das Gefühl der sucht bei mir an anderer Stelle nach dem Template.

Gruß Daniel

Moin Zusammen,

ich stand gerade vor dem selben Problem und auch bei mir funktioniert die Templateänderung von Shopware nur teilweise (SW 5.2.3). Gibt es eine abweichende Lieferadresse, so wird diese dann zwar korrekt auf der Rechnung angezeigt, bei Bestellungen bei denen die Rechnungsadresse aber identisch zur Lieferadresse ist, wird dann auf der Rechnung überhaupt keine Adresse mehr angezeigt.

Der Code von @Tanny‍ funktioniert aber bestens!  Thumb-Up Ich habe diesen allerdings an anderer Stelle engefügt, sodass bei abweichender Lieferadresse diese direkt unter der Rechnungsadresse angezeigt wird. Dazu ab ca. Zeile 116 den Code von Tanny direkt nach folgendem Blck enfügen: 

{block name="document_index_address_countryData"}
				    {if $User.$address.state.shortcode}{$User.$address.state.shortcode} - {/if}{$User.$address.country.countryen}
				{/block}

Vielleicht ja noch für den ein oder anderen Interessant! Und wenn  Shopware mitlesen sollte, bitte Jungs und Mädels, das gehört doch in den Core.  Wearing-Sunglasses

Gruß
Daniel

Hallo zusammen, 

der von Shopware bereitgestellte Quellcode für die tpl Files funktioniert einwandfrei (Shopware 5.2.10).
Wenn ihr ein eigenes Theme verwendet, stellt bitte als erstes sicher, dass ihr die Dokumente auch aus dem Documents-Ordner eures Themes ladet. Das stellt ihr über das Backend (Einstellungen/Grundeinstellungen/Shop-Einstellungen/Shops/Dokumenten-Template) ein. Hier muss euer Theme hinterlegt sein. 

A ls nächstes kopiert ihr die original tpl Files von Shopware in euren Theme-Ordner:   /themes/frontend/EUERTHEME/documents/…
Jetzt sucht ihr diese Stelle: 

{block name="document_index_selectAdress"}
 {assign var="address" value="billing"}
{/block}

Wenn ihr gerne beides nebeneinander angezeigt bekommen möchtet, ersetzt ihr diesen Block zum Beispiel mit:

	{block name="document_index_selectAdress"}
					{assign var="shippingaddress" value="shipping"}
					{assign var="billingaddress" value="billing"}
					{/block}
						{if $User.$shippingaddress.street != $User.$billingaddress.street || $User.$shippingaddress.streetnumber != $User.$billingaddress.streetnumber || $User.$shippingaddress.zipcode != $User.$billingaddress.zipcode}
				
 				{s name="difShippingAdress"}Lieferadresse:{/s}
					{$User.$shippingaddress.company}
					{$User.$shippingaddress.firstname} {$User.$shippingaddress.lastname}         
					{$User.$shippingaddress.street} {$User.$shippingaddress.streetnumber}
					{$User.$shippingaddress.zipcode} {$User.$shippingaddress.city}
				{if $User.$shippingaddress.state.shortcode}{$User.$shippingaddress.state.shortcode} - {/if}{$User.$shippingaddress.country.countryen}
				
				{/if}

WICHTIG: Beim testen dürft ihr nicht nur den Unternehmensnamen abändern und Straße oder Hausnummer identisch lassen. Die IF-Abfrage prüft nur ob es Abweichungen von Straße / Hausnummer und/oder PLZ gibt. Trifft eines zu, wird die komplette neue Lieferadresse dargestellt. Wenn man natürlich nur den Unternehmensnamen ändert, zeigt er logischerweise nichtmehr an. Ihr könntet die IF Abfrage jedoch auch um den Unternehmensnamen ergänzen.

 

Für alle denen das autauschen nicht so geheuer ist, hier mein voll funktionsfähiger Head-Bereich (Head_sender) der index.tpl, zum Vergleichen oder kopieren:

				{$Containers.Header_Sender.value}
			
				
				
				
				
				{$User.$address.company}
				{$User.$address.salutation|salutation}
				{if {config name="displayprofiletitle"}}
					{$User.$address.title}
				{/if}
				{$User.$address.firstname} {$User.$address.lastname}
				{$User.$address.street}
				{block name="document_index_address_additionalAddressLines"}
					{if {config name=showAdditionAddressLine1}}
						{$User.$address.additional_address_line1}
					{/if}
					{if {config name=showAdditionAddressLine2}}
						{$User.$address.additional_address_line2}
					{/if}
				{/block}
				{block name="document_index_address_cityZip"}
                    {if {config name=showZipBeforeCity}}
                        {$User.$address.zipcode} {$User.$address.city}
                    {else}
                        {$User.$address.city} {$User.$address.zipcode}
                    {/if}
				{/block}
				{block name="document_index_address_countryData"}
				    {if $User.$address.state.shortcode}{$User.$address.state.shortcode} - {/if}{$User.$address.country.countryen}
				{/block}
				
				
					{block name="document_index_selectAdress"}
					{assign var="shippingaddress" value="shipping"}
					{assign var="billingaddress" value="billing"}
					{/block}
						{if $User.$shippingaddress.street != $User.$billingaddress.street || $User.$shippingaddress.streetnumber != $User.$billingaddress.streetnumber || $User.$shippingaddress.zipcode != $User.$billingaddress.zipcode}
				
 				{s name="difShippingAdress"}Lieferadresse:{/s}
					{$User.$shippingaddress.company}
					{$User.$shippingaddress.firstname} {$User.$shippingaddress.lastname}         
					{$User.$shippingaddress.street} {$User.$shippingaddress.streetnumber}
					{$User.$shippingaddress.zipcode} {$User.$shippingaddress.city}
				{if $User.$shippingaddress.state.shortcode}{$User.$shippingaddress.state.shortcode} - {/if}{$User.$shippingaddress.country.countryen}
				
				{/if}				
			
			
			
			
			
			
		{/if}

 

UPDATE:

Für alle die ihre Abfrage ganz genau haben möchten und die abweichende Lieferadresse auch schon bei einem abweichenden Namen auf der Rechnung ausgeben möchten. Hier habe ich euch die komplette IF-Abfrage um die Elemente „Firmenname / Abteilung / Vorname / Nachname“ erweitert. Wenn eines dieser Elemente von der Rechnungsadresse abweicht wird die abweichende Adresse mit auf der Rechnung ausgegeben:

{block name="document_index_selectAdress"}
					{assign var="shippingaddress" value="shipping"}
					{assign var="billingaddress" value="billing"}
					{/block}
						{if $User.$shippingaddress.street != $User.$billingaddress.street || $User.$shippingaddress.streetnumber != $User.$billingaddress.streetnumber || $User.$shippingaddress.zipcode != $User.$billingaddress.zipcode || $User.$shippingaddress.company != $User.$billingaddress.company || $User.$shippingaddress.department != $User.$billingaddress.department || $User.$shippingaddress.firstname != $User.$billingaddress.firstname || $User.$shippingaddress.lastname != $User.$billingaddress.lastname}
				
 				{s name="difShippingAdress"}Lieferadresse:{/s}
					{$User.$shippingaddress.company}
					{$User.$shippingaddress.firstname} {$User.$shippingaddress.lastname}         
					{$User.$shippingaddress.street} {$User.$shippingaddress.streetnumber}
					{$User.$shippingaddress.zipcode} {$User.$shippingaddress.city}
				{if $User.$shippingaddress.state.shortcode}{$User.$shippingaddress.state.shortcode} - {/if}{$User.$shippingaddress.country.countryen}
				
				{/if}				

 

LG ELL!

PS: Das ganze ist auch updatesicher! 

1 Like

@ELL schrieb:

Hallo zusammen, 

der von Shopware bereitgestellte Quellcode für die tpl Files funktioniert einwandfrei (Shopware 5.2.10).
Wenn ihr ein eigenes Theme verwendet, stellt bitte als erstes sicher, dass ihr die Dokumente auch aus dem Documents-Ordner eures Themes ladet. Das stellt ihr über das Backend (Einstellungen/Grundeinstellungen/Shop-Einstellungen/Shops/Dokumenten-Template) ein. Hier muss euer Theme hinterlegt sein. 

A ls nächstes kopiert ihr die original tpl Files von Shopware in euren Theme-Ordner:   /themes/frontend/EUERTHEME/documents/…
Jetzt sucht ihr diese Stelle: 

{block name=“document_index_selectAdress”}
{assign var=“address” value=“billing”}
{/block}

Wenn ihr gerne beides nebeneinander angezeigt bekommen möchtet, ersetzt ihr diesen Block zum Beispiel mit:

{block name=“document_index_selectAdress”}
{assign var=“shippingaddress” value=“shipping”}
{assign var=“billingaddress” value=“billing”}
{/block}
{if $User.$shippingaddress.street != $User.$billingaddress.street || $User.$shippingaddress.streetnumber != $User.$billingaddress.streetnumber || $User.$shippingaddress.zipcode != $User.$billingaddress.zipcode}

{s name=“difShippingAdress”}Lieferadresse:{/s}
{$User.$shippingaddress.company}
{$User.$shippingaddress.firstname} {$User.$shippingaddress.lastname}
{$User.$shippingaddress.street} {$User.$shippingaddress.streetnumber}
{$User.$shippingaddress.zipcode} {$User.$shippingaddress.city}
{if $User.$shippingaddress.state.shortcode}{$User.$shippingaddress.state.shortcode} - {/if}{$User.$shippingaddress.country.countryen}

{/if}

WICHTIG: Beim testen dürft ihr nicht nur den Unternehmensnamen abändern und Straße oder Hausnummer identisch lassen. Die IF-Abfrage prüft nur ob es Abweichungen von Straße / Hausnummer und/oder PLZ gibt. Trifft eines zu, wird die komplette neue Lieferadresse dargestellt. Wenn man natürlich nur den Unternehmensnamen ändert, zeigt er logischerweise nichtmehr an. Ihr könntet die IF Abfrage jedoch auch um den Unternehmensnamen ergänzen.

 

Für alle denen das autauschen nicht so geheuer ist, hier mein voll funktionsfähiger Head-Bereich (Head_sender) der index.tpl, zum Vergleichen oder kopieren:

{$Containers.Header_Sender.value}

{$User.$address.company}
{$User.$address.salutation|salutation}
{if {config name=“displayprofiletitle”}}
{$User.$address.title}
{/if}
{$User.$address.firstname} {$User.$address.lastname}
{$User.$address.street}
{block name=“document_index_address_additionalAddressLines”}
{if {config name=showAdditionAddressLine1}}
{$User.$address.additional_address_line1}
{/if}
{if {config name=showAdditionAddressLine2}}
{$User.$address.additional_address_line2}
{/if}
{/block}
{block name=“document_index_address_cityZip”}
{if {config name=showZipBeforeCity}}
{$User.$address.zipcode} {$User.$address.city}
{else}
{$User.$address.city} {$User.$address.zipcode}
{/if}
{/block}
{block name=“document_index_address_countryData”}
{if $User.$address.state.shortcode}{$User.$address.state.shortcode} - {/if}{$User.$address.country.countryen}
{/block}

{block name=“document_index_selectAdress”}
{assign var=“shippingaddress” value=“shipping”}
{assign var=“billingaddress” value=“billing”}
{/block}
{if $User.$shippingaddress.street != $User.$billingaddress.street || $User.$shippingaddress.streetnumber != $User.$billingaddress.streetnumber || $User.$shippingaddress.zipcode != $User.$billingaddress.zipcode}

{s name=“difShippingAdress”}Lieferadresse:{/s}
{$User.$shippingaddress.company}
{$User.$shippingaddress.firstname} {$User.$shippingaddress.lastname}
{$User.$shippingaddress.street} {$User.$shippingaddress.streetnumber}
{$User.$shippingaddress.zipcode} {$User.$shippingaddress.city}
{if $User.$shippingaddress.state.shortcode}{$User.$shippingaddress.state.shortcode} - {/if}{$User.$shippingaddress.country.countryen}

{/if}

{/if}

 

UPDATE:

Für alle die ihre Abfrage ganz genau haben möchten und die abweichende Lieferadresse auch schon bei einem abweichenden Namen auf der Rechnung ausgeben möchten. Hier habe ich euch die komplette IF-Abfrage um die Elemente “Firmenname / Abteilung / Vorname / Nachname” erweitert. Wenn eines dieser Elemente von der Rechnungsadresse abweicht wird die abweichende Adresse mit auf der Rechnung ausgegeben:

{block name=“document_index_selectAdress”}
{assign var=“shippingaddress” value=“shipping”}
{assign var=“billingaddress” value=“billing”}
{/block}
{if $User.$shippingaddress.street != $User.$billingaddress.street || $User.$shippingaddress.streetnumber != $User.$billingaddress.streetnumber || $User.$shippingaddress.zipcode != $User.$billingaddress.zipcode || $User.$shippingaddress.company != $User.$billingaddress.company || $User.$shippingaddress.department != $User.$billingaddress.department || $User.$shippingaddress.firstname != $User.$billingaddress.firstname || $User.$shippingaddress.lastname != $User.$billingaddress.lastname}

{s name=“difShippingAdress”}Lieferadresse:{/s}
{$User.$shippingaddress.company}
{$User.$shippingaddress.firstname} {$User.$shippingaddress.lastname}
{$User.$shippingaddress.street} {$User.$shippingaddress.streetnumber}
{$User.$shippingaddress.zipcode} {$User.$shippingaddress.city}
{if $User.$shippingaddress.state.shortcode}{$User.$shippingaddress.state.shortcode} - {/if}{$User.$shippingaddress.country.countryen}

{/if}

 

LG ELL!

PS: Das ganze ist auch updatesicher! 

 

Wenn ich das so wie von dir vorgeschlagen mache wird in den Rechnungen gar keine Adressen ausgegeben, alles nur leer. Wir arbeiten mit dem Standard Shopware-Theme. 

Hallo, das wundert mich aber. Habt ihr irgendwelche Plugins installiert, die auf die Adressenverwaltung von Shopware einfluss nehmen? Adressergänzungen oder ähnliches?

Vielleicht kannst du mal deine komplette index.tpl posten? Dann schau ich bei Gelegenheit mal drüber.

Moin,

wir haben das so in dem letzten Block in der documents/intex.tpl unter gewählte Zahlart drin:

{if $Document.template == "index.tpl"}
		{if $User.shipping.street != $User.billing.street || $User.shipping.streetnumber != $User.billing.streetnumber || $User.shipping.zipcode != $User.billing.zipcode}
		
			
			{s name="difShippingAdress"}Angegebene Lieferadresse:{/s}
			{if $User.shipping.company}{$User.shipping.company}{/if}
			{$User.shipping.firstname} {$User.shipping.lastname}
			{if $User.shipping.additional_address_line1}{$User.shipping.additional_address_line1}{/if}
			{$User.shipping.street} {$User.shipping.streetnumber}
			{$User.shipping.zipcode} {$User.shipping.city}
			{if $User.shipping.state.shortcode}{$User.shipping.state.shortcode} - {/if}{$User.shipping.country.countryen}
			
		
		{/if}
	{/if}

Ist irgendwas an der Lieferanschrift anders wird es ausgegeben, selbst wenn es nur einen Unterschied in Groß und Kleinschreibung gibt oder ein Leerzeichen zuviel, also bei jeder Abweichung! 

1 Like

Hi, möchte mich hier einklinken.

Ich habe die index.tpl in “MeinTemplate” kopiert. Funktioniert auch und wird angesprochen. Alles gut. 

Aber: Jetzt sind alle deutschen Bezeichnungen weg, wie “Kunden-Nr.:” “Best.-Nr.” etc. Die Werte sind alle da aber der Text fehlt überall. 

Muss ich in der index.tpl noch auf irgend eine andere Datei hinweisen, damit die Bezeichnungen wieder da sind? 

Bin voll ratlos. Selbst wenn ich die index.tpl in indexoriginal.tpl im gleichen Bare/documents Verzeichnis nur umbenenne sind alle Bezeichnungen weg.

Was kann ich tun?

LG Werner

Hallo Werner, 

du musst unter Einstellungen / Grundeinstellungen / Shopeinstellungen / Shops / … bei “Dokumenten Template” dein Theme auswählen. Cache komplett leeren und neu generieren. Dann sollte das funktionieren. 

Geb mal kurz Feedback ob das klappt. Ich hatte den Fehler auch und meine das war meine Lösung. :stuck_out_tongue:

VG

Achja, du darfst auch nicht auf die original .tpl Files in Bare oder Responsive verweisen sondern tatsächlich die 4 tpl Files in den neuen Documents Ordner deines Themes kopieren. _gs / _ls / _sr kannst du dann ganz normal wieder von der index abweichen lassen: {extends file=„documents/index.tpl“}.

Da habe ich stundenlang probiert und jetzt habe ich es doch noch hinbekommen. Man muss die Textbausteine auch anpassen. Die Originalen exportieren, in Excel ändern und mit dem neuen Dateinamen wieder hochladen. 

Gelöst!!!

Kann mir jemand erklären, wie ich die Struktur der Rechnung ändern kann?

 

z.B. Header_Box_Bottom Grösse ändern bzw. Position ändern?

Jep, kannst du machen unter: 

Einstellungen / Grundeinstellungen / Shopeinstellungen / PDF-Belegerstellung / bsp Rechnung. 

Dann wählst du Rechts unter „Elemente“ den gewünschten Block (z.B. Header_Box_Bottom) und kannst da unter den Styles deine Formatierungen vornehmen. Du könntest diese auch direkt im Template platzieren, wie es dir bequemer ist. Standard ist hier glaube ich:

font-size:14px;
height: 10mm;

Wenn du die Position ändern möchtest, zum Beispiel weiter hoch oder runter gibt es viele Möglichkeiten das mit CSS Styles zu lösen. Eine variante wäre zum Beispiel:

padding-top: -10mm; 

Natürlich geht das auch mit -left / -right / -bottom. Das ist aber nur eine von vielen Varianten. Du kannst auch mit fixen positions arbeiten. Dazu solltest du dich etwas mit CSS Styles beschäftigen. 

In welcher Datei wird das ganze gespeichert? Ich würde die Anpassungen gerne dort direkt vornehmen.

Hier würde ich mir von Seiten Shopware den festen Einbau der Lieferanschrift in dem Dokumententemplate wünschen, wegen mir auch mir Checkbox als Option, ob die Ausgabe der Lieferanschrift auf dem (Rechnungs)-Dokument gewünscht ist, oder nicht.

Hallo,

welche Textbausteine muss man ändern??

Danke

@concept24 schrieb:

Hallo,

welche Textbausteine muss man ändern??

Danke

Was genau möchtest du jetzt anstellen? Vielleicht kann ich dir weiterhelfen.

danke für die schnelle Antwort, ich wollte auf der Rechnung die Lieferadresse, falls vorhanden, mit angeben.