Attributfeld auf Belegen ausgeben

Hi,

ich versuche gerade ein artikelabhängiges Freitextfeld (attr12) auf der Rechnung auszugeben. Dazu gibt es hiereigentlich eine gute Doku, allerdings will das nicht so ganz und es wird einfach nichts auf der Rechnung ausgegeben.  Undecided

In der Anleitung hängt man sich an die if Abfrage der Versandkosten, diese sind bei mir allerdings für Deutschland immer bei 0 € , dementsperchend wird da schon mal nichts auf der Rechnung ausgegeben. Ich habe aber auch einmal Versandkosten erstelllt, mein attr12 wird dennoch nicht angezeigt. In den Einstellungen unter Shops ist mein eigenes Dokumenten Template ausgewählt, was auch funktioniert, da ich mir auf der Rechnung bereits eine abweichende Lieferadresse ausgeben lasse.

Mein Code sieht nun 1zu1 so aus wie in der Doku beschrieben, halt nur auf attr12 anstelle von attr5 angepasst:

 

{block name="document_index_table_name"}
			
			{if $position.name == 'Versandkosten'}
				{s name="DocumentIndexPositionNameShippingCosts"}{$position.name}{/s}
			{else}
				{s name="DocumentIndexPositionNameDefault"}{$position.name|nl2br|wordwrap:65:"\n"}{/s}{$position.attr12}
			{/if}

Hat dies irgendjemand bereits erfolgreich umgesetzt und hat einen Tipp für mich? Oder kennt jemand zufällig ein passendes Plugin?

Danke
Daniel

Was und wo willst Du denn ausgeben lassen? Das ist ja ein Artikel-Attribut und da müsstest Du beim Artikel in das Attributsfeld was reinschreiben damit es ausgegeben wird. Ich habe das für Zubehör. Einige Artikel von mir beinhalten Zubehör, welches ich auf der Rechnung unter der Artikelbeschreibung ausgebe.

Ich habe das so:

{block name="document_index_table_quantity"}
	
	{if $position.name == 'Versandkosten'}
		{s name="DocumentIndexPositionNameShippingCosts"}{$position.name}{/s}
	{else}
		{s name="DocumentIndexPositionNameDefault"}{$position.name|nl2br}{/s}
		{$position.attr14}
	{/if}
	
{/block}

 

@artep schrieb:

Was und wo willst Du denn ausgeben lassen? Das ist ja ein Artikel-Attribut und da müsstest Du beim Artikel in das Attributsfeld was reinschreiben damit es ausgegeben wird. Ich habe das für Zubehör. Einige Artikel von mir beinhalten Zubehör, welches ich auf der Rechnung unter der Artikelbeschreibung ausgebe.

Ich habe das so:

{block name=„document_index_table_quantity“}

{if $position.name == ‚Versandkosten‘}
{s name=„DocumentIndexPositionNameShippingCosts“}{$position.name}{/s}
{else}
{s name=„DocumentIndexPositionNameDefault“}{$position.name|nl2br}{/s}
{$position.attr14}
{/if}

{/block}

 

Hi @artep

danke. Genau so ungefähr benötige ich das auch. Zwar nicht für Zubehör aber für zusätzliche Infos bei einigen Artikeln um die Bestellung bearbeiten zu können. Diese möchte ich also wie im Wiki beschrieben mittels attribute unter der Artikelbezeichnung ausgeben. Von mir aus könnte das ganze auch unten auf der Rechnung stehen, sieht zwar weniger professionell aus, aber Hauptsache es ist erstmal drauf.

Freitextfeld (attr12) ist angelegt sowie aktiv und wird auch korrekt beim Artikel angezeigt und ist natürlich entsprechend gefüllt. Wird aber leider nicht auf der Rechnung ausgegeben. Wenn ich den Code von dir einfüge, wird mir einfach nur der Artikelname doppelt, nebeneinender angezeigt.  Undecided

Guckst du dir nur die Belegvorschau in den Einstellungen an? Dort haben die Beispiel Daten keine Attribute.

Ansonsten sieht es eigtl alles richtig aus. Was mich allerdings stutzig macht ist, dass du in der Spalte Menge den Artikelnamen ausgiebst und diesen dann als Default Wert für einen Textbaustein schreibst?!?

@arnebecker schrieb:

Guckst du dir nur die Belegvorschau in den Einstellungen an? Dort haben die Beispiel Daten keine Attribute.

Ansonsten sieht es eigtl alles richtig aus. Was mich allerdings stutzig macht ist, dass du in der Spalte Menge den Artikelnamen ausgiebst und diesen dann als Default Wert für einen Textbaustein schreibst?!?

Ja die das ganze schaue ich mir über die Dokumenten Vorschau an. Hatte aber probeweise auch mal eine Rechnung erzeugt um das ganze zu prüfen. Der Code ist ja von artep, den hatte ich jetzt nur 1zu1 ausprobiert. Anfangs mit dem Code aus dem Shopware Wiki. Da wird mir dann aber einfach nichts ausgegeben. 

Zusammengefasst möchte ich eigentlich nur ein Freitextfeld bei mir attr12 auf der Rechnung ausgeben. Vorzugsweise gleich oben unter dem Artikelnamen (wie im Shopware Wiki auch), kann sonst aber zur Not auch bspw. unten auf der Rechnung stehen. Das Freitextfeld ist natürlich für die Tabelle  s_articles_attributes  angelegt und auch beim Testartikel gefüllt.

Wie Du es eingesetzt hast, ist eigentlich schon richtig. Verstehe auch nicht warum das nicht ausgegeben wird. 

Vielleicht mal den Cache leeren? Ich glaube die Vorschau arbeitet ohne Cache und das richtige Erzeugen auf dem Dokumente Reiter mit Cache.

@arnebecker schrieb:

Vielleicht mal den Cache leeren? Ich glaube die Vorschau arbeitet ohne Cache und das richtige Erzeugen auf dem Dokumente Reiter mit Cache.

Danke aber Cache leeren ist schon in´s Blut übergegangen.  Smile Weiß momentan auch noch nicht woran es liegt. Werde es später mal mit der original index.tpl aus dem Bare Theme probieren, in meiner sind noch 1-2 weitere Anpassungen, evtl. kommt sich da etwas in die Quere.

@trixx schrieb:

Danke aber Cache leeren ist schon in´s Blut übergegangen.  Smile 

Sorry, aus eigener Erfahrung weis ich, das man diese Frage nie oft genug gestellen kann. Ich erwische mich auf öfter dabei es zu vergessen :wink:

1 „Gefällt mir“

Also selbst mit der original index.tpl aus dem Bare Ordner und der Anpassung aus dem Wiki, funktioniert es nicht. Das olle Freitexfeld wird einfach nicht ausgegeben. Meine Änderung für die Ausgabe einer abweichenden Lieferadresse funktioniert allerdings einwandfrei, also es wird auch auf den richtigen Ordner zugegriffen. 

Anpassung aus dem Wiki, tut sich überhaupt nichts. Bei dem Code von artep wird mir der Artikelname einfach nur doppelt ausgegeben. Jetzt weiß ich auch nicht mehr weiter, ich denke ich poste es mal im Job Bereich. Plugin habe ich leider kein passendes gefunden, falls jemand eins kennt bitte her damit. 

Was hast Du denn bei dem Freitextfeld bei Spaltentyp angelegt? Ich habe bei mir Größerer Text [Text] stehen. Vielleicht liegt es daran??

Ich hatte erst “Einfacher Text” wie im Wiki beschrieben, aktuell habe ich “Großer Text”, funzt aber beides nicht. Vielleicht liegt es ja auch an meinem Theme? Nutze das Shopware Fashion Theme. Aber eigentlich dürfte dann meine Änderung bzgl. abweichender Lieferadrese auch nicht funktionieren, wobei da aber auch kein Freitextfeld ausgegeben wird. Ich habe echt kein Plan mehr… Scheint auch wirklich kein Plugin zu geben was Freitextfelder auf Dokumenten ausgibt bzw. evtl. eine komplette Gestaltung der Dokumente zulässt. Vielleicht liest ja Programmierer mit.  Wearing-Sunglasses

Mhhh… das ist ech komisch. Versuche doch mal ein anderes Attribut. Ich hatte das auch mal, dass eine Nr. nicht wollte, dann habe ich ein Anderes genommen und das ging dann. Ein Versuch ist es wert.  Wink Und auch mal alle Caches löschen,Theme kompilieren, Backend neu laden.

@artep schrieb:

Mhhh… das ist ech komisch. Versuche doch mal ein anderes Attribut. Ich hatte das auch mal, dass eine Nr. nicht wollte, dann habe ich ein Anderes genommen und das ging dann. Ein Versuch ist es wert.  Wink Und auch mal alle Caches löschen,Theme kompilieren, Backend neu laden.

Das werde ich morgen echt mal machen, dank dir! Das wär’s ja, aber manchmal sind es ja die einfachsten Dinge.

Shopware Cache + Browser Cache leere ich immer nach jeder Änderung. Theme wird auch immer kompiliert, daran liegt nicht. 

@artep‍ der Tipp war Goldwert!!! Ein anderes Attribute Feld funktioniert.

Jetzt gibt es allerdings noch ein Problem. Getestet habe ich es mit attr5, das ist bei mir aber schon für den Artikel Titel Tag reserviert, der Titel Tag wird dann auf der Rechnung ausgegeben. Dann habe ich es mit attr14 und attr10 probiert, wird wieder nichts ausgegeben, ebenso wie beim vorherigen testen mit attr12. Das ist doch mehr als merkwürdig!? Kann da  Shopwarevielleicht was zu sagen? Ist die Ausgabe der Attribute auf der Rechnung nur bei bestimmten Atributten möglich oder ist das nen Bug/Feature? Beim Beispiel in der Doku wird es auch mit attr5 gemacht, muss aber doch auch mit anderen gehen?

Hi, na das ist ja schon mal was. Hast Du denn bei den anderen Attributen wenn Du die eingesetzt hast vorher alle Fenster zugemacht Backend mal neu geladen und dann die Bestellübersicht wieder neu aufgerufen? Ich hatte da auch Probleme mit und musste bei den Tests immer wieder alle Fenster schließen Cache leeren Backend neu laden und wieder aufrufen. Dann ging es plötzlich. Da ist SW manchmal sehr eigen.  Wink

1 „Gefällt mir“

@artep schrieb:

Hi, na das ist ja schon mal was. Hast Du denn bei den anderen Attributen wenn Du die eingesetzt hast vorher alle Fenster zugemacht Backend mal neu geladen und dann die Bestellübersicht wieder neu aufgerufen? Ich hatte da auch Probleme mit und musste bei den Tests immer wieder alle Fenster schließen Cache leeren Backend neu laden und wieder aufrufen. Dann ging es plötzlich. Da ist SW manchmal sehr eigen. 

Hi,

ja das mache ich nach jeder Änderung. Alle Fenster schließen, dann kompletten Cache löschen + Browser Cache, dann Backend neuladen. Alle probierten Freitextfelder werden nicht auf der Rechnung ausgegeben, außer attr5. Denke nicht dass es nen Cache Problem ist, denn sobald ich wieder attr5 hinterlege funzt es. Bzw. werden Fehler auch immer sofort ausgegeben wenn man einfach mal ne } o.Ä. weglässt, also das ganze greift auch sofort. Attr5 ist aber leider wie gesagt für den Titel Tag der Artikel reserviert, sonst würde ich das einfach nehmen. Das ganze ist aber mehr als verhext, dass muss doch auch mit den anderen Freitextfeldern gehen bzw. geht es bei dir ja bspw. auch mit attr14. Sehe da auch keinen Unterschied bei den Einstellungen. Werde gleich oder morgen nochmal die Änderung mit einem anderen Freitexfeld vornehmen und dann das ganze mit nem anderen Browser testen. Sonst weiß ich auch nicht mehr weiter, der Code war und ist ja von Anfang an korrekt eingebaut.

Am einfachsten kann man testen, indem man in einer Bestellung die Vorschau aufruft und den Tab immer wieder mit F5 aktualisiert. Man muss halt nach jeder Änderung im Dokumententemplate den Cache leeren.

Das hier habe ich getestet:

{$position.attr1}

Das funktioniert einwandfrei.

Wenn man nun an die selbst angelegten will, kann man folgendes machen:

{if $position.modus == 0}{$position.meta.attributes.core->get('Feldname')}{/if}

Wichtig ist hier das IF - da sonst bei nicht-Artikeln eine Exeption entsteht (bspw. Zahlungsarten Aufschlag).

 

 

@Moritz Naczenski schrieb:

Am einfachsten kann man testen, indem man in einer Bestellung die Vorschau aufruft und den Tab immer wieder mit F5 aktualisiert. Man muss halt nach jeder Änderung im Dokumententemplate den Cache leeren.

Das hier habe ich getestet:

{$position.attr1}

Das funktioniert einwandfrei.

Wenn man nun an die selbst angelegten will, kann man folgendes machen:

{if $position.modus == 0}{$position.meta.attributes.core->get(‚Feldname‘)}{/if}

Wichtig ist hier das IF - da sonst bei nicht-Artikeln eine Exeption entsteht (bspw. Zahlungsarten Aufschlag).

 

 

Danke aber auch attr1 funktioniert bei mir nicht. Attr2 auch gleich mal getestet, funktioniert auch nicht. Attr5 ist das einzige was bei mir funktioniert, gibt es doch nicht.  Undecided

Habe auch die Codezeile von dir getestet, funktioniert auch nur mit attr5. Habe eben auch alle Plugins über den Sicherheitsmodus deaktiviert und auf das standard Theme umgestellt, brachte aber auch leider keinen Erfolg. Verstehe ich nicht?

 

Habe jetzt mal direkt in der Datenbanktabelle  s_articles_attributes geschaut. Dort steht bspw. beim erstelten attr12 NULL drin. Beim attr5 ist dort mein Titel Tag zu sehen.

Ich habe ja nicht soviel Plan davon, aber kann es sein dass, obwohl beim Artikel des Feld gefüllt ist, er das nicht in der Datebnak hinterlegt, warum auch immer, und deswegen dann auf den Dokumenten auch nichts ausgegeben wird?