Devisenkursfunktion automatisieren
Allgemeines
Für diese Funktion muss ebenfalls keine Installation vorgenommen werden. Diese Funktion setzt aber im Moment der Laufzeit einen Zugriff ins Internet voraus. Die Kurse werden aus dem Netz geladen und dabei die aktuellsten Devisenkurse der EZB (Europäischen Zentralbank) herangezogen.
Es werden keine Geldkurse oder Spannen eingerechnet. Das sind aber die normalen Spannen, die ein Kunde über den Warenwert hinaus an die Bank zu bezahlen hat. Das versteckt die Bank aber hinter „Wechselkursen“ je nach Richtung des Devisentausches. Ggf. sollte man den Kunden darauf noch explizit hinweisen.
Anwendung
Es gibt keine wirklichen weiteren Optionen. Es werden die Kurse geladen, aufbereitet und in eine Datei „s2drates.php“ im Hauptverzeichnis des Projektes („Erzeugte Webseiten“) geschrieben. Damit bindet sich der neue Code in den Link unter dem Preis der Artikeldarstellung ein. Klickt man auf „Preis in anderen Währungen“ geht wie bisher ein Fenster auf und der Umrechnungswert wird dargestellt.
In dem Fenster kann man nun zusätzlich die Menge und den Preis verändern und eine Neuberechnung starten. Das Ergebnis wird sofort angezeigt.
Wichtig ist der Stand der Kurse und es werden nur die wichtigsten ~ 6 der rund 30 verfügbaren Kurse des FX-Fixings der EZB eingebunden. Die Reihenfolge der Kurse entspricht einer vordefinierten Reihenfolge im Tool und kann verändert werden. Es folgt dabei das Währungskürzel, die Währung in Langtext und anschließend das oder die Länder in denen diese Währung gilt.
Die Funktion kann einzeln aufgerufen werden und setzt keine Aufbereitung einer Sitemap usw. voraus, und ist völlig isoliert durchführbar.
Die Datei s2drates.php ist eine Standard-Datei von shop2date und benötigt keine besondere Behandlung bzgl. Integration oder Upload. Da die eigentlichen shop2date Routine rates.js nicht mehr aufgerufen wird, sind alle in shop2date gepflegten Kurse nicht mehr in der Anzeige. Da die Aktualisierung nur im Verzeichnis „Erzeugte Dateien“ vorgenommen wird, würde bei jeder neuen Seitengenerierung die alte Funktion wieder aktiv, und die alte Preisinfo generiert werden und die Kurse aus shop2date wieder wirken.
Wenn es nicht klappt
Achtung: Es wurde mir berichtet, dass auch Shop-Projekte die Seite s2drates.xxx ohne die Erweiterung „php“ haben, sondern mit HTML. Das ist ein Problem, weil dann die richtige modifizierte Seite nicht aufgerufen wird. Das kann man ändern.
Dazu gibt es zwei Lösungen
1. Lösung
Unter Erweiterungen für HTML Seiten wird einfach „php“ eingetragen (nicht ausgewählt, sondern überschrieben). D.h. selbst wenn das Häkchen für Skripterweiterung nicht aktiv ist, wird jede Seite mit Endung „php“ ausgegeben. Damit hat man nie mehr Probleme mit vergessenen Skript-Aktivierungen.
Hier ist die Integration dann wie beschrieben. Vergisst man eine Aktualisierung der FX-Rates, dann wird die bisherige Standard-Rates-Seite angezeigt. Ggf. nimmt man von der Lösung 2 noch die Vergrößerung des Seitenfensters mit, so dass sofort mehr Währungen angezeigt werden.
2. Lösung
In der Datei common/basket_put.ccml:
Code in common/basket_put.ccml (Suchen nach Text openRates() ergibt folgende Passage ALTER CODE)
function openRates() {
var mywindow=window.open("<cc:print value="&site.ratesfile"> ?price="+escape(document.putform.price.value),
"rateswindow","left=10,top=10,width=400,height=4 00,status=yes,scrollbars=yes");
mywindow.focus();
}
Den Code kann man hart ändern in (neuer Code in rot)
function openRates() {
var mywindow=window.open("<cc:print value="&site.url">/s2drates.php ?price="+escape(document.putform.price.value),
"rateswindow","left=10,top=10,width=400,height=6 00,status=yes,scrollbars=yes");
mywindow.focus();
}
Mit der Änderung auf „600“ wird der eröffnete Fenster höher, so dass mehr Währungen sofort sichtbar sind. Das kann man ebenfalls noch gestalten. Zum weiteren Customizen der Funktion sehen Sie bitte ins Kapitel „Customizen“. Hier finden Sie Details, die über die normale Anwendung hinausgehen.