Beantwortet

Xentral + Shopware + Paypal


Benutzerebene 3
Abzeichen

Guten Tag,

 

aktuell werden die Zahlungseingange von Paypal nicht mehr verknüpft. Es gab da ja eine Neuerung von Paypal. Hat das Einfluß auf die Schnittstelle gehabt?

icon

Beste Antwort von Büsra Özkan 12 July 2022, 10:40

Original anzeigen

4 Antworten

Benutzerebene 4
Abzeichen +1

Hey Niklas,
 
es ist gerade eine Unstimmigkeit bekannt, dass die Transaktions-ID von PayPal Zahlungen nicht übereinstimmen bzw. nicht verknüpft werden in Zusammenhang mit Shopware 6 Aufträgen.
 
Wir können nicht sagen, ob das mit der Neuerung von PayPal zusammenhängt oder nicht, sowas kann immer an irgendwelchen Änderungen liegen :/
 
Du kannst aber die folgende Smarty Vorlage als Workaround nutzen.
 
{if $cart->zahlungsweise == "PayPal"}
{assign var=transData value=$cart->transaction_data->data}
 
{foreach key=transKey item=trans from=$transData}
{if $trans->attributes->paymentMethodId == "71f8b40a493043a483e7c72f6edb77e0"}
<transaktionsnummer><![CDATA[{$trans->attributes->customFields->swag_paypal_resource_id}]]></transaktionsnummer>
{/if}
{/foreach}
{else}
<transaktionsnummer></transaktionsnummer>
{foreach key=addressKey item=address from=$orderData->transactions->data}
  <transaktionsnummer><![CDATA[{$orderData->transactionId}]]></transaktionsnummer>
{/foreach}
{/if}
 
Die PaymentMethodID muss entsprechend angepasst werden oder ggf. die IF-Anweisung gelöscht werden.
 
 
Hoffe, dass dir das weiterhilft bis die Unstimmigkeit behoben wurde!
 
 
Wünsche dir sonnige Tage! ☀
 
LG
Büsra

Benutzerebene 5
Abzeichen +4

Hallo,

wir nutzen seit gestern die neue Schnittstelle von Paypal zu Shopware 6.

Seitdem matched aber keine Zahlung.

Grund:

Der Wert aus swag_paypal_order_id wird in die Transaktionsnummer gespeichert. Paypal übermittelt aber bei den Zahlungseingängen den Wert aus swag_paypal_resource_id.

Im XML der Shopschnittstelle sind beide Werte hinterlegt, es wird also beides von Shopware übernommen. Xentral müsste also nur den korrekten Wert (aus swag_paypal_resource_id) übernehmen.

Müssen wir das über Smarty anpassen? Da kenn ich mich leider nicht aus.

Im Standard-Smarty-Template ist folgender Bereich zu finden:

 <transaktionsnummer></transaktionsnummer>

 {foreach key=addressKey item=address from=$orderData->transactions->data}

   <transaktionsnummer><![CDATA[{$orderData->transactionId}]]></transaktionsnummer>

 {/foreach}

Wie muss dieser ersetzt oder ergänzt werden, damit dieser bei PayPal-Zahlungen greift?

Welcher Wert muss bei der IF-Klausel bei zahlungsweise stehen? (“PayPal”). Wir haben in Xentral drei Zahlungsweisen:

  • PayPal SEPA Lastschrift / paypal_sepa_lastschrift
  • PayPal Rechnungskauf / paypal_rechnungskauf
  • PayPal / paypal

Neben PayPal nutzen wir auch Stripe und weitere Zahlungsdienstleister in Shopware, es muss also sicherlich mit der IF-Anweisung gearbeitet werden. Sie sollte aber dann alle drei PayPal-Zahlungsweisen abgreifen und modifizieren.

Benutzerebene 4
Abzeichen +1

Hi HB3, 

 

wie @Büsra Özkan bereits sagte, es ist aktuell eine Unstimmigkeit bekannt, dass die Transaktions-ID von PayPal Zahlungen nicht übereinstimmen bzw. nicht gematched werden in Zusammenhang mit Shopware 6 Aufträgen

 

Genau, du kannst hier einen Workaround via Smarty Template implementieren, mit dem die korrekte Nummer importiert wird. Dazu kannst du die Vorlage von Büsra nutzen. 

 

Wenn ihr mehrere Zahlungsweisen habt, kannst du mit ''or'' Operatoren arbeiten.
Gerne sende ich dir dazu eine genauere Beschreibung: Smarty Operatoren

 

Ich hoffe ich konnte dir damit weiterhelfen. 

 

Viele Grüße

Sandra 

Benutzerebene 3
Abzeichen +1

@Sandra Protasiuk 
Nachfolgend wie wir es mit der or Verknüpfung eingebunden haben, nur funktioniert es leider nicht. Wo ist der Fehler bitte?

{if $cart->zahlungsweise == "PayPal"}
{assign var=transData value=$cart->transaction_data->data}
{foreach key=transKey item=trans from=$transData}
{if $trans->attributes->paymentMethodId == "4a55b4e67e8f48439662befce5cb4b24" or $trans->attributes->paymentMethodId == "fa6ef99f0afd47d7a2944399d5024a39" or $trans->attributes->paymentMethodId == "6d0b891c88cf4577b7def65815cb1d47" or $trans->attributes->paymentMethodId == "0eb3ba5906604f0caa7493b9d230754d" or $trans->attributes->paymentMethodId == "43153052de4222ed9928e13fa03b9fbe"}
<transaktionsnummer><![CDATA[{$trans->attributes->customFields->swag_paypal_resource_id}]]></transaktionsnummer>
{/if}
{/foreach}
{else}
<transaktionsnummer></transaktionsnummer>
{foreach key=addressKey item=address from=$orderData->transactions->data}
<transaktionsnummer><![CDATA[{$orderData->transactionId}]]></transaktionsnummer>
{/foreach}
{/if}

Anbei auch dazu das Mapping in der Schnittstelle:

Paypal Mapping

Wir brauchen hier dringend wieder eine funktionierende Lösung da der Kunde den Autoversand nutzen möchte.

Antworten