Versandkosten nach Hersteller/Lieferant und Gewicht?

Hallo,

versuche gerade zu kapieren, wie das mit den Rules und den Versandkosen funktioniert … oder funktionieren könnte.

Ziel ist die Versandkosten nach Hersteller und Gewicht berechnen zu lassen, sprich bei 2 Produkten im Warenkorb von 2 Herstellern, soll das 1. Produkt nach der

Preismatrix für den 1. Hersteller berechnet werden, das 2. Produkt eben nach der Preismatrix für den 2. Hersteller. Macht Shopware 6 aber irgendwie nicht so,

es wird entweder die 1. für beide genommen oder die 2. für beide.

Frage: Kann das überhaupt mit Shopware 6 funktioneren?

Wenn nein, könnte man die jetzige Gewichtsberechnung von Shopware erweitern, wenn ja, wo sollte man ansezten?

Unsere Versandregeln sind wie auf dem Screenshot mit den Demodaten von Shopware und den Herstellern „Freizeit“ und „Kleidung“.

 

Gruß,

Werner.

Hast du in der Rule selbst dafür dann auch die Art „Preis“ gewählt. Ich meine bemerkt zu haben, dass alles was als Regel  an der Matrix = Preis relevant, auch auf Art „Preis“ stehen muss. Alles oberhalb der Matrix in Verfügbarkeit dann auf Art „Versand“

Aber davon ganz unabhängig: Gewichtsberechnungen funktionieren, bei mir,  auch in der mittlerweile V 6.2 immer noch nicht! Nur die 1. Zeile wird ausgelesen.

Wie die Gewichtsberechnung funktioniert immer noch nicht??? Welche Einheiten werden denn genutzt? Gramm, KG, Tonnen, Megatonnen?

1 „Gefällt mir“

Hallo,

also das Gewicht wird schon richtig berechnet und dann auch aus einer der Preistabellen entsprechend dem Gewicht berechnet,

das klappt bei mir (Shopware 6.2), das ist nicht das Problem.

Es sollte halt das Gewicht nicht addieren, sondern wie oben erklärt, je Hersteller summieren und dann jeweils aus der richtigen Preistabelle

den Preis nehmen und diese addieren. Das mit dem “Preis” bei der Rule für die Preismatrix hatte ich nicht, aber jetzt ausprobiert und das ändert nichts.

Ist halt die Frage, wie das von Shopware eigentlich gedacht ist in meinem Fall mit den beiden Preismatrizen und den Regeln?

BTW ein bisschen mehr Doku mit mehr Beispielen wären auch nicht schlecht für die User, aber kommt ja vielleicht noch.

Gruß,

Werner.

Hallo,

oder gibt es irgendwo ein gute Doku, wie man die ganze Berechnung erweitern kann?

Aber unabhängig davon ist die Doku für den User auch ziemlich dürftig, hier kam zumindest keiner der User (die das mal pflegen sollen)

damit zu Recht.

Gruß,

Werner.

1 „Gefällt mir“

Ja die Doku für Versandkostenregeln ist quasi nicht existent. Und intuitiv ist da gar nix. Ich habe auch so viele Baustellen gerade im Bereich der Versandkosten. Da klappt nichts. 

 

1 „Gefällt mir“

@clicklabs schrieb:

Ja die Doku für Versandkostenregeln ist quasi nicht existent. Und intuitiv ist da gar nix. Ich habe auch so viele Baustellen gerade im Bereich der Versandkosten. Da klappt nichts. 

 

Mach einen eigenen Thread auf und beschreibe dein Problem, dann kann man dir vielleicht helfen. Irgendwo mit reinhängen, was thematisch keinen Bezug hat, macht nicht viel Sinn.

 

@Threadersteller

Das war in SW5 ja schon ein großer Hack, weil man quasi per SQL Textfeld in die Berechnung eingreifen konnte. Das gibt es in SW6 nicht mehr. Das was du abbilden willst wird erstmal nur über eine individuelle Programmierung gehen. Sowas wie zähle die Hersteller und addiere einen Preis pro Hersteller der unterschiedlich ist, kannst du so im Admin nicht realisieren.  

1 „Gefällt mir“

Guten Morgen,

vielen Dank für die Antwort Moritz.

Dachte ich mir schon, daß das nicht geht, weil das Gewicht ja einfach immer zusammengezählt wird, wenn ich das richtig im Source-Code gesehen habe.

Der Ansatzpunkt für die individuelle Programmierung ist dann wohl der Service DeliveryCalculator oder?

Ist das in Shopware 6 auch so durchgezogen, daß das geht, wenn man den Service erweitert bzw. dekoriert?

Gruß,

Werner.

@WernerBu‍

hattest du Erfolg beim decorieren des Service DeliveryCalculator? Wie genau hast du es gemacht? Wir haben das selbe Thema.

Leider ist die Doku von Shopware wenig hilfreich …

Hallo,

tut mir leid, wir hatten das Thema erst mal auf Eis gelegt bis November… natürlich in der Hoffnung,

daß entweder Shopware noch was ändert oder es ein Plugin dazu gibt.

Aber da hat sich nichts getan.

Ja, die Doku ist überhaupt nicht hilfreich, da bleibt einem leider nichts anderes übrig, als deren Source-Code durchzuarbeiten.

Wir hatten ja auch gehofft, daß die Doku für Entwickler dahingehend verbessert wird, aber da hat sich auch nichts getan.

Aber vor November komme ich wohl nicht dazu, mir das anzuschauen, tut mir leid.

Aber vielleicht können wir uns dann ja gegenseitig helfen :slight_smile:

Gruß,

Werner.

Guten Morgen Zusammen, @FloC3‍

um Versandkosten Shopware 6 individuell zu gestalten, habe ich die DeliveryCalculator mit einer eigenen Klasse dekoriert:

  • Dazu eine services.xml im Verzeichnis PLUGINNAME/src/Resources/config erstellen und mit folgendem Code bestücken:

  • Dann noch die Datei MYDeliveryCalculator.php mit der neuen Klasse im Verzeichnis PLUGINNAME\src\Core\Checkout\Cart\Delivery erstellen und befüllen:

  • Änderungen an den einzelnen functions etc. nach euren Anforderung vornehmen.

In der private function calculateShippingCosts erscheinen die Versandkosten an der Stelle

$price = $this->getCurrencyPrice($priceCollection, $context);

als reiner Integer-Wert… ein guter Ansatzpunkt, eigene Lösungen zu implementieren Smile. Nach Anpassungen nicht vergessen Plugin upzudaten und Cache zu löschen…

Anregungen willkommen!

Viele Grüße

Martin

2 „Gefällt mir“

Hallo,

so, nächste Woche will ich das Thema angehen.

Ja, danke, das mit dem DeliveryCalculator hatten wir ja oben auch erwähnt, das war mir ja schon soweit klar.

Ich blicke eher mit der Ruleengine noch nicht durch bzwl. mit der function

private function matches(Delivery $delivery, ShippingMethodPriceEntity $shippingMethodPrice, SalesChannelContext $context)...

Die Berechnung basiert schon auf dem Gewicht der Produkte, aber eben nicht vom Gesamtgewicht aller Produkte sondern gruppiert nach Lieferant der Produkte.

Sprich je Lieferant sollte das Gesamtgewicht der Produkte des Lieferanten im Warenkorb errechnet werden, dann mit diesem Gewicht die Versandkosten (jeder Lieferant hat hierfür allerdings wiederum andere Gewichtspreise) für den einzelnen Lieferanten und dann soll  die Summer aller dieser Versandkosten berechnet werden.

Evtl. die Ruleengine, was die Versandkostenpreise angeht, ganz umgehen oder anders benutzen?

Gruß,

Werner.

Ich würde die RuleEngine in diesem Fall wohl komplett umgehen, die function „matches“ ist zu starr was die einzelnen Produkteigenschaften angeht. In der function „calculateShippingCosts“ eine eigene Funktion zu referenzieren und dort mit getPayloadValue(‚XYZ‘) z.B. getPayloadValue(‚categoryIds‘) die entsprechenden Daten abzugreifen und zu modifizieren scheint mir die zielführendste Methode zu sein.

Viele Grüße,

Martin

1 „Gefällt mir“

Hallo,

genau, zu dem Schluss, daß wir die Rule Engine erst mal komplett umgehen, sind wir dann auch letztendlich gekommen.

Fürs erste sollte das dann so funktionieren und für die Zukunft wird man sehen, was sich bei Shopware bzgl. den Versandkosten

noch tut. So ganz optimal ist das ja noch nicht, wann man sich die Forumsbeiträge so ansieht.

Aber Hauptsache, wir können erst mal unsere bisherige Versandkostenabrechung abbilden,

da sind wir schon mal ein gutes Stück weiter!!

Viele Grüße,

Werner.

@Moalware‍

@WernerBu‍

Ich versuche auch den DeliveryCalculator anzupassen, schaffe es aber nicht, dass er meinen Code in der eigenen DeliveryCalculator.php ausführt.

Selbst wenn ich versuche da einen Syntax Error zu verursachen kommt nirgends eine Fehlermeldung, als würde er die Datei gar nicht laden.

Plugin ist natürlich installiert, Cache geleert.

Könnt ihr Euch mal meinen Code anschauen? https://github.com/Hativ/CustomDeliveryCalculator

Danke Euch.

Hat sich erledigt, wenn ich alles in der Funktion calculate() mache geht es.

@Hativ, @WernerBu

ich habe gerade ein aehnlihces Thema, bei dem ich die starren Versandkostentabellen ignorieren und die Versankosten anhand der Abfrage einer externern REST-API ermitteln will.

Ich versuche derzeit nachzuvollziehen, was ihr geschrieben habt - leider klappt es hier nicht ganz. einen decorator fuer DeliveryCalculator bekomme ich nicht hin, weil DeliveryCalculator ja kein abstraktes Interface ist, sondern direkt die Implementation. Waere super, wenn einer von Euch

Insgesamt bin ich sehr stark verwundert, dass es keine explizit fuer Versandkostenberechnungs-Plugins gedachte API zu geben scheint. Man kann doch ohne live/realtime-API-Abfrage nicht wissen, was jetzt gerade ein z.B. UPS Express-Paket nach sonst irgendwo auf der Welt kostet. Von daher wuere man erwarten, dass es eine klare API gibt, mit der Shopware einem Plugin ermoeglicht, die fuer einen Warenkorb mit Versandadresse ermoeglicht, eine Liste von verfuegbaren Versandmethoden sowie deren konkrete Kosten zu ermitteln. Diese statischen Tabellen reichen doch nie aus.

Selbst die offizielle shipcloud-Anbindung an Shopware betrifft nur das Backend. Aber der Kunde muss dodch die Versandkosten schon lange vorher im Checkout wissen :slight_smile: , bevor er Zahlt…

Ich frage mich die ganze Zeit, was ich übersehe, das ist doch ein standard-Problem von jedem, der weltweiten Versand seiner Produkte macht?

1 „Gefällt mir“

Hattest du eine Lösung gefunden? Prinzipiell gibt es ja die shipcloud API Abfrage um die Versandkosten anhand der Lieferadresse und der Paketgröße/ Gewicht live abzufragen. Konntet ihr da eine Abfrage bauen?

Ich habe keine Loesung gefunden, sondern selbst eine implementiert. Ich mache zwar > 30 Jahre Softwareentwicklung, aber habe so gut wie keine Ahnung von PHP und/oder Shopware, also mag die Loesung fuer PHP-Profis zum Haareraufen sein… aber sie funktioniert. Der Code liegt in shopware/SmcShipcloudLive: sysmocom plugin for Shopware6 to get real-time shipping quotes from shipcloud.io - SmcShipcloudLive - sysmocom public git reposotiries

Der Code enthaelt hard-coded Versandadressen und sonstige hacks. Bitte nicht als fertige Loesung ansehen, sondern nur als „so habe ich es hinbekommen, mein Problem zu loesen, ohne eine generische Loesung fuer andere Leute zu bauen“. Wenn das jemand aufraeumen/erweitern will, und damit zu einem echten wiederverwendbaren FOSS-projekt machen will: gerne!

Es ist ziemlich haesslich, weil ich keinen sauberen Weg gefunden habe, das ohne viel copy+paste+edit fuer alle Faelle (Drittland/EU/Inland) mit der Steuerberechnung auf die Versandkosten sinnvoll hinzubekommen.

Die Paketabmessungen + Gewicht wird naeherungsweise aus dem Volumen und einem fiktiven Seitenverhaeltnis 3:2:1 sowie einer durchscnittlichen Dichte der Ware von 500g pro liter (kubik-dezimeter) geschaetzt. Weiterhin wird ein 5%iger Sicherheitsaufschlag und ein 0.35% Transportversicherungsaufschlag durch hart kodierte Werte im Code auf den Shipcloud-Preis aufgeschlagen.

Ich bedauere an dieser Stelle nochmals, dass es zwar ein offizielles shipcloud-shopware-plugin gibt, aber es so grundlegende Funktionen nicht unterstuetzt. Ich frage mich welcher international arbeitende shipcloud-kunde denn keine real-time preisanfrage fuer die konkrete Bestellung zum konkreten Ziel braucht.