PayPal Unified: Rechnungs- und Lieferadresse auf /finish leer

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.