xt:Commerce Webshop Shop Support

xt:Commerce Webshop Shop Support (http://www.xt-commerce.com/forum/)
-   xt:Commerce 4.0 - Adminbereich (http://www.xt-commerce.com/forum/xt-commerce-4-0-adminbereich/)
-   -   Zahlungsweise nach Land beschränken (http://www.xt-commerce.com/forum/xt-commerce-4-0-adminbereich/84710-zahlungsweise-nach-land-beschr-nken.html)

alextrautmann 09.08.2011 18:27

Zahlungsweise nach Land beschränken
 
Hallo,

Ich möchte Zahlungsweisen je nach Land verfügbar oder nicht verfügbar haben.

Beispiel: Ich möchte Nachnahme nur für Kunden mit Adresse in Deutschland anbieten. Oder: Ich möchte, daß Billpay auch nur für Kunden in Deutschland angeboten wird.

Im XTC Webshop 3 war das kein Problem. Aber mir scheint, im Veyton sind Beschränkungen der Zahlungsweise nach Land nicht einzustellen.

Danke für Deine Hilfe! Liebe Grüße.

jwinkel 09.08.2011 18:43

Kein Problem: Bei der Zahlungsweise gibt es Zahlungs-Gebühren, die nach Zonen (Afrika, EU,.. ) und Ländern getrennt eingerichtet werden können. In der Zahlungsgebühr gibts dann die Auswahl "Zahlungsmodul aktiv".
Ist ein wenig versteckt, funktioniert so aber auch in komplexen Umgebungen.

Die einzige Einschränkung besteht darin, dass die Auswahl grundsätzlich immer nach der Rechnungsadresse getroffen wird - wir brauchten das nach der Lieferadresse, da wurde es dann tricky.

alextrautmann 10.08.2011 12:20

Hat geklappt
 
Danke, jwinkel, hat prima geklappt!

netactive 21.08.2012 14:29

Ich muss diesen Thread mal wieder ausbuddeln, da ich genau hiermit grad ein Problem habe.

Folgendes:
Ich habe für die Zahlungsart "Nachnahme" Gebühren derfiniert und zwar so, dass von 0 bis 80.99€ der Aufschlag 8€ beträgt - ab 81€ beträgt er 0€, was soweit auch klappt.

Ich möchte nun allerdings den Zuschlag für Österreich von 0 bis 50.99€ auf 4.20€ setzen und ab 51€ auf 0€, diese Einstellung wird allerdings komplett ignoriert. Bei "Beschränkung auf Zone" habe ich beide Varianten probiert ("EU" und "Keine Zone"), jedoch ohne Erfolg.
Wenn ich aus meiner Konfiguration die EU komplett rausnehme, dann wird die Zahlungsart gar nicht angezeigt, obwohl Österreich alleine definiert ist. Natürlich habe ich als Adresse im Shop Österreich ausgewählt...

Wo liegt das Problem?

netactive 21.08.2012 18:17

Wir haben uns nun selbst geholfen und sind der Meinung, dass es sich hierbei um einen Bug in der class.payment.php handelt. Unserer Ansicht nach greift unter Umständen der Filter für die Länder (Funktion: _filterCountry) nicht korrekt, so dass nach dem Filter im Daten-Array immer noch Gebühren-Einträge zur Zone und zum Land vorhanden sind.

Unseren "Bugfix" haben wir nun als Plugin im Hook "class.payment.php:_buildData_filter" eingebaut und zwar mit folgendem Code:
PHP-Code:

$countryCodeActive false;
$newCosts = Array();
while(list(
$key1,$value1) = each($value['costs'])){
    if(
$value1['payment_country_code']!='NULL' && $value1['payment_country_code']!='' && $value1['payment_country_code']!='0'){
        
$countryCodeActive true;
        
$newCosts[] = $value1;
    }
}
if(
$countryCodeActive){
    
$value['costs'] = $newCosts;


Somit wird dafür gesorgt - sollte eine Gebühr für ein Land angegeben sein - dass die entsprechende Gebühr für die Zone in der sich das Land befindet, entfernt wird und somit nicht mehr greifen kann, wie es ggf. der Fall war.

Ich hoffe, wir haben da nun keinen Denkfehler drin, aber in unseren ersten Tests funktionierte es so wunderbar wie gewünscht/gewollt.

Eine kleine Anmerkung noch:
Unser Ansatz funktioniert natürlich nur, wenn man ihn nach den vorherigen Filtern einbaut. Sollte er direkt in _filterCountry integriert werden, gibt es vermutlich ungewollte Nebeneffekte...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr.

Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright xt:Commerce GmbH


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54