Eigenes Versand-Modul Plugin

Hallo allerseits, ich möchte gerne UPS als Versandart anbieten und sämtliche Preise live aus der UPS XML Schnittstelle holen. Dazu kann ich also keine “standard” Versandart anlegen, sondern muss tatsächlich die Berechnung der Versandkosten “auslagern” und über die UPS Schnittstelle abfragen. Nun frage ich mich, wie ich das besten lösen kann… Mein momentaner Ansatz: ich habe eine standard Versandart UPS angelegt und versuche die Versandkostenberechnung zu überschreiben: $this-\>subscribeEvent( "sAdmin::sGetPremiumShippingcosts::after", "afterGetPremiumShippingcostsHook" ); Die Funktion sGetPremiumShippingcosts() gibts dabei folgende Werte zurück: Array ( [value] =\> 10.00 [factor] =\> 4.00 [brutto] =\> 10 [surcharge] =\> 0 [tax] =\> 19 [netto] =\> 8.4 ) Prinzipiell könnte ich nun dieses Array einfach manipulieren und den Preis (value etc) entsprechend anpassen. Blöderweise reicht aber anscheinend ein hook an dieser Stelle nicht. Auch wenn ich spaßeshalber value, brutto und netto einfach mal verdoppel, dann zeigt mir Shopware die original Versandkosten an. Ich vermute, dass die Berechnung an einer anderen Stelle zusätzlich passiert und dann mit diesem Rückgabewert verglichen wird… Meine Vorgehensweise dabei: $bla = $arguments-\>getReturn(); $bla['value'] = (float) $bla['value'] \* 2; $bla['butto'] = (float) $bla['butto'] \* 2; $bla['netto'] = (float) $bla['netto'] \* 2; return $arguments-\>setReturn( $bla ); Hinzu kommt, dass die Postleitzahl (die ich für die UPS Schnittstelle brauche) in sGetPremiumShippingcosts() nirgendswo abgefragt wird. Wenn hier jemand eine Idee hat, wie ich am besten an die PLZ komme, dann würde mir das zusätzlich sehr helfen :slight_smile: Fazit: weiß jemand, wie ich die Berechnung der Versandkosten korrekt überschreibe? Vielen Dank & Gruß

Hallo, hat noch nie jemand probiert die Berechnung der Versandkosten auszulagern? Jeder Tipp würde mir helfen :slight_smile: Vielen Dank & Gruß

Hallo, vielleicht ein wenig spät, aber hier ein kleiner Fehler: $bla['butto'] = (float) $bla['butto'] \* 2; Da fehlt ein “r” (brutto)! $bla['brutto'] = (float) $bla['brutto'] \* 2; Viele Grüße Robert

Ich werd bekloppt… Das war der Fehler. Besten Dank! Gruß

Hallo keksterrrr, wir würden auch gerne auf die UPS Schnittstelle zur Versandkostenberechnung zurückgreifen. Kannst Du mir etwas genauer sagen was du wo geändert hast? Danke. :slight_smile:

Hmmmm prinzipiell so, wie ich es anfangs geschrieben hatte: private function installSubscribeEvents() { $this-\>subscribeEvent( "sAdmin::sGetPremiumShippingcosts::after", "afterGetPremiumShippingcostsHook" ); } public function afterGetPremiumShippingcostsHook( Enlight\_Hook\_HookArgs $arguments ) { $return = $arguments-\>getReturn(); $return['value'] = 9.99; $return['brutto'] = 9.99; $return['netto'] = round($return['brutto']\*100/(100+$return['tax']),2); $arguments-\>setReturn($return); } Gruß

[quote=„keksterrrrr“]Ich werd bekloppt… Das war der Fehler. Besten Dank! Gruß[/quote] Kenne solche Fehler zu gut. Da wär es doch ein Segen gewesen das php Errorlevel höher gesetzt zu haben :wink: