Archiv

Archiv für die Kategorie ‘Programmierung’

OXID eShop 4.3.0 … und immer kommt der Adminlogin!

8. April 2010

Der Ein oder Andere hat sich eventuell schon die neuen OXID eShop (Community Edition) in der Version 4.3.0 installiert.

Alles schön und gut, setzt man jedoch auf Module von Drittanbietern werden diese evtl. nicht mehr funktionieren. Beim Aufruf dieser (im Admin) kommt man auf einmal wieder zum Administrationslogin.

Wieso? Das hängt mir einer kleinen, aber feinern, Veränderung zusammen, die leider nur halbherzig mitgeteilt wurde.

Normalerweise wird beim Klick auf einen Navigationspunkt im Admin ein Frameset aufgerunfen, welches folgenden Tag im Link enthält

[{$shop->selflink}]?[{ $editurl }]

Ändert man dies nun ab, auf

[{$shop->selflink}]&[{ $editurl }]

Dies hängt mit der, seit 4.3.0, neu eingeführen Adminvariable sToken zusammen.

Programmierung , , , ,

osCommerce: DHL Paketstatus XML API

4. September 2009

DHL Es schaut doch wesentlich schöner aus, wenn der Paketstatus in die eigene Website und somit ins eigene Design integriert werden kann, als immer nur auf den DHL-Link zu verweisen.

Jedoch habe ich nach gründlicher Recherche keine Informationen zu einer Schnittstelle gefunden. Nachdem wir beruflich selbst über DHL versenden, habe ich dort einmal eine Anfrage gestellt.

Das Ergebnis: Prinzipiell gibt es eine API, basierend auf XML, mit zwei unterschiedlichen Zugriffsmöglichkeiten.

Einen gesicherten Zugang für Geschäftskunden und einen offenen für Privatkunden. Die sogenannte “Track & Trace DASS – Online Direktaufrufschnittstelle” bekommen DHL-Kunden beim technischen Support. Dies ist ein mehrseitiges PDF mit genauer Anleitung und Beispielen. Neben der aktuellen Statusabfrage umfasst diese auch noch den kompletten Sendungslauf, sowie Zustellinformationen und -nachweis.

Aber widmen wir uns nun der public API. Mit dieser kann man sich den aktuellen Paketstatus und ein paar zusätzliche Details holen kann. Folgend ein Beispiel anhand der Paketnummer 258263342319. Die Postleitzahl muss nicht mehr zwingend übergeben werden.

Aufruf (GET)

http://nolp.dhl.de/nextt-online-public/direct/nexttjlibpublicservlet?xml=<?xml version=”1.0″ encoding=”ISO-8859-1″?><data  appname=”nol-public” password=”anfang” request=”get-status-for-public-user” language-code=”de”><data piece-code=”258263342319″ zip-code=”71287″></data></data>

Antwort (XML)

<?xml version=”1.0″ encoding=”ISO-8859-1″ ?>
<data>
<data name=”piece-status-public-list” _piece-code=”726510758012″ _zip-code=”27472″ code=”0″>
<data _build-time=”2007-02-01 13:30:15.000899″ name=”piece-status-public” piece-id=”0″ leitcode=”258263334332″ piece-identifier=”72651075801″ piece-code=”726510758012″ identifier-type=”1″ recipient-name=”Appiarius” street-name=”Nordersteinstr.” house-number=”36″ postal-code=”27472″ city-name=”Cuxhaven” last-event-timestamp=”11.01.07 09:42″ shipment-type=”" status-next=”" status=”Die Sendung wurde ausgeliefert.” error-status=”" delivery-event-flag=”1″ />
</data>
</data>

Beispiel (PHP)

$dhlpaketnr = “xxx”;
if(!empty($dhlpaketnr)) {
$dhlxml = simplexml_load_file(“http://nolp.dhl.de/nextt-online-public/direct/nexttjlibpublicservlet?xml=%3C?xml%20version=%221.0%22%20encoding=%22ISO-8859-1%22?%3E%3Cdata%20%20appname=%22nol-public%22%20password=%22anfang%22%20request=%22get-status-for-public-user%22%20language-code=%     22de%22%3E%3Cdata%20piece-code=%22%20″.$dhlpaketnr.”%22%20zip-code=%22%22%3E%3C/data%3E%3C/data%3E”);
if($dhlxml->data->data["piece-status"] == 0) {
echo ‘<br />’;
echo ‘Paketnummer: ‘.$dhlpaketnr.’<br />’;
echo ‘Empfänger: ‘.$dhlxml->data->data["recipient-name"].’<br />’;
echo ‘Status: ‘.$dhlxml->data->data["status"];
echo ‘Datum: ‘.$dhlxml->data->data["last-event-timestamp"].’<br />’;
} else {
echo ‘<br />’;
echo ‘<i>Es konnten keine zu diesem Paket ermittelt werden!</i>’;
}
// alle informationen
// print_r($dhlxml);
}

Sollte der  piece-status nicht 0 sein, gab es ein Problem mit der Anfrage. Jedoch gibt es hier eine Fehlerliste mit ca. 30 Codes, diese ist aber jedoch wieder nur für DHL-Kunden.

Nachdem ich diese Schnittstelle als erstes in einen osCommerce-Shop integriert habe, gibt´s diese dort auch nochmal zum Download, bzw. Support im Forum. Andere Contribs und Erweiterung zu osCommerce von mir kann man hier einsehen. In Kürze wird auch noch ein Modul für den OXID eShop folgen.

Programmierung , , , , , , ,

OXID eShop: SEO URLs in Kleinbuchstaben

2. September 2009

Ich persönlich finde es nicht schön, wenn die “sprechenden URLs” eine Mischung aus Groß- und Kleinschreibung sind. Eigentlich wird doch im Internet alles klein geschrieben ;-)

Um die SEO-URLs im Shop immer in Kleinbuchstaben zu bekommen, muss man(n) diese vor dem Speichern nur konvertieren.

Das ganze passiert in der core/oxseoencoder.php, Zeile 605.

original Code:

$sSeoUrl = $oDb->quote( $sSeoUrl );

abgeänderter Code:

$sSeoUrl = $oDb->quote( strtolower($sSeoUrl) );

Das Problem: Wenn man direkt in den OXID-Dateien eine Änderung vornimmt, muss man beim nächsten Update – und das kommt regelmäßig – aufpassen, dass diese Datei nicht wieder überschrieben wird. Normalerweise baut man sich dafür auch ein kleines Modul, jedoch war mir der Aufwand wegen einer Zeile zu groß ;-)

Anmerkung: Auch “fixierte SEO-URLs” werden in Kleinbuchstaben gespeichert.

Getstet in Version: OD eShop Community Edition 4.1.5 (21618)

Programmierung , , , , ,