Fehlerhafter Smarty Code

Moin,

für den Artikelexport zu unserem Fulfillment Dienstleister nutzen wir folgenden Code:

nummer;bezeichnung;beschreibung;artikelbarcode_wert;basispreis_basispreis_preis_betrag;steuersatz_prozent;bruttogewicht_(vpe)_gewicht_(kg);einkauf_aktiv;verkauf_aktiv;ursprungsland_laenderkuerzel_(iso-code);zolltarifnummer;abmessung_breite_(cm);abmessung_hoehe_(cm);abmessung_tiefe_(cm);\
{foreach from=$artikelliste item=artikel}

{if $artikel->lagerartikel == 1}
{$artikel->nummer};\
{$artikel->name_de};\
{$artikel->anabregs_text};\
{$artikel->ean};\
;\
{if $artikel->umsatzsteuer == "normal"}19{else}7{/if};\
{$artikel->gewicht};\
;\
;\
{$artikel->herkunftsland};\
{$artikel->zolltarifnummer};\
{$artikel->breite};\
{$artikel->hoehe};\
{$artikel->laenge};\
{/if}\
{/foreach}

Leider erhalten wir pro Artikel mehrere Zeilen. Das Ergebnis sieht dann bspw. so aus:

nummer;bezeichnung;beschreibung;artikelbarcode_wert;basispreis_basispreis_preis_betrag;steuersatz_prozent;bruttogewicht_(vpe)_gewicht_(kg);einkauf_aktiv;verkauf_aktiv;ursprungsland_laenderkuerzel_(iso-code);zolltarifnummer;abmessung_breite_(cm);abmessung_hoehe_(cm);abmessung_tiefe_(cm);
13-1031;Stickerbogen;;4260727061265;;19;0.1;;;DE;48211010;0.00;0.00;0.00;
13-1031;Stickerbogen;;4260727061265;;19;0.1;;;DE;48211010;0.00;0.00;0.00;
13-1031;Stickerbogen;;4260727061265;;19;0.1;;;DE;48211010;0.00;0.00;0.00;
13-1031;Stickerbogen;;4260727061265;;19;0.1;;;DE;48211010;0.00;0.00;0.00;
13-1031;Stickerbogen;;4260727061265;;19;0.1;;;DE;48211010;0.00;0.00;0.00;
13-1031;Stickerbogen;;4260727061265;;19;0.1;;;DE;48211010;0.00;0.00;0.00;
13-1031;Stickerbogen;;4260727061265;;19;0.1;;;DE;48211010;0.00;0.00;0.00;

Kann mir jemand erklären, warum hier mehrmals der Artikel aufgeführt wird und wie man das verhindern kann?

Hey,

wie oft ist der Artikel bestellt worden?

Nur einmal oder 7 mal?

Viele Grüße

Felix

Moin @kakacommerce ,

Ich vermute, dass es an den \ liegt.

Probiere es doch mal hiermit

nummer;bezeichnung;beschreibung;artikelbarcode_wert;basispreis_basispreis_preis_betrag;steuersatz_prozent;bruttogewicht_(vpe)gewicht(kg);einkauf_aktiv;verkauf_aktiv;ursprungsland_laenderkuerzel_(iso-code);zolltarifnummer;abmessung_breite_(cm);abmessung_hoehe_(cm);abmessung_tiefe_(cm)
{foreach from=$artikelliste item=artikel}
{if $artikel->lagerartikel == 1}
{$artikel->nummer};
{$artikel->name_de};
{$artikel->anabregs_text};
{$artikel->ean};
;
{if $artikel->umsatzsteuer == „normal“}19{else}7{/if};
{$artikel->gewicht};
;
;
{$artikel->herkunftsland};
{$artikel->zolltarifnummer};
{$artikel->breite};
{$artikel->hoehe};
{$artikel->laenge}
{/if}
{/foreach}

Hey @Max_P , danke für die Antwort. Das führt zu folgendem Ergebnis:

nummer;bezeichnung;beschreibung;artikelbarcode_wert;basispreis_basispreis_preis_betrag;steuersatz_prozent;bruttogewicht_(vpe)_gewicht_(kg);einkauf_aktiv;verkauf_aktiv;ursprungsland_laenderkuerzel_(iso-code);zolltarifnummer;abmessung_breite_(cm);abmessung_hoehe_(cm);abmessung_tiefe_(cm)
13-1031;
Stickerbogen;
;
4260727061265;
;
19;
0.1;
;
;
DE;
48211010;
0.00;
0.00;
0.00
13-1031;
Stickerbogen;
;
4260727061265;
;
19;
0.1;
;
;
DE;
48211010;
0.00;
0.00;
0.00
13-1031;
Stickerbogen;
;
4260727061265;
;
19;
0.1;
;
;
DE;
48211010;
0.00;
0.00;
0.00
13-1031;
Stickerbogen;
;
4260727061265;
;
19;
0.1;
;
;
DE;
48211010;
0.00;
0.00;
0.00
13-1031;
Stickerbogen;
;
4260727061265;
;
19;
0.1;
;
;
DE;
48211010;
0.00;
0.00;
0.00
13-1031;
Stickerbogen;
;
4260727061265;
;
19;
0.1;
;
;
DE;
48211010;
0.00;
0.00;
0.00
13-1031;
Stickerbogen;
;
4260727061265;
;
19;
0.1;
;
;
DE;
48211010;
0.00;
0.00;
0.00

Es wiederholt sich und die Daten werden untereinander in eine Spalte geschrieben. Ziel ist es die Daten einmal in einer Zeile mit Semikolon getrennt zu setzen.

@Felix_Wessely der CSV Export ist ein Artikelexport und unabhängig von Bestellungen.

Hallo @kakacommerce ,

du möchtest, dass pro Datensatz keine eigene Zeile geschrieben wird, sondern das alle Datensätze nacheinander in einer einzigen Zeile geschrieben werden?

Oder hast du das Problem, dass der einzelne Artikel unnötiger Weise mehrfach in der CSV als eigene Zeile angegeben wird, obwohl dieser bereits ausgegeben wurde?

Vg

Patrick

Moin @Patrick_Ackermann ,

letzteres. Ich möchte, dass jeder Artikel nur einmal ausgegeben wird.

Hi @kakacommerce ,

das ist dann eigentlich das normale Standardverhalten.

Kann ich bei mir so nicht nachvollziehen…

Läuft es bei dir auf Vorlage XML oder Vorlage CSV?

Vg

Patrick

Moin Patrick,

das ist auf CSV

Liebe Grüße

Probiere es mal mit XML.

Habe schon öfters die Erfahrung gemacht, dass es verschiedene Verhaltensweise bei den beiden Einstellungen gibt.

Es spielt aber keine Rolle, ob du jetzt CSV im XML-Template nutzt oder andersherum. Denn der Inhalt bzw. die Dateiendung kannst du ja selber festlegen.

Vg

Patrick

Moin Patrick,

das führt leider zum gleichen Ergebnis. Was mir noch aufgefallen ist, wenn ich es mit anderen Artikeln teste, führt das zu unterschiedlich häufigen Wiederholungen. Es scheint also als würde das Verhalten durch irgendein Datensatz ausgelöst zu werden. Ich verstehe aber nicht, welcher das ist.

Hi @kakacommerce ,

die Vervielfachung könnte auch durch mehrere Lagerplätze je Artikel oder ähnliches kommen. Man weiß nicht eindeutig, worauf das Template im Übertragung-Modul tatsächlich zurückgreift. Mit SQL könnte man das über GROUP BY oder DISTINCT eindeutig machen.

Aber andere Frage: abgesehen davon, dass es überflüssige Datensätze sind und nicht schön aussieht, ist es für den Fulfiller nicht irrelevant, wenn es eh ein CSV-Import ist? Denn da würden die Daten sich einfach mit den gleichen Werten überschreiben, also unkritisch.

Alternativ besser direkt auf die neue API gehen, ist zukunftssicherer.

BG, Daniel

Hier kann ich @Daniel_Schmidtchen nur zustimmen.

Die API ist der beste und zukunftssichere Weg.