Versandkostenberechnung mit erweiterten Einstellungen für Sperrgut

Hallo,

Ich möchte ein Sperrgut einrichten. Dabei soll pro Sperrgut Versandkosten von X addiert werden. Ich habe ein Freitextfeld (at.attr16) als sperrgut definiert und in die erweiterte SQL-Abfrage im Versandkosten-Modul 

, MAX(at.attr16="1") AS sperrgut

angehängt. Anschließend mittels Mehrfachänderung einige Artikel als sperrgut markiert.

Nun habe ich in der Versandkostenverwaltung einen neuen Eintrag hinzugefügt. Versandart-Typ ist “Standard Versandart”, denn wenn ich “Aufschlag-Versandregel” wähle, gibt es auf alle für Sperrgut ausgewählten Zahlarten einen Aufschlag. z.B. auch für Selbstabholer, die über Vorkasse bezahlen.

Also Standard-Versandart. Unter Versandkosten trage ich von 0 bis beliebig 8 ein. Unter Erweiterte Eigenschaften->Eigene Bedingungen trage ich

sperrgut = '1'

 ein. Das klappt insofern, dass diese Versandart nur dann auswählbar ist, wenn es einen Artikel im Warenkorb gibt, für den at.attr16 (sperrgut) aktiviert wurde.

Problem 1: Die Versandkosten müssen addiert weden. n Sperrgüter heißt also Versandkosten von n*x
Problem 2: Bei m anderen Artikeln sollen die Versandkosten ebenfalls addiert werden. Also m*y

Insgesamt will ich also Versandkosten von n*x + m*y haben.

Mein Versuch war das Feld “Eigene Berechnung” zu benutzen. Das wird nur anscheinend niemals von Shopware genutzt. Völlig egal, was ich hier eintrage, es sind immer 8. Auch wenn ich im Reiter Versandkosten keine Zeile stehen habe, sind die Versandkosten immer 0.

Ich habe es mit dieser Abfrage versucht:

SUM(IF(at.attr16 = '1',8,5))

oder auch

SUM(IF(at.attr16 = '1',8*b.quantity,5))

Oder auch nur “5+10”. Was in “Eigene Berechnung” steht, wird irgendwie imemr ignoriert. Woran kann das liegen und wie müsste die Abfrage korrekterweise aussehen?

Natürlich habe ich “Versandkosten-Berechnen nach” auf “Eigene Berechnung” gestellt.

Die Lösung ist im Reiter “Versandkosten” in der Spalte Faktor “100%” einzutragen. Die Spalte “Versandkosten” kann leer bleiben. Wie soll man denn darauf kommen … außer durch aufmerksames Lesen der Doku.

Da es ja klappt, habe ich jetzt eine Aufschlag-Versandregel daraus gemacht. Erstmal habe ich im Versandkosten-Modul zwei Abfragen eingefügt:

MAX(at.attr16="1") AS mischkorb, Min(at.attr16="1") AS sperrgut

Also anders als oben beschrieben. Dann habe ich zwei Aufschläge definiert:

1.) NUR Sperrgüter im Warenkorb

Eigene Bedingung:

mischkorb && sperrgut

Eigene Berechnung:

SUM(X*b.quantity-Y)

2.) Mischkorb
Eigene Bedingung:

mischkorb && !sperrgut

Eigene Berechnung:

SUM(IF(at.attr16, X*b.quantity, 0))

Wobei X eben für die Sperrgut-Versandkosten und Y für die normalen Versandkosten steht. Wenn es keine nicht-sperrgut-artikel im Warenkorb gibt, müssen die normalen Versandkosten abgezogen werden.

D.h. Für jeden einzelnen Artikel, bei dem at.attr16 angehakt ist, muss X bezahlt werden. Wenn noch andere Güter dabei sind, 

So bekommt der Kunde nicht “Sperrgut” als Versandart angezeigt. Ich muss ihn halt noch irgendwie informieren, warum die Versandkosten so hoch sind.

1 „Gefällt mir“

Ich hänge mich mal hier mit dran, da ich auch ein Problem mit der Berechnung habe und daran verzweifel.

Ausgangssituation:

Ich habe normale Artikel und Gutscheine.

Ich habe eine Versandart mit Porto 6,95€

Gewünschte Lösung:

Wenn 

a) nur normale Artikel 
oder
b) normale Artikel und Gutscheine

im Warenkorb sind, dann berechne die 6,95

Wenn NUR Gutscheine im Warenkorb sind, dann berechne 0€ Versandkosten. 

Am liebsten wäre es mir über eine Abschlagsart.

Folgende SQL Syntax habe ich:
MAX(a.topseller) AS has_topseller, MAX(at.attr3) AS has_comment, MAX(b.esdarticle) AS has_esd, SUM(b.quantity*d.weight) as gesamtgewicht, MIN(at.gutscheinversandfrei=“1”) AS gutscheinversand, MAX(at.gutscheinversandfrei=“1”) AS mischkorb

Wenn ich jetzt in der Abschlagsversandart in den Bedingungen laut Doku eintrage:

gutscheinversand && mischkorb

passiert folgendes, dass er die 6.95 als Warenkorbrabatt abzieht, sobald 1 Gutschein im Warenkorb ist. Auch wenn ich Artikel im Korb liegen habe, die keine Gutscheine sind. Die Mischkorbvariable scheint ihn überhaupt nicht zu interessieren. 

“gutscheinversandfrei” ist eine Checkbox im Artikelstamm, die ich dafür angelegt habe als Attribut.

 

Wo ist mein Denkfehler?  Foot-in-Mouth

@don schrieb:

Ich hänge mich mal hier mit dran, da ich auch ein Problem mit der Berechnung habe und daran verzweifel.

Ausgangssituation:

Ich habe normale Artikel und Gutscheine.

Ich habe eine Versandart mit Porto 6,95€

Gewünschte Lösung:

Wenn 

a) nur normale Artikel 
oder
b) normale Artikel und Gutscheine

im Warenkorb sind, dann berechne die 6,95

Wenn NUR Gutscheine im Warenkorb sind, dann berechne 0€ Versandkosten. 

Am liebsten wäre es mir über eine Abschlagsart.

Folgende SQL Syntax habe ich:
MAX(a.topseller) AS has_topseller, MAX(at.attr3) AS has_comment, MAX(b.esdarticle) AS has_esd, SUM(b.quantity*d.weight) as gesamtgewicht, MIN(at.gutscheinversandfrei=„1“) AS gutscheinversand, MAX(at.gutscheinversandfrei=„1“) AS mischkorb

Wenn ich jetzt in der Abschlagsversandart in den Bedingungen laut Doku eintrage:

gutscheinversand && mischkorb

passiert folgendes, dass er die 6.95 als Warenkorbrabatt abzieht, sobald 1 Gutschein im Warenkorb ist. Auch wenn ich Artikel im Korb liegen habe, die keine Gutscheine sind. Die Mischkorbvariable scheint ihn überhaupt nicht zu interessieren. 

„gutscheinversandfrei“ ist eine Checkbox im Artikelstamm, die ich dafür angelegt habe als Attribut.

 

Wo ist mein Denkfehler?  Foot-in-Mouth

Hast du hierzu eine Lösung gefunden? 

Hallo,

ich habe hier dasselbe Problem aber komme irgendwie nicht weiter mit deiner Formel…

Was hast du für dein Y(Mischkorb) eingegeben?

Also würde die Formel so aussehen für Sperrgut:

SUM(at.attr16b.quantity-MAX(at.attr16=„1“)) oder
SUM(at.attr16
b.quantity-mischkorb)

Ist das so richtig?