Individuelle Versandkosten pro Artikel

Hallo! Ich habe eine Standardversandart hinterlegt und möchte nun einzelne Artikel davon ausschließen und eigene Versandkosten vergeben. Dabei bin ich streng nach diesem Wiki-Eintrag vorgegangen: http://community.shopware.com/Versandko … l_699.html Doch leider ist es so, dass nun ALLE Artikel mit einem individuellen Wert ausgestattet sein müssen und nicht nur einzeln. Wie kann ich das realisieren, dass alle Artikel der Standardversandart gehorchen und nur einzelne Artikel (dort wo das Feld attr4 ausgefüllt ist), der individuellen Berechnung? Besten Dank

Hallo, prinzipiell musst du da noch eine IF-Abfrage drumherum machen. Aber wie genau möchtest du es denn haben? Gibt ja mehrere Denkbare Lösungen: - Pauschale pro Artikel + Individuelle Versandkosten - Pauschale pro Bestellung + Individuelle Versandkosten - nur Individuelle Versandkosten (falls mind. 1 individuell ist) Grüße Moritz

Hallo Moritz, - Für alle Artikel, für die individuelle Versandkosten gesetzt sind: Nur diese individuellen Versandkosten - Für alle anderen Artikel: Berechnung nach der Standardversandart (nach Gewicht) Grüße Rainer

Hallo, warum machst du dann nicht einfach für die Artikel mit Attribut eine Aufschlag-Versandregel? Also du machst einfach eine pauschalen Versandkosten für alle Artikel (bei Individuellen können die ja ruhig 0 sein) und machst dann für die individuellen Versandartikel eine Aufschlag-Regel die genauso aussieht wie deine bisherige Versandart. Grüße Moritz

[quote]Also du machst einfach eine pauschalen Versandkosten für alle Artikel (bei Individuellen können die ja ruhig 0 sein) und machst dann für die individuellen Versandartikel eine Aufschlag-Regel die genauso aussieht wie deine bisherige Versandart.[/quote] Könntest Du das bitte kurz präzisieren? Ich verstehe nicht ganz, was meine Anforderung mit Aufschlägen zu tun hat. Ich mache nochmals ein Beispiel: STANDARDVERSANDART 0kg bis 4,99kg: 10€ 5kg bis beliebig: 20€ INDIVIDUELLE VERSANDKOSTEN: Artikel X: 30€ Nun soll Artikel X Versandkosten von 30€ haben (unabhängig vom Gewicht). Und Artikel Y mit 3kg soll 10€ haben und Artikel Z mit 10kg soll 20€ haben.

Hallo, ich würde das folgendermaßen lösen: (1) Artikel-Freitextfelder erstellen („Einstellungen“ -> „Grundeinstellungen“ -> „Artikel“ -> „Artikel-Freitextfelder“): ein Freitextfeld mit Typ „boolean“ für Artikel mit gesonderten Versandkosten (z.B. 30 Euro) erstellen (attr4) (2) Versandkosten-Modul anpassen („Einstellungen“ -> „Grundeinstellungen“ -> „Storefront“ -> „Versandkosten-Modul“): bei der „erweiterten SQL-Abfrage“ folgenden Inhalt anfügen: , MAX(at.attr4=„true“) as gesonderteVersandkosten (3) Versandkosten erstellen („Einstellungen“ -> „Versandkosten“): Eine Versandkostenart mit „0 bis beliebig“, Versandkosten von „30“ und im Reiter „Erweiterte Einstellungen“ bei „Eigene Bedingungen“ als Inhalt „gesonderteVersandkosten“. Eine Versandkostenart mit den Gewichtsangaben (Versandkostenberechnung nach: Gewicht) „0 bis 4,99“ 10, von „5 bis beliebig“ 20 und im Reiter „Erweiterte Einstellungen“ bei „Eigene Bedingungen“ als Inhalt „!gesonderteVersandkosten“. So könntest du auf jeden Fall schonmal bestimmen, das der eine Artikel immer die 30 Euro Versandkosten hat, andere Artikel die Versandkosten nach dem Gewicht. Oder soll jeder Artikel für sich selbst eigene Versandkosten haben? Beste Grüße Sebastian

Hallo Sebastian, Danke für Deine klasse Antwort. Optimal wäre es nun natürlich, jedem Artikel bei Bedarf individuelle Versandkosten mitzugeben, also nicht zwingend 30 Euro. Kann man nicht irgendwie den Boolean direkt durch die Höhe der Versandkosten ersetzen und dies in der erweiterten SQL-Abfrage mit einbeziehen? Beste Grüße und Danke Rainer

[quote=“RainerF”]Hallo Sebastian, Danke für Deine klasse Antwort. Optimal wäre es nun natürlich, jedem Artikel bei Bedarf individuelle Versandkosten mitzugeben, also nicht zwingend 30 Euro. Kann man nicht irgendwie den Boolean direkt durch die Höhe der Versandkosten ersetzen und dies in der erweiterten SQL-Abfrage mit einbeziehen? Beste Grüße und Danke Rainer[/quote] Hallo Rainer, ich würde dann lieber 2 Freitextfelder erstellen, damit man nicht mal versehentlich einen Versandkostenwert einträgt und er dann Versandkosten berechnet, wo er es nicht sollte. Natürlich kannst du auch einfach ein zweites Freitextfeld “gesonderte Versandkosten in Euro” erstellen (attr5) und dort immer individuell pro Artikel die Versandkosten eingeben (mit Punkt als Trennzeichen). In den Versandkosten müsstest du dann im Reiter “Erweiterte Einstellungen” bei “Eigene Bedingungen” als Inhalt “IF(gesonderteVersandkosten,SUM(at.attr5*b.quantity),(d.weight*b.quantity))” eintragen. Wäre also der Haken bei “gesonderten Versandkosten” gesetzt, nimmt er als Versandkosten pro Artikel den hinterlegten Wert beim Artikel, sonst nimmt er den Preis aus den Gewichtsangaben aus dem Reiter “Versandkosten”. Beste Grüße Sebastian

Hallo Sebastian, herzlichen Dank für Deine ausführliche Antworten. Erste Tests haben ergeben, dass das Ganze so nicht funktioniert, denn man kann pro Warenkorb ja nur eine der beiden Versandarten auswählen. Wenn ich aber im Warenkorb einen Artikel habe, dessen Versandkosten nach der Gewichtsstaffelung berechnet werden soll und gleichzeitig einen anderen Artikel, der individuelle Versandkosten haben soll, dann schlagen die beiden Versandarten ja fehl, da nur maximal eine ausgewählt werden kann. Ich müsste es also alles über eine einzige Versandart lösen, oder liege ich hier falsch? Nach ersten Tests mit dem Feld “eigene Berechnung” bin ich überhaupt nicht zu Recht gekommen. Beispielsweise greift ein (d.weight*b.quantity) nur immer für den ersten Artikel im Warenkorb. Wenn ich dessen Anzahl auf 2 hochstelle, erhöhen sich die Versandkosten. Wenn ich beim zweiten Artikel im Warenkorb die Anzahl hochstelle, ändern sich die Versandkosten nicht. Kann man nicht alles irgendwie innerhalb einer Zeile “eigene Berechnung” abwickeln? Also z.B. in Pseudocode IF(attr5 != “”,attr5, IF(weight < 3,2.99, IF(weight < 6,4.99, …)))

[quote=„RainerF“]Hallo Sebastian, herzlichen Dank für Deine ausführliche Antworten. Erste Tests haben ergeben, dass das Ganze so nicht funktioniert, denn man kann pro Warenkorb ja nur eine der beiden Versandarten auswählen. Wenn ich aber im Warenkorb einen Artikel habe, dessen Versandkosten nach der Gewichtsstaffelung berechnet werden soll und gleichzeitig einen anderen Artikel, der individuelle Versandkosten haben soll, dann schlagen die beiden Versandarten ja fehl, da nur maximal eine ausgewählt werden kann. Ich müsste es also alles über eine einzige Versandart lösen, oder liege ich hier falsch? Nach ersten Tests mit dem Feld „eigene Berechnung“ bin ich überhaupt nicht zu Recht gekommen. Beispielsweise greift ein (d.weight*b.quantity) nur immer für den ersten Artikel im Warenkorb. Wenn ich dessen Anzahl auf 2 hochstelle, erhöhen sich die Versandkosten. Wenn ich beim zweiten Artikel im Warenkorb die Anzahl hochstelle, ändern sich die Versandkosten nicht. Kann man nicht alles irgendwie innerhalb einer Zeile „eigene Berechnung“ abwickeln? Also z.B. in Pseudocode IF(attr5 != „“,attr5, IF(weight < 3,2.99, IF(weight < 6,4.99, …)))[/quote] Hallo Rainer, soweit mir bekannt ist, ist es bei Shopware überhaupt nicht möglich, dass jeder Warenkorb-Artikel eine eigene Versandkosten-Art erhalten kann bzw. eine Bestellung mehrere Versandkosten-Arten (Ich wüsste aber auch keinen anderen Shop, wo das überhaupt gehen sollte). Anhand der Bedingungen wählt er dann die Versandkosten-Art aus, die passt. Du müsstest dir also eine Bedingung bauen, die deinen Fall komplett abdeckt - die dürfte dann wahrscheinlich ziemlich viel Verschachtelungen haben und ich wüsste gar nicht, ob dies überhaupt möglich wäre, weil er ja bei den Versandkosten einzeln durch jeden Warenkorbartikel anhand der Bedingung durchgeht und nicht irgendwelche Versandkosten separat summiert/summieren kann. Beste Grüße Sebastian

Hallo Sebastian, vielen Dank für Deine Antwort. Was spricht gegen meine naive Lösung IF(attr5 != „“,attr5, IF(weight < 3,2.99, IF(weight < 6,4.99, …))) Beste Grüße R

Ich habe es nun hinbekommen! Dabei habe ich die komplette Gewichtsstaffelung innerhalb der eigenen Berechnung abgewickelt: SUM( IF(at.attr5 != '', at.attr5\*b.quantity, IF(d.weight \< 3, 4.99\*b.quantity, IF(d.weight \< 5, 6.90\*b.quantity, IF(d.weight \< 10, 9.50\*b.quantity, IF(d.weight \< 15, 10.90\*b.quantity, IF(d.weight \< 20, 12.90\*b.quantity, IF(d.weight \< 31, 17.90\*b.quantity, IF(d.weight \< 40, 49.90\*b.quantity, (49.90+(0.59\*(d.weight-40)))\*b.quantity )))))))) ) Hat ein Artikel individuelle Versandkosten im Freitextfeld attr5 hinterlegt, werden diese genommen. Ansonsten greift die individuelle Gewichtsfunktion. Funktioniert einwandfrei! Herzlichen Dank an Sebastian an dieser Stelle, der mich auf den richtigen Weg gebracht hat.

[quote=„RainerF“]Ich habe es nun hinbekommen! Dabei habe ich die komplette Gewichtsstaffelung innerhalb der eigenen Berechnung abgewickelt: SUM( IF(at.attr5 != '', at.attr5\*b.quantity, IF(d.weight \< 3, 4.99\*b.quantity, IF(d.weight \< 5, 6.90\*b.quantity, IF(d.weight \< 10, 9.50\*b.quantity, IF(d.weight \< 15, 10.90\*b.quantity, IF(d.weight \< 20, 12.90\*b.quantity, IF(d.weight \< 31, 17.90\*b.quantity, IF(d.weight \< 40, 49.90\*b.quantity, (49.90+(0.59\*(d.weight-40)))\*b.quantity )))))))) ) Hat ein Artikel individuelle Versandkosten im Freitextfeld attr5 hinterlegt, werden diese genommen. Ansonsten greift die individuelle Gewichtsfunktion. Funktioniert einwandfrei! Herzlichen Dank an Sebastian an dieser Stelle, der mich auf den richtigen Weg gebracht hat.[/quote] Hallo Rainer, das freut mich. Genauso so meinte ich das, es wird wohl auf eine einzige Bedingung mit ziemlich vielen Verschachtelungen (If-Abfragen) hinauslaufen. Du kannst ja mal ein „Danke abgegeben“ und den Thread den Präfix „[GELÖST]“ geben. Beste Grüße Sebastian

1 „Gefällt mir“

Hi ich weiss hole ein treade aus dem grab heraus aber kann ich auch für jeden einzelnen artikel versand fetlegen ???

Ja, das macht ebendiese Funktion oben (Zeile 1, IF(at.attr5 != ‘’, at.attr5*b.quantity)

Und wo füge ich das bitte ein ?

Versandkosten >  Reiter “Erweiterte Einstellungen” > “Eigene Bedingungen”.

Ok, habe es hinbekomen :smiley:

War nicht schwer nur kann ich auch diese Verasndkosten im Fronted anzeigen ???

Jup, entweder direkt im Template bei den Produktdetails (hier einfach attr5 z.B. auslesen). Oder eben im Warenkorb

wie muss ich das genau machen ???