Paypal Sandbox meldet, XXX versendet nicht an diesen Ort. Verwenden Sie eine andere Adresse

Ok, das habe ich jetzt auch mal ausprobiert: Versandarten keine Benutzergruppen, aber dafür nur in den Versanskostenregeln.
Leider bekomme ich dann aber die falschen Versandkosten angezeigt. Es werden die von “Standard” angezeigt, statt die der Händler.

Ich schreib hier mal meine komplette Konfiguration rein:

Es gibt 2 Benutzergruppen, die wichtig sind “Endkunden” und “Händler”. Per Modul wird jeder “Endkunde” der sich neu registriert. “Händler” werden nur manuell erstellt. Ein Benutzer ist IMMER entweder “Endkunde” oder “Händler”.

[B]Zahlungsart Paypal:[/B]
Benutzergruppe: Endlunde, Händler, Kunde, noch nicht gekauft
Länder: keine

[B]Versandart Standard[/B]
Benutzergruppe: Endkunde, noch nicht gekauft
Zahlungsart: Paypal, Vorauskasse
Länder: alle
Versandkostenregeln: Versandkosten Endkunde bis 50 EUR, Versandkosten Endkunde ab 50 EUR

[B]Versandart: Versand Händler[/B]
Benutzergruppe: Händler
Zahlungsart: Paypal, Rechnung
Länder: Deutschland
Versandkostenregeln: Versandkosten Händler mindestens 50 EUR, Versandkosten Händler ab 250 EUR

Hierbei gibt es bei Endkunden und Händler unterschiedliche Versandkosten.

[B]Versandkostenregel: Endkunde bis 50 EUR[/B]
Benutzergruppe: Endkunde, Inlandskunde, Kunde, noch nicht gekauft
Länder: Deutschland

[B]Versandkostenregel: Endkunde ab 50 EUR[/B]
Benutzergruppe: wie oben
Länder: Deutschland

[B]Versandkosteregel: Händler mindestens 50 EUR[/B]
Benutzergruppe: Händler
Länder: Deutschland

[B]Versandkosteregel: Händler ab 250 EUR[/B]
Benutzergruppe: Händler
Länder: Deutschland

Jetzt geht es auf einmal. Ich glaube, ich habe das Land Deutschland bei den Versandkostenregeln der Endkunden hinzugefügt. Da stand gar nichts drin.

Jetzt habe ich nur noch das Problem, dass beim Kauf mit Paypal Express-Button der Händler die Versandkosten 0 bekommt, obwohl sie nicht 4.76 sein sollten. Es sieht so aus, als würde Paypal Express die Daten vom Standard Versand nehmen, obwohl im Shop alles korrekt aussieht: Versandkosten werden korrekt angezeigt.

**** grrr ****

Ok, ich hab jetzt zusammen mit einem Kollegen ALLES ausprobiert, was man sich an Einstellungen in Oxid nur vorstellen kann. Ich bin zu dem Ergebnis gekommen, dass es sich hier um einen Bug handeln muss:

In den Versandkostenregeln für Endkunden muss ich bei Benutzergruppen
Endkunde, Kunde, Inlandskunde (ich glaube das ist ausschlaggebend), Noch nicht gekauft
einstellen. Ansonsten bekomme ich die oben genannte Fehlermeldung “xxx versendet nicht an diesen Ort”

Dadurch greift Paypal direct (und nur diese Funktion) auch bei Händlern auf die Versandkostenregel der Endkunden, statt auf die der Händler. Das führt zu den falschen Versandkosten.

Alle anderen Funktionen sind jetzt korrekt:
im Oxid funktionieren alle Versandkostenregeln, wie definiert
bei normalen Paypal funktionieren auch alle Versandkostenregeln, wie gewünscht.
NUR bei Paypal Express greifen die falschen Versandkosten.

Kann sich ein Entwickler des Paypal Moduls hierzu äußern?

Grüße,

Cat.

PayPal Modul Entwickler schauen hier nicht rein.
Habt ihr schon ein anderes PayPal Modul ausprobiert?

Du kannst einen Bug hier aufmachen (in englisch): https://bugs.oxid-esales.com
Da gibt es schon ähnliche Reports und die Entwickler haben sich dort auch dazu geäußert.

PS: rechts oben bei “Project:” auf “Module Paypal” umschalten.

Ich hatte jetzt auch mit diesem Problem zu kämpfen weswegen ich einmal aufführe was hier vermutlich schief läuft.

das Problem ist auf eine restriktierung der Zahlungsmethode auf einen Bestimmten Nutzergruppe zurück zu führen

und zwar wird hier im paypal modul die funktion isPayPalInDeliverySet() benutzt welche auf eine Oxid vendor classe zugrieft. PaymentList::class

PaymentList->_getFilterSelect() gibt mir hier folgenden querie aus.

select oxv_oxpayments_de.* from
(
select distinct oxv_oxpayments_de.*
from oxv_oxpayments_de
left join oxobject2group ON oxobject2group.oxobjectid = oxv_oxpayments_de.oxid
inner join oxobject2payment
ON oxobject2payment.oxobjectid = ‘fb3c5bbb95f4cd082f3986350a19ce00’ and oxobject2payment.oxpaymentid = oxv_oxpayments_de.oxid
where oxv_oxpayments_de.oxactive=‘1’
and oxv_oxpayments_de.oxfromboni <= ‘0’
and oxv_oxpayments_de.oxfromamount <= ‘178.08’
and oxv_oxpayments_de.oxtoamount >= ‘178.08’
order by oxv_oxpayments_de.oxsort asc ) as oxv_oxpayments_de

where (
select
if( exists(
select 1 from oxobject2payment as ss1, oxv_oxcountry_de
where oxv_oxcountry_de.oxid=ss1.oxobjectid and ss1.oxpaymentid=oxv_oxpayments_de.OXID and ss1.oxtype=‘oxcountry’ limit 1 ),
exists(
select 1 from oxobject2payment as s1
where s1.oxpaymentid=oxv_oxpayments_de.OXID and s1.oxtype=‘oxcountry’ and s1.OXOBJECTID=‘a7c40f631fc920687.20179984’ limit 1 ),
1)
&&
if( exists(
select 1 from oxobject2group as ss3, oxv_oxgroups_de
where oxv_oxgroups_de.oxid=ss3.oxgroupsid and ss3.OXOBJECTID=oxv_oxpayments_de.OXID limit 1 ),
exists(
select 1 from oxobject2group as s3
where s3.OXOBJECTID=oxv_oxpayments_de.OXID and s3.OXGROUPSID in ( ‘oxidnewcustomer’, ‘oxidnotyetordered’ ) limit 1 ),
1
)
)
order by oxv_oxpayments_de.oxsort asc

Siehe
s3.OXGROUPSID in ( 'oxidnewcustomer', 'oxidnotyetordered' )
hier scheint er zu prüfen ob die Zahlungsmethode “oxidpaypal” zu diesen Benutzergruppen zugerodnet ist.
das ist entwede falsch oder irgend wo anders im backend falsch konfiguriert, weil
mein Benutzer nicht in diesen Gruppen ist
Artikel, versandmethode, Zahlungsmethode sind nicht auf diese Benutzergruppen restriktiert
nur die Zahlungsmethode mit der ID “oxidpaypal” (im backend paypal genannt) ist auf “oxid_admin” restriktiert.

Er erkennt also irgendwo eine falsche Zuordnung von Benutzergruppen
in PaymentList->_getFilterSelect() beim Teil $oUser->getUserGroups()

Sobald ich diese restriktion für die Zahlungsmethode auf die Benutzergruppe “oxid_admin” wieder raus nehme, fällt dieser ganze Teil in der querie Erstellung weg und der Zahlungsprozess läuft wieder ohne Fehlermeldung.

1 Like