# PayPal Unified: Rechnungs- und Lieferadresse auf /finish leer

**URL:** <https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623>\
**Category:** Plugins\
**Tags:** offizielle-shopware-\
**Created:** [15. August 2018 um 08:36 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623 "2018-08-15T08:36:38Z")\
**Posts on this page:** 11\
**Page:** 2

<div class="post-metadata">

**Author:** ![wwnorden](https://avatars.discourse-cdn.com/v4/letter/w/db5fbb/32.png) [@wwnorden](https://forum.shopware.com/u/wwnorden)\
**Post date:** [1. Februar 2019 um 09:10 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/21 "2019-02-01T09:10:04Z")

</div>

[@Michael Telgmann]([http://forum.shopware.com/profile/17553/Michael](http://forum.shopware.com/profile/17553/Michael) Telgmann “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.

---

<div class="post-metadata">

**Author:** ![Michael\_Telgmann](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/michael_telgmann/32/20289_2.png) [@Michael\_Telgmann](https://forum.shopware.com/u/Michael_Telgmann)\
**Post date:** [1. Februar 2019 um 09:19 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/22 "2019-02-01T09:19:59Z")

</div>

Hallo,

ich habe als host “localhost” und als basePath z.B. “5.5”&nbsp;und natürlich&nbsp;können wir PayPal nur im Sandbox Modus testen&nbsp; ![Wink](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/b3785da0cbf2c8566cb535dcf55b2730b5224899.png "Wink")

Viele Grüße aus Schöppingen

![cool](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/86c57fbace799dd4eb1f1b8a2d3bdc1733f0aea1.png "cool")&nbsp;Michael Telgmann

---

<div class="post-metadata">

**Author:** ![wwnorden](https://avatars.discourse-cdn.com/v4/letter/w/db5fbb/32.png) [@wwnorden](https://forum.shopware.com/u/wwnorden)\
**Post date:** [1. Februar 2019 um 11:06 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/23 "2019-02-01T11:06:33Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![wwnorden](https://avatars.discourse-cdn.com/v4/letter/w/db5fbb/32.png) [@wwnorden](https://forum.shopware.com/u/wwnorden)\
**Post date:** [14. Februar 2019 um 07:27 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/24 "2019-02-14T07:27:24Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![halbe\_rahmen](https://avatars.discourse-cdn.com/v4/letter/h/0ea827/32.png) [@halbe\_rahmen](https://forum.shopware.com/u/halbe_rahmen)\
**Post date:** [15. Februar 2019 um 09:48 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/25 "2019-02-15T09:48:23Z")

</div>

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.

&nbsp;

---

<div class="post-metadata">

**Author:** ![mlampert](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/mlampert/32/24136_2.png) [@mlampert](https://forum.shopware.com/u/mlampert)\
**Post date:** [15. Februar 2019 um 09:50 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/26 "2019-02-15T09:50:53Z")

</div>

> [@halbe\_rahmen schrieb:](https://forum.shopware.com/profile/25650/halbe_rahmen "halbe\_rahmen")
> 
> 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.
> 
> &nbsp;

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

---

<div class="post-metadata">

**Author:** ![halbe\_rahmen](https://avatars.discourse-cdn.com/v4/letter/h/0ea827/32.png) [@halbe\_rahmen](https://forum.shopware.com/u/halbe_rahmen)\
**Post date:** [15. Februar 2019 um 10:06 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/27 "2019-02-15T10:06:33Z")

</div>

> [@mlampert schrieb:](https://forum.shopware.com/profile/24815/mlampert "mlampert")
> 
> > [@halbe\_rahmen schrieb:](https://forum.shopware.com/profile/25650/halbe_rahmen "halbe\_rahmen")
> > 
> > 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.
> > 
> > &nbsp;
> 
> 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.

---

<div class="post-metadata">

**Author:** ![wwnorden](https://avatars.discourse-cdn.com/v4/letter/w/db5fbb/32.png) [@wwnorden](https://forum.shopware.com/u/wwnorden)\
**Post date:** [8. März 2019 um 09:54 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/28 "2019-03-08T09:54:03Z")

</div>

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](https://issues.shopware.com/issues/PT-10236)

---

<div class="post-metadata">

**Author:** ![Michael\_Telgmann](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/michael_telgmann/32/20289_2.png) [@Michael\_Telgmann](https://forum.shopware.com/u/Michael_Telgmann)\
**Post date:** [8. März 2019 um 14:11 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/29 "2019-03-08T14:11:10Z")

</div>

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.&nbsp;

Viele Grüße aus Schöppingen

![cool](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/shopware.png "cool")&nbsp;Michael Telgmann

---

<div class="post-metadata">

**Author:** ![Michael\_Telgmann](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/michael_telgmann/32/20289_2.png) [@Michael\_Telgmann](https://forum.shopware.com/u/Michael_Telgmann)\
**Post date:** [14. März 2019 um 12:47 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/30 "2019-03-14T12:47:49Z")

</div>

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.&nbsp;

Viele Grüße aus Schöppingen

![cool](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/shopware.png "cool")&nbsp;Michael Telgmann

---

<div class="post-metadata">

**Author:** ![Michael\_Telgmann](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/michael_telgmann/32/20289_2.png) [@Michael\_Telgmann](https://forum.shopware.com/u/Michael_Telgmann)\
**Post date:** [14. März 2019 um 15:24 UTC](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623/31 "2019-03-14T15:24:02Z")

</div>

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](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/shopware.png "cool")&nbsp;Michael Telgmann

[Vorherige Seite](https://forum.shopware.com/t/paypal-unified-rechnungs-und-lieferadresse-auf-finish-leer/54623.md?page=1)
