Bug in XT-Commerce Gutschein Modul behoben

Mrz 25, 2010 | Internet | 0 Kommentare

Durch einen Kundenauftrag mussten wir feststellen, dass das Gutscheinmodul von XT-Commerce 3.03 und auch 3.04SP21 fehlerbehaftet zu sein scheint. Solange man das Gutschein-Modul von XTC ohne Restriktionen einsetzt, funktioniert es einwandfrei. Allerdings nicht, wenn man den Gutschein an die Produkte bestimmter Kategorien festmachen will.

Um uns viel Arbeit und Zeit zu ersparen, haben wir das Internet durchforstet und dabei mitbekommen, dass es eine Vielzahl von XT-Commerce Nutzern gibt, die genau das gleiche Problem haben. Allerdings gab es auf den diversen Seiten nur Anleitungen, die grundlegende Fehler in diesem Modul beseitigen, aber nicht das Kategorie-Problem.

Eine der interessantesten Anleitungen zu diesem Thema ist hier im TechDivision-Blog zu finden.

Der Fehler tritt auch nur auf, wenn man Produkte mit Attributen in den Warenkorb legt. Diese werden dann in der Bestellübersicht nicht rabattiert. Da wir für diese Problematik keine zufriedenstellende Lösung im Internet finden konnten, haben wir uns selbst an die Fehlersuche gemacht. Nach ca. 2 Tagen der intensiven Suche haben wir dann den Fehler lokalisieren können.

Folgende Zeile:

$pr_c = $this->product_price(xtc_get_prid($order->products[$i]['id']));

muss durch folgende Zeile ersetzt werden:

$pr_c = $this->product_price($order->products[$i]['id']);

Zur Erklärung: Die Funktion xtc_get_prid() ermittelt aus einer Variablen, die Produkt-ID des Hauptartikels (also ohne Attribute). Und genau da liegt das Problem. Die Funktion entfernt die Attribut-IDs aus der Variablen. Wenn man jetzt diesen Funktionsaufruf aus der Zeile entfernt, klappt es einwandfrei.

Die Variable $order->products[$i][‚id‘] kann z.B. den Wert 230 enthalten, also ein Produkt ohne Attribute. Oder aber auch den Wert 230{31}111{36}126, Produkt mit Attributen. In diesem Wert sind die ID’s der Attribute mit enthalten. Und genau da tritt das Problem auf.

Noch ein Tip: Sollte die Berechnung nicht stimmen, einfach mal ausprobieren, in den Einstellungen des Moduls Rabatt-Kupons „ot_cupon“ in der Zusammenfassung den Wert „Inklusive MwSt.“ auf False zu setzen. Bei uns wurde danach der Kupon korrekt berechnet.

Eine überarbeitete Version der Datei ot_coupon.php ist als Download beigefügt. Einfach im Verzeichnis „\includes\modules\order_total“ diese Datei durch die neue Datei ersetzen.

ACHTUNG: Unbedingt vorher eine Kopie von der Original-Datei anfertigen. Wir haben das Skript nur unter XTC 3.03 getestet, es müsste aber auch unter Version 3.04 funktionieren. Wir übernehmen keine Garantie für die korrekte Funktion der Skript-Datei und sich evtl. daraus ergebenen Fehlern. Der Einsatz erfolgt auf eigene Gefahr.

0 Kommentare

Einen Kommentar abschicken

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