#shopware3.5 #paypalAPI

In meiner täglichen Arbeit stelle ich eine Form von Ungleichzeitigkeit fest. Einerseits ist die aktuelle Entwicklung bei Shopware bei aktuell Version 4.0.6 angelangt, andererseits entdeckt man in älteren Versionen (in dem Fall 3.5.6) durchaus noch offene Punkte, die man bis dato noch nicht kannte.

Im konkreten Fall fiel auf, dass Shopware bei der Registrierung von Kundenaccounts für den deutschen Markt ausgelegt ist. Ich arbeite mit Shopware seit 5 Jahren und in nahezu allen Fällen war dieser Fakt bis dato ein klarer Vorteil. Bei Magento musste immer erst recht umständlich die nervtötende „Bundesland als Pflichfeld“ – Eingabe deaktiviert werden. Das spart man sich alles mit Shopware. Jetzt hatte ich aber zum ersten Mal den Fall eines Shops mit vielen Bestellungen aus USA (und Kanada) und auf einmal fiel auf: Hauptbezahlmethode hier ist Paypal und die Paypal-API verlangt für Nordamerika zwingend den Bundesstaat in 2-stelligem Format nach dieser Liste: https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_StateandProvinceCodes

Und das sorgte erstmal für Fehlermeldungen direkt von der Paypal-API. Das Thema wurde schon mal im Shopware Forum aufgegriffen (Link am Ende des Artikels), allerdings dort auch eher ad hoc behandelt. Der Lösungsansatz hier stimmt soweit auch erstmal, allerdings tauchten weitere Probleme auf.

Die Implementierung eines einfachen Input-Feldes mit dem Hinweise (bitte Staat in 2-Stellen eingeben) half wenig – Kunden überlasen schlicht den Hinweis und schrieben „New York“ statt dem erwarteten „NY“ hinein. Also musste ein Drop-Down Menü her. Haken an der Sache: Die Staaten für Kanada sollten nur bei Kanada angezeigt werden, die von den USA nur die USA.

Dazu ist die Stelle einer dieser Klassiker bei der Shopware Programmierung: man muss einiges beachten. Denn sonst sind die Auswirkungen unschön. In etwas wie folgt:
– Bei der Registrierung kann ich erstmal nur eine Rechnungsadresse auswählen und auf Eingabe der Lieferadresse verzichten – trotzdem muss in dem Fall der Bundesstaat auch bei der Lieferadresse übernommen werden.
– Ich kann aber auch eine Lieferadresse eingeben
– Die Adresse wird an verschiedenen Stellen angezeigt (Account, Checkout, Button Lösungs-Plugin!), hier sollte der Staat auch angezeigt werden.
– Die Lieferadresse lässt sich im Nachhinein vom Kunden ändern (etwa im Checkout oder Account). Evtl. habe ich hier zusatzplugins installiert, die eingreifen
– Bestellungen aus anderen Ländern sollen nach wie vor ohne die zusätzlicheAbfrage auskommen.
– Je nach Einstellung filtert die Datenvaldierung im Controller Account oder Register mein text1 Feld.

Im Endeffekt hatte ich mich für die Lösung mit folgenden Einschränkungen entschieden:
– Javascript basiert
– Bundesstaat wird nicht zusätzlich als Pflichtfeld validiert

Der Quellcode findet sich unter http://forum.shopware.de/post55873.html#p55873

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.