Zugriff auf Bilder für Rechnungsausgabe

Hallo Community :slight_smile:

 

Ich versuche vergeblich auf de Thumb Bilder bei der Rechnungsgenerierung zuzugreifen.

Ich habe bisher folgendes Probiert, die Rechnungsadtei die die Rechnungen generiert liegt in meinem responsive Template unter documents/index.tpl wenn ich änderungen vornehme in der Zeile

               {block name="document_index_table_pos"}
                        
                                {$number+1} 

wird mir nur ein rotes x ausgegeben defektes Bild… Wenn ich direkt link zu einem thumb eintrage im img tag, wird ein Bild angezeigt. Was mache ich bei der syntax falsch? Bzw. wie binde ich richtig die kleinen thumbs in die Rechnungs index.tpl ein?

Hallo,

was ist denn der Inhalt von {$details.image.src.0}? Ich würde mir das einfach mal auf einem Testbeleg ausgeben lassen. Dann sieht man vielleicht ob was bei der Variable nicht passt. Also einfach die Variable ohne image-tag in die tpl-Datei schreiben.

Moritz

Hi :slight_smile: Danke dir, habe ich ausprobiert und zum testen Testbeleg erstellen lassen.

Bei meiner Version zeigt er so an:

 

Bei der Variable in klammern:

            {block name="document_index_table_pos"}
                        
                                {$number+1}{$details.image.src.1}

 

Ohne image tag bleibt’s leer:

Hallo,

dann ist die Variable leer. Hast du dir mal das Artikel-Array angesehen ob die Bilder dort überhaupt zur Verfügung stehen?
Am besten machst du mal ein {$details|print_r} und schaust dir mal die Ausgabe an. Gibt es da überhaupt einen Teil mit “image”?

Moritz

Wo kann ich mir das ansehen? Für die 4er gibts eine ausführliche Documentation. Für die 5er finde ich keine was das Varianten Thema anspricht. In der 4er hatte ich es damals gelöst aber der alte Code taugt hier nicht.

 

habe es mit der print probiert:

                                {$number+1}{$details|print_r}

bleibt leer das feld.

 

ich bin von der Bestellbestätigungsmail ausgegangen (unter HTML Code des Email Vorlagenmanagers), habe ich den part mit dem bilderzugriff übernommen und dachte es würde bei den Rechnungsbeleg erstellung auch gelten/funktionieren.

Hi,

auf den PDF’s steht kein Image zur Verfügung. 
Du kannst dir die zur Verfüng stehenden Sachen mit {$position|print_r} ausgeben lassen.

Dort steht folgendes zur Verfügung.

Array (
 [id] => 209
 [orderID] => 59
 [ordernumber] => 20003
 [articleID] => 178
 [articleordernumber] => SW10178
 [price] => 19.95
 [quantity] => 1
 [name] => Strandtuch "Ibiza"
 [status] => 0
 [shipped] => 0
 [shippedgroup] => 0
 [releasedate] => 0000-00-00
 [modus] => 0
 [esdarticle] => 0
 [taxID] => 1
 [tax_rate] => 19
 [config] =>
 [articleTaxID] => 1
 [attr1] =>
 [attr2] =>
 [attr3] =>
 [attr4] =>
 [attr5] =>
 [attr6] =>
 [attr7] =>
 [attr8] =>
 [attr9] =>
 [attr10] =>
 [attr11] =>
 [attr12] =>
 [attr13] =>
 [attr14] =>
 [attr15] =>
 [attr16] =>
 [attr17] =>
 [attr18] =>
 [attr19] =>
 [attr20] =>
 [attributes] => Array
 (
 [id] => 9
 [detailID] => 209
 [attribute1] =>
 [attribute2] =>
 [attribute3] =>
 [attribute4] =>
 [attribute5] =>
 [attribute6] =>
 )
 [tax] => 19
 [netto] => 16.764705882353
 [amount_netto] => 16.76
 [amount] => 19.95
 [meta] => )

Gruß

1 Like

Danke dir! Ach mist, das heißt ich hab keine Chance da ein Artikelbild sich ausgeben zu lassen? Gibts keinen andere Möglichkeit? Schade :frowning:

Hallo,

keine Möglichkeit ist auch falsch - “von Hause aus” gibt es keine, das stimmt.

Du könntest dir aber ein Backend - Plugin schreiben (lassen), welches eine Funktion ansteuert, dir vor dem Dokumentenaufruf ausgeführt wird und die URL der Bilder dem Dokument verfügbar macht, sodass diese genutzt werden könnten.

Beste Grüße

Sebastian

Puhh ok, ist doch eine größere Hürde als ich dachte. Schade wäre einfach extrem praktisch für den Versand wenn die Bildhcen auch zusehen sind. Danke für die Hilfe und Hinweis!

Hallo,

da ich die artikelbilder auch dringend auf Rechnung und Lieferschein bräuchte wollte ich nur mal kurz in die Runde fragen obs dazu mittlerweile ein Plugin gibt?

viele Grüße 

matthias

 

Hallo

Ist zwar schon ein Weilchen her und vielleicht gibts ja unterdessen auch eine viel bessere Lösung, aber ich dachte ich poste das trotzdem. Also, ich konnte diese Sache folgendermassen lösen.

  1. Alle Arikelbilder sind nach der Arikelnummer benannt. Also Arikelnummer: 569874 = Artkelbildname: 569874.jpg

  2. Folgender Code bei index.tpl ergänzt:
    Leere Spalte in der Titelzeile hinzugefügt nach dem {block name=“document_index_table_head_nr”}…{/block} Block:

    {block name=“document_index_table_head_image”}

    {/block}

Zusätzliche Spalte in den Positionszeilen nach der Arikelnummer also den Block {block name=“document_index_table_nr”}…{/block} eingefügt:

{block name="document_index_table_image"}
 {if $position.name == 'Versandkosten'}
  
   
  
 {else}
  
   
  
 {/if} 
{/block}

Die “if Versandskosten Abfrage” habe ich hinzugefügt, damit kein Fehlerbild erstellt wird, da ja Versandskosten keine Arikelnummer haben. Mann kann aber auch bestimmt ein zusätzliches Bild, z.B. ein Kuvert hinzufügen, welches einfach im media/images Ordner hinterlegt wird. Mir wäre lieber gewesen, dass auf das kleinste Thumb Bild zugegriffen wird, anstatt auf das hochauflösende. Bin aber Neuling bei Shopware und habe das noch nicht hingekriegt.

Zudem hätte ich lieber ein Overwrite für die index.tpl erstellt, funktioniert aber irgendwie nicht, obwohl ich die Dokumentation sorgfältig (glaube ich zumindest) durchgelesen habe.  Wink

Ich habe mir das mal eben angesehen, aber für die Rechnung sind die Bilder in der aktuellen 5.3 aber auf jeden Fall verfügbar. Ich hab das so gemacht:

{extends file="parent:documents/index.tpl"}

{block name="document_index_table_head_nr"}
    
        {s name="DocumentIndexHeadArticleImage"}Artikelbild{/s}
    
    {$smarty.block.parent}
{/block}

{block name="document_index_table_nr"}
    
        {if $position.modus != 0}

        {else}
            
        {/if}
    
    {$smarty.block.parent}
{/block}

Die Rechnung sieht danach so aus:

Sollte also auch im Core schon klappen.
Bin mir jetzt nicht sicher, ob sich in den letzten Versionen was geändert hat.

4 Likes

@Moritz Naczenski schrieb:

Ich habe mir das mal eben angesehen, aber für die Rechnung sind die Bilder in der aktuellen 5.3 aber auf jeden Fall verfügbar. Ich hab das so gemacht:

Sollte also auch im Core schon klappen.

Bin mir jetzt nicht sicher, ob sich in den letzten Versionen was geändert hat. 

Kann es sein, dass sich das in der Version 5.5 wieder geändert hat? Ich bekomme da wieder nur fehlende Bilder (also das rote x).

 

Und weiß einer, wie ich mir ausgeben lassen kann, was bei der Seite alles anliegt? {debug} zeigt keine Wirkung bzw. bekomme ich dann ein leeres PDF angezeigt. 

Mach ein |print_r hinter das Array und lass dir den Inhalt auf der Seite direkt ausgeben.

{debug} kann ja nicht funktionieren, da du ja nicht das von smarty gerenderte HTML siehst, sondern die Ausgabe die MPDF ausspuckt. Du kannst da höchstens direkt in PHP mitloggen was für Daten du zur Verfügung hast oder halt per Print_r an MPDF direkt mitübergeben.

Aber die Bilder sollten weiterhin funktionieren. Ein x ist bspw. häufig der Fall wenn es einen htaccess Schutz gibt und das Bild nicht abgerufen werden kann. Kannst dir ja den Inhalt der Variable ausgeben lassen.

 

1 Like

Hi. Danke für die Info. Ein print_r gibt mir folgenden Code aus:

Array ( [id] => 209 [orderID] => 59 [ordernumber] => 20003 [articleID] => 178 [articleordernumber] => SW10178 [price] => 19.95 [quantity] => 1 [name] => Strandtuch "Ibiza" [status] => 0 [shipped] => 0 [shippedgroup] => 0 [releasedate] => 0000-00-00 [modus] => 0 [esdarticle] => 0 [taxID] => 1 [tax_rate] => 19 [config] => [articleTaxID] => 1 [attr1] => [attr2] => [attr3] => [attr4] => [attr5] => [attr6] => [attr7] => [attr8] => [attr9] => [attr10] => [attr11] => [attr12] => [attr13] => [attr14] => [attr15] => [attr16] => [attr17] => [attr18] => [attr19] => [attr20] => [attributes] => Array ( [id] => 9 [detailID] => 209 [attribute1] => [attribute2] => [attribute3] => [attribute4] => [attribute5] => [attribute6] => ) [tax] => 19 [netto] => 16.764705882353 [amount_netto] => 16.76 [amount] => 19.95 [meta] => ) 1

Bei meta steht nur eine 1. Bei allen anderen Abschnitten auch jeweils nur eine 1. Also zum Beispiel:

{$position.meta.image.thumbnails[0].source|print_r}

Ich bin jetzt eher der Frontender als der Programmierer. Ich steh da irgendwie auf dem Schlauch.

Da auch die Variable {$position.meta.image.thumbnails[0].source} kein Bild oder keinen Pfad oder sonstwas ausgibt, kann ich auch nicht testen, ob es da irgendeine Zugriffsbeschränkung gibt. Es kommt dabei rein garnichts raus.
Ich hab es auch schon mit einer “echten” Rechnung versucht, da bei den Beispieldatensätzen ja evt. kein Bild hinterlegt ist. Aber da komt genausowenig raus. Also nichts.

Wenn es Meta nicht gibt, ist der Artikel in der Regel inaktiv oder gelöscht. Vielleicht liegt es daran?

1 Like

@Moritz Naczenski schrieb:

Wenn es Meta nicht gibt, ist der Artikel in der Regel inaktiv oder gelöscht. Vielleicht liegt es daran?

Tausend Dank. Das war genau mein Fehler. Im Testdokument gibt es kein Vorschaubild. Deswegen kommt auch keins raus. Soweit, so klar. Aber die „echte“ Bestellung, mit der ich getestet habe, enthielt nur einen inaktiven Artikel. Also eigentlich alles richtig gemacht, nur in zwei Fallen reingefallen.

Es ging also von Anfang an.

 

Danke. 

{$position.meta.image.thumbnails.0.source} 

verweist leider nciht auf das Bild der Variante.

 

Bei den Emails wird das richtige Bild angezeigt, da habe ich im Template:

{$position|print_r} wird bei mir im PDF nicht ungerendert, also als PlainText ausgegeben.

Wie kommen ich an die Unterelemente ran, bzw. wie an das richtige Artikelbild?