Marvin_R3Marvin_R3 MemberComments: 4 Received thanks: 2 Member since: August 2018 edited August 2018

Hallo zusammen,

wir haben auf unserem neuen Shop (Neuinstallation, eigenes Theme[Responsive abgeleitet]) PayPal Unified installiert und soweit alle Daten für den Test über die Sandbox eingerichtet. Dabei sind wir wie folgt vorgegangen:

 

  1. Plugin installiert
  2. REST-API unter developer.paypal.com angelegt
  3. Daten im Plugin im Shop eingetragen
  4. Webhook registriert
  5. Plugin aktiviert
  6. Sämtliche Caches geleert inkl. Themes kompiliert

 

INFO: Bei uns kommt derzeit nur das Standard PayPal zum Einsatz, kein Rechnungskauf, Lastschrift o.ä. über PayPalPlus.

 

Wenn wir nun eine Testbestellung via PayPal über den Shop durchführen, funktioniert soweit alles wunderbar. Wir erhalten keine Fehlermeldungen in der Konsole, im Developer-Konto sieht soweit ebenfalls alles super aus und die Log-Files des Shops zeigen auch keine Fehler auf.

Im Backend lässt sich unter Kunden->Zahlungen->PayPal->Bestellungen die Testbestellung einsehen und alles ist perfekt.

 

 

Nun zu dem eigentlichen Problem:

Nach der Zahlung über PayPal wird der Kunde wie gewohnt zurück zum Shop geleitet auf die /finish Seite. Hier ist nach der Weiterleitung durch PayPal sowohl die Rechnungsadresse als auch die Lieferadresse leer. Das Template wird ausgegeben, jedoch ohne Inhalt der Variablen. Ein kurzer Blick ins Bare zeigt, dass die Variablen aus der $sAddresses stammen. Über den FroshProfiler (https://github.com/FriendsOfShopware/FroshProfiler), sehe ich, dass die Variable $sAddresses gar nicht an das Template übergeben wird. Bei einer weiteren Testbestellungen mit "Vorkasse" als Zahlungsart wird diese Variable korrekt übergeben.

 

Folgende Problemlösungen haben wir bereits durchgeführt:

  1. Cache geleert, Theme kompiliert.
  2. Standard Theme aktiviert
  3. PayPal Unified neuinstalliert
  4. "In-Context Modus" aktiviert/deaktiviert.
  5. Plugin - Permanenter Warenkorb deaktiviert.

 

 

Infos zum Shop:

  • Shopversion: 5.4.6
  • Pluginversion: 1.0.5
  • Installierte Drittanbieterplugins:
    • Produktbundles
    • eKomi Schnittstelle
    • secupay Online Payment
    • Manuelle Artikelreihenfolge
    • BLUETRADE Permanenter Warenkorb (Fehler besteht auch mit Deinstallation dieses Plugins)
    • FroshProfiler
    • Cmmunity Uploads
    • Google Services

 

Template Variablen Zahlungsart "PayPal"

array:53 [▼
"sUserLoggedIn" => true
"sUserData" => array:3 [▶]
"sTransactionumber" => "4D32E***********"
"sOrderNumber" => "20016"
"sCountry" => array:15 [▶]
"sState" => array:1 [▶]
"sPayment" => array:21 [▶]
"sDispatch" => array:31 [▶]
"sPayments" => array:6 [▶]
"sDispatches" => array:1 [▶]
"sBasket" => array:18 [▶]
"sLaststock" => array:2 [▶]
"sShippingcosts" => 0
"sShippingcostsDifference" => null
"sAmount" => 39.99
"sAmountWithTax" => null
"sAmountTax" => 6.38
"sAmountNet" => 33.61
"sPremiums" => []
"sNewsletter" => null
"sComment" => null
"sShowEsdNote" => false
"sDispatchNoOrder" => false
"sRegisterFinished" => false
"sAdvancedMenu" => array:9 [▶]
"columnAmount" => 0
"hoverDelay" => 250
"paypalUnifiedEcCartActive" => true
"paypalUnifiedModeSandbox" => true
"paypalUnifiedShowLogo" => false
"paypalUnifiedAdvertiseReturns" => false
"paypalUnifiedShowInstallmentsLogo" => false
"secupay_show_alt_delivery_warning" => 1
"secupay_delivery_address_differs" => true
"netzpController" => "checkout"
"netzpAction" => "finish"
"theme" => array:112 [▶]
"SeoMetaRobots" => "noindex,follow"
"baseUrl" => "/sw/checkout/finish/sUniqueID/PAY-7HP**********"
"Controller" => "checkout"
"Shopware" => "[object] (Shopware: {})"
"sBasketQuantity" => 0
"sBasketAmount" => 0
"sNotesQuantity" => 0
"Shop" => "[object] (Shopware\Models\Shop\DetachedShop: {})"
"Locale" => "de_DE"
"sCategoryStart" => 3
"sCategoryCurrent" => 3
"sCategories" => array:9 [▶]
"sMainCategories" => array:9 [▶]
"sOutputNet" => false
"sMenu" => array:3 [▶]
"sShopname" => "**********"
]

 

 

 

 

Template Variablen bei Zahlungsart "Vorkasse"

array:54 [▼
"sUserLoggedIn" => true
"sUserData" => array:3 [▶]
"theme" => array:112 [▶]
"sCountry" => array:15 [▶]
"sState" => array:1 [▶]
"sPayment" => array:21 [▶]
"sDispatch" => array:31 [▶]
"sPayments" => array:6 [▶]
"sDispatches" => array:1 [▶]
"sBasket" => array:18 [▶]
"sLaststock" => array:2 [▶]
"sShippingcosts" => 0
"sShippingcostsDifference" => null
"sAmount" => 39.99
"sAmountWithTax" => null
"sAmountTax" => 6.38
"sAmountNet" => 33.61
"sPremiums" => []
"sNewsletter" => null
"sComment" => ""
"sShowEsdNote" => false
"sDispatchNoOrder" => false
"sRegisterFinished" => false
"sOrderNumber" => 20017
"confirmMailDeliveryFailed" => false
"sAddresses" => array:3 [▶]
"sAdvancedMenu" => array:9 [▶]
"columnAmount" => 0
"hoverDelay" => 250
"paypalUnifiedEcCartActive" => true
"paypalUnifiedModeSandbox" => true
"paypalUnifiedShowLogo" => false
"paypalUnifiedAdvertiseReturns" => false
"paypalUnifiedShowInstallmentsLogo" => false
"secupay_show_alt_delivery_warning" => 1
"secupay_delivery_address_differs" => true
"netzpController" => "checkout"
"netzpAction" => "finish"
"SeoMetaRobots" => "noindex,follow"
"baseUrl" => "/sw/checkout/finish"
"Controller" => "checkout"
"Shopware" => "[object] (Shopware: {})"
"sBasketQuantity" => 0
"sBasketAmount" => 0
"sNotesQuantity" => 0
"Shop" => "[object] (Shopware\Models\Shop\DetachedShop: {})"
"Locale" => "de_DE"
"sCategoryStart" => 3
"sCategoryCurrent" => 3
"sCategories" => array:9 [▶]
"sMainCategories" => array:9 [▶]
"sOutputNet" => false
"sMenu" => array:3 [▶]
"sShopname" => "*******"
]

 

Weitere Informationen kann ich auf Nachfrage gerne liefern.

Ich bedanke mich vorab für eure Hilfe.

Gruß Marvin

 

Zusatz:

Könnte mit diesem Fehler zusammenhängen: https://issues.shopware.com/issues/PT-9482

1 Answer

  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 Member since: June 2014

    Hallo,

    mit dem nächsten Update des PayPal Plugins wird es unterbunden, dass der Kunde die Möglichkeit hat, auf der PayPal Seite seine Lieferadresse zu ändern. Dadurch wird verhindert, dass bei PayPal und bei Shopware abweichende Lieferadressen zu einer Bestellung gespeichert werden und Shopware hier das führende System ist. 

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

    Quote
    Accepted Answer
    Thanked by 2wwnorden mlampert
  • Accepted Answer

Answers

  • SoFi42SoFi42 MemberComments: 4 Received thanks: 0 edited October 2018 Member since: October 2018

    Hallo,

    das sieht bei uns exakt genauso aus. Zahlung mit dem neuen PayPal-Plugin (aktuelle Version 1.1.1 von gestern und auch mit der Vorgängerversion 1.1.0)  wird korrekt ausgeführt, aber auf der checkout/finish Seite werden keine Rechnungs- und Lieferadressen angezeigt. Shopware Version 5.4.5.
    Kann hier jemand weiterhelfen?

    Marvin, konntest du inzwischen eine Lösung finden?

    Vielen Dank
    SoFI

    Nachtrag: Wir nutzen ausschliesslich PayPal Classic im neuen PayPal Unified Plugin. Kein PayPal Express und kein PayPal Plus.

  • Marvin_R3Marvin_R3 MemberComments: 4 Received thanks: 2 Member since: August 2018

    Hallo SoFi42,

    ich habe nach ein paar Tagen ein Shopware Support-Ticket geschrieben und jemanden drüber schauen lassen. Dieser konnte nach 5-6 Tagen (nach Verfassen diesem Beitrags) den Fehler nicht mehr reproduzieren und ich im Anschluss darauf ebenfalls nicht.

    Seitdem wurden nun ca. 20-40 Testbestellungen durchgeführt ohne, dass der Fehler jemals wieder auftrat.

    Woran es letztlich lag kann ich dir somit leider nicht sagen.

    Viel Erfolg bei der Fehlersuche! 

    Gruß Marvin

    Thanked by 1SoFi42
  • SoFi42SoFi42 MemberComments: 4 Received thanks: 0 Member since: October 2018

    Hallo Marvin,
    ich danke dir für deine schnelle Antwort. Sehr eigenartig ist das allerdings schon. Ok, ich werde weiter suchen und habe jetzt noch die Hoffnung, dass der Fehler ebenso wie bei dir einfach verschwindet.
    THX
    SoFi

  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 Member since: June 2014

    Hallo zusammen,

    uns sind keine derartigen Probleme bekannt. Falls ihr den Fehler nachstellen könnt, würden wir uns über ein Ticket freuen.

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • onlinepulsonlinepuls MemberComments: 35 Received thanks: 4 Member since: November 2012

    Gibt es hierzu schon neue Informationen? Der Fehler tritt auch in einem Shop auf, den ich betreue.

  • Marvin_R3Marvin_R3 MemberComments: 4 Received thanks: 2 edited December 2018 Member since: August 2018

    Hallo zusammen,

    ich konnte das Problem bei uns im Shop erneut feststellen. Der Fehler ist aufgetreten, als ich nach der Weiterleitung auf PayPal dort unter dem Punkt "Versand an:" meine Versandadresse nachträglich angepasst habe. Im Anschluss wurde ich auf /finish weitergeleitet und Rechnungs- und Lieferadresse waren leer.

    Könnt ihr mal testen, ob ihr den Fehler so reproduzieren könnt? 

    Siehe Bild: 

    Ich habe in einem zweiten Shop von uns (kein Subshop, responsive design, lediglich optische Anpassungen) den Test erneut durchgeführt und konnte das gleiche Verhalten nachstellen.  @Michael Telgmann‍ Vielleicht ist das der Ursprung der Problematik.

    Zweiter Shop, gleiches Verhalten:

     

     

    Ein bisschen Off-Topic aber eine Frage noch dazu:

    Wenn der Kunde auf der PayPal-Bezahlseite seine Adresse ändern kann, sollte diese nicht auch dem Shop mitgeteilt werden? In meiner Testbestellung weiß der Shop nichts von der geänderten Lieferadresse, die innerhalb von PayPal angepasst wurde. In der Bestellbestätigung z.B. steht weiterhin die Adresse, die im Shop eingetragen wurde. Das kann so nicht richtig sein.

     

    Vielen Dank für eure Hilfe

     

    Edit:

    Ich habe hierfür mal ein Support-Ticket geschrieben. Hier nur die kurze Info für die ebenfalls Betroffenen.

  • wwnordenwwnorden MemberComments: 31 Received thanks: 4 Member since: January 2016

    Bei uns tritt das gleiche Problem auf. Glücklicherweise nicht Live. Egal ob wir bei Paypal die Adresse ändern oder sie belassen, unter /checkout/finish sind Rechnungs- und Lieferadresse leer. Eingesetzt wird Shopware 5.4.6.

    @Marvin_R3‍ Könntest du einmal einen Link zum Ticket posten?

  • Marvin_R3Marvin_R3 MemberComments: 4 Received thanks: 2 Member since: August 2018

    Hallo wwnorden, 

    das war kein Ticket im Issue-Tracker sondern ein Support-Ticket bei Shopware. Unser Hauptproblem konnte (aktuell zumindest) nicht reproduziert werden. 

    Folgende Info habe ich dazu erhalten:

    Bezogen auf die Übernahme der Lieferadresse von PayPal. 

    [...]
    Ich war in der Lage, eines der beschriebenen Verhalten für Sie nachzustellen. Tatsächlich wird die in PayPal nachträglich eingegebene Adresse nicht für die Bestellung übernommen. Umgehend habe ich danach für Sie recherchiert und konnte ein ähnliches Ticket im Issue Tracker finden:

    https://issues.shopware.com/issues/PT-9989

    [...]

     

    Bezüglich des eigentlichen Problems erhielt ich folgende Info:

    [...]

    Ergänzend konnte ich das Verhalten bzgl. der leeren Liefer-/Rechnungsadresse mit den aktuellen Shopware sowie Plugin Version nicht nachstellen. Ich gehe hier aber auch davon aus, dass durch ein Update das Verhalten ebenfalls gelöst wird.

    [...]

    Bei Gelegenheit werde ich beim Support nochmal nachhaken, wie der Stand ist und was es mit dem Fehler auf sich hat. Es scheint ja so, als sei nicht nur unser Shop betroffen.

    Gruß Marvin

     

    @shopware: Ich hoffe, es ist in Ordnung, dass ich hier Auszüge aus meinem Support-Ticket poste?!

  • wwnordenwwnorden MemberComments: 31 Received thanks: 4 Member since: January 2016

    Danke, dann warten wir mal die Umsetzung ab.

  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 Member since: June 2014

    Hallo,

    mit dem nächsten Update des PayPal Plugins wird es unterbunden, dass der Kunde die Möglichkeit hat, auf der PayPal Seite seine Lieferadresse zu ändern. Dadurch wird verhindert, dass bei PayPal und bei Shopware abweichende Lieferadressen zu einer Bestellung gespeichert werden und Shopware hier das führende System ist. 

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

    Quote
    Accepted Answer
    Thanked by 2wwnorden mlampert
  • wwnordenwwnorden MemberComments: 31 Received thanks: 4 Member since: January 2016

    Moin,

    ich muss den Thread noch mal aktivieren. Bei uns bleiben die Adressen auf der checkout/finish Seite nach wie vor leer, wenn man den normalen Bestellprozess ohne PayPal Express durchführt. Sowohl, wenn man bei PayPal versucht, die Adresse zu ändern (was mit der aktuellen Version 2.1.0 unterbunden ist) bzw. einfach nur sich einloggt und die Zahlung bestätigt, werden nach der Weiterleitung zurück zum Shop keine Adressen mehr angezeigt. PayPal wird dabei im Sandbox-Modus verwendet und in der Bestellbestätigungsmail sind die korrekten Adressen hinterlegt. Vielleicht kann jemand das Verhalten auch bei der neuen Plugin-Version bestätigen.

    Shopware-Logs sind unauffällig.

    Shopware Version: 5.4.6

    PayPal Version: 2.1.0

    Beste Grüße

  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 6807 Received thanks: 2027 Member since: September 2013

    InContext Modus: 

    image

     

    Weiterleitung:

    image

    Nachstellen kann ich das nicht. Hab nur Paypal installiert + Standard Theme.

  • wwnordenwwnorden MemberComments: 31 Received thanks: 4 Member since: January 2016

    Moin,

    das ist komisch. Habe das gerade noch mal mit einem lokalen Testsystem (Shopware 5.5.4, PayPal 2.1.0 und Sandboxmodus) getestet und dort selbiges Problem erhalten.

    Wo könnte man bei dem Problem noch ansetzen außer alle relevanten Plugins zu deaktivieren?

     

  • mlampertmlampert MemberComments: 38 Received thanks: 2 Member since: September 2016

    Hallo,

    mit dem nächsten Update des PayPal Plugins wird es unterbunden, dass der Kunde die Möglichkeit hat, auf der PayPal Seite seine Lieferadresse zu ändern. Dadurch wird verhindert, dass bei PayPal und bei Shopware abweichende Lieferadressen zu einer Bestellung gespeichert werden und Shopware hier das führende System ist. 

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

     Hallo Michael, wann wird die neue Version erscheinen?

  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 edited January 28 Member since: June 2014

    Hallo,

    ...

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

     Hallo Michael, wann wird die neue Version erscheinen?

     Hallo,

    die Version 2.1.0 ist schon seit einiger Zeit draußen Wink https://store.shopware.com/swag828732772311f/paypal.html

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

    Thanked by 1mlampert
  • mlampertmlampert MemberComments: 38 Received thanks: 2 Member since: September 2016

    Hallo,

    ...

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

     Hallo Michael, wann wird die neue Version erscheinen?

     Hallo,

    die Version 2.1.0 ist schon seit einiger Zeit draußen Wink https://store.shopware.com/swag828732772311f/paypal.html

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

    Das schon, leider tritt mit dieser Version das Problem weiterhin auf. 

  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 Member since: June 2014

    Welches Problem genau?

  • mlampertmlampert MemberComments: 38 Received thanks: 2 Member since: September 2016

    Um das es in diesem Thread geht :D

     

    Trotz Einsatz von SW 5.5.6 und PayPal 2.1.0 ist auf der Finish-Seite die Rechnungs- und Lieferadresse leer. Gibt es einen weiteren Ansatz, wie das Problem zu beheben ist?

  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 Member since: June 2014

    Das Problem konnten wir bei uns nie nachstellen, wie @Moritz Naczenski‍ oben auch schon schrieb. Wenn ihr einen Weg habt, wie das Problem reproduzierbar ist, würden wir uns über eine genaue Beschreibung freuen. Dann können wir dazu ein Ticket anlegen

  • wwnordenwwnorden MemberComments: 31 Received thanks: 4 Member since: January 2016

    @Michael Telgmann‍ Mich würde noch interessieren, ob ihr beim Testen den Shop auch unter einem basePath sowie PayPal im Sandbox Modus habt laufen lassen.

  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 Member since: June 2014

    Hallo,

    ich habe als host "localhost" und als basePath z.B. "5.5" und natürlich können wir PayPal nur im Sandbox Modus testen Wink

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • wwnordenwwnorden MemberComments: 31 Received thanks: 4 edited February 1 Member since: January 2016

    Ich versuche mich einmal dem Problem zu nähern:

    Voraussetzung: Shopware 5.5.6 und Bezahlvorgang via PayPal ohne ExpressCheckout.

    In der checkout/finishAction holt sich der Shop die Bestelldaten aus der Session (ca. Zeile 317) via

    $orderVariables = $this->session['sOrderVariables']->getArrayCopy();

    In der nachfolgenden Abfrage wird auf die sOrderNumber geprüft und wenn nicht leer die entsprechende Variable sAddresses für die Daten der View mit Billing und Shipping Adresse gefüllt. sOrderNumber ist aber gar nicht in $orderVariables enthalten, sondern nur in $order. Folgender Code schafft in der finishAction bei mir Abhilfe:

    ...
    $orderVariables = $this->session['sOrderVariables']->getArrayCopy();
    
    // Neu: Prüfung auf sOrderNumber 
    if (!empty($order['sOrderNumber'] && empty($orderVariables['sOrderNumber']))){
      $orderVariables['sOrderNumber'] = $order['sOrderNumber'];
    }
    
    if (!empty($orderVariables['sOrderNumber'])) {
      $orderVariables['sAddresses']['billing'] = $this->getOrderAddress($orderVariables['sOrderNumber'], 'billing');
      $orderVariables['sAddresses']['shipping'] = $this->getOrderAddress($orderVariables['sOrderNumber'], 'shipping');
      $orderVariables['sAddresses']['equal'] = $this->areAddressesEqual($orderVariables['sAddresses']['billing'], $orderVariables['sAddresses']['shipping']);
    }
    ...

    Damit wären dann auch die obigen Billing und Shipping Adressen in der sAddresses gefüllt. Gefüllt wird

     $this->session['sOrderVariables']

    erstmals in der confirmAction und sOrderNumber wird oder kann dort noch nicht gesetzt werden. In der finishAction kommt der Shop deshalb auch nicht in die if Abfrage rein. Warum das Problem nur bei einigen auftaucht könnte man evtl. mit einem Fehler/Problem beim Laden/Speichern der View-Daten in die Session erklären. Das müsste man aber noch mal genauer untersuchen, wie und wann die sOrderNumber in der Session zur verfügung steht.

    Edit: Das neue PayPal Unified läuft bei uns erstmal auf 2 Testsystemen. Wir konnten bisher mit Ausnahme von PayPal Express Checkout nie die checkout/finish Seite mit korrekten Adressangaben erreichen.

  • wwnordenwwnorden MemberComments: 31 Received thanks: 4 Member since: January 2016

    Moin. Gibt es hier schon Neuigkeiten bzw. konnte man meiner Erklärung zum Fehler wie er bei uns vorliegt folgen?

  • halbe_rahmenhalbe_rahmen MemberComments: 3 Received thanks: 1 Member since: January 2017

    Wir sind auch an einer Lösung interessiert. Wir nutzen Shopware Version 5.2.12 und PayPal Version 2.1.0.

    Die Rechnungs- und Lieferadresse fehlt bei einigen Bestellungen, die mit PayPal gezahlt wurden, aber nicht bei allen. Außerdem wird bei diesen Bestellungen mit Adresse = "null" keine Bestellbestätigungsmail verschickt.

    Seltsamerweise tritt der Fehler nicht nur bei PayPal Bestellungen auf, wie ich feststellen musste. Auch beim Kauf auf Rechnung, oder Mastercard Zahlung (nicht über PayPal) fehlen die Adressen.

     

  • mlampertmlampert MemberComments: 38 Received thanks: 2 Member since: September 2016

    Wir sind auch an einer Lösung interessiert. Wir nutzen Shopware Version 5.2.12 und PayPal Version 2.1.0.

    Die Rechnungs- und Lieferadresse fehlt bei einigen Bestellungen, die mit PayPal gezahlt wurden, aber nicht bei allen. Außerdem wird bei diesen Bestellungen mit Adresse = "null" keine Bestellbestätigungsmail verschickt.

    Seltsamerweise tritt der Fehler nicht nur bei PayPal Bestellungen auf, wie ich feststellen musste. Auch beim Kauf auf Rechnung, oder Mastercard Zahlung (nicht über PayPal) fehlen die Adressen.

     

    Hier wäre zunächst ein Update auf Shopware 5.5. angebracht.

  • halbe_rahmenhalbe_rahmen MemberComments: 3 Received thanks: 1 edited February 15 Member since: January 2017

    Wir sind auch an einer Lösung interessiert. Wir nutzen Shopware Version 5.2.12 und PayPal Version 2.1.0.

    Die Rechnungs- und Lieferadresse fehlt bei einigen Bestellungen, die mit PayPal gezahlt wurden, aber nicht bei allen. Außerdem wird bei diesen Bestellungen mit Adresse = "null" keine Bestellbestätigungsmail verschickt.

    Seltsamerweise tritt der Fehler nicht nur bei PayPal Bestellungen auf, wie ich feststellen musste. Auch beim Kauf auf Rechnung, oder Mastercard Zahlung (nicht über PayPal) fehlen die Adressen.

     

    Hier wäre zunächst ein Update auf Shopware 5.5. angebracht.

    An einem Update auf Shopware 5.5 sind wir schon dran. Aufgrund von Individualprogrammierungen ist das nur leider nicht mal eben gemacht. Dennoch denke ich sollte PayPal auch mit unserer Version ordnungsgemäß ohne Fehler funktionieren und Shopware Version 5.5 scheint ja wie z.B. bei euch oder bei @wwnorden mit Version 5.5.6 auch nicht die Lösung für das Problem zu sein.

  • wwnordenwwnorden MemberComments: 31 Received thanks: 4 edited March 14 Member since: January 2016

    Moin,

    ich hatte heute wieder Zeit, mich der Thematik auf unserem Testsystem zu nähern.

    Voraussetzung: Shopware 5.5.7 und Bezahlvorgang via PayPal Unified (2.1.2) ohne ExpressCheckout.

    Mit aktivierter Option "Bestellnummer an Paypal übertragen" tritt der Fehler auf, sonst nicht.

    Grund dafür ist, dass in der Klasse PaypalUnified folgende Zeile aufgrufen wird

    public function returnAction()
    {
    ...
    $basketValid = $this->validateBasketExtended($basketId);
    ...
    }

    die wiederum in

     private function validateBasketExtended($basketId = null)
    {
    ...
    $basket = $this->loadBasketFromSignature($basketId);
    ...
    }

    aufruft, so dass in der Session

    sOrderVariables 

    neu gesetzt wird, ohne das berücksichtigt wurde, dass zuvor in der Funktion returnAction() bei $sendOrderNumber und dann weiter in der Funktion sSaveOrder

    public function returnAction()
    {
    ....
    
    if ($sendOrderNumber) {
                    $orderNumber = $this->saveOrder($paymentId, $paymentId, PaymentStatus::PAYMENT_STATUS_OPEN);
    
    ...
    }
    
     public function saveOrder($transactionId, $paymentUniqueId, $paymentStatusId = null, $sendStatusMail = false)
    {
    ...
    $orderNumber = $order->sSaveOrder();
    ...
    }

    die Werte für sOrderNumber gesetzt werden. Siehe

    public function sSaveOrder()
    {
    ...
         if ($this->getSession()->offsetExists('sOrderVariables')) {
                $variables = $this->getSession()->offsetGet('sOrderVariables');
                $variables['sOrderNumber'] = $orderNumber;
                $variables['confirmMailDeliveryFailed'] = $confirmMailDeliveryFailed;
                $this->getSession()->offsetSet('sOrderVariables', $variables);
          }
       return $orderNumber;
    }

    Ohne Übergabe der Bestellnummer zu Paypal wird

    $basketValid = $this->validateBasketExtended($basketId);

    zuerst ausgewertet und danach das saveOrder aufgerufen.

    ...
    // if the order number is not sent to PayPal do it here to avoid broken orders
                if (!$sendOrderNumber) {
                    $orderNumber = $this->saveOrder($paymentId, $paymentId, PaymentStatus::PAYMENT_STATUS_OPEN);
                }
    ...

    Das setzt ordnungsgemäß die sOrderNumber, die wir wie in meinem vorherigen Post beschrieben in der checkout/finishAction benötigen, um die Adressen an die View zu übergeben.

    Die Frage wäre zum einen, ob man mein Vorgehen nachvollziehen kann und so den Fehler nachstellen kann. Zum anderen wäre dann die Frage, ob ggf. in der PaypalUnified Klasse die Basket Validation (ca. 220) grundsätzlich vor dem saveOrder aufgerufen werden könnte. Alternativ wäre meine obige Lösung mit Code anpassen in der checkout/finishAction eine weitere Möglichkeit.

    Beste Grüße

    Edit: Ein Ticket gibt es auch schon dafür: https://issues.shopware.com/issues/PT-10236

    Thanked by 1Michael Telgmann
  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 Member since: June 2014

    Hallo @wwnorden

    Vielen Dank für die ausführliche Erklärung! Wir werden uns das von dir verlinkte Ticket in der nächsten Woche einmal anschauen. 

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 Member since: June 2014

    Hallo,

    das Problem kann ich bisher nur auf meiner Shopware 5.4.x Umgebung nachstellen. Unter dem aktuellen 5.5.x Entwicklungsstand hab ich kein Problem. 

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • Michael TelgmannMichael Telgmann ModeratorComments: 837 Received thanks: 251 Member since: June 2014

    Hallo,

    wir konnten das Problem identifizieren und beheben. Im Laufe der nächsten Woche wird es sehr wahrscheinlich ein Update des Plugins geben.

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

    Thanked by 1wwnorden
Sign In or Register to comment.