Nachdem ich nun schon eine Weile nach einer Lösung gesucht und nichts gefunden habe will ich meine Ergebnisse kundtun:
Es ist ja (zumindest bei uns, XTC 3.04 SP1 + JTL 0.9.9.629 + UOS Zahlungsmodul) bei Kreditkartenzahlungen "normal", daß eine Bestellung schon vor der Bezahlung per Kreditkarte in JTL eingelesen werden kann, obwohl sie noch gar nicht bezahlt worden ist. Das ist sehr ärgerlich, da man so nie ohne Handarbeit sagen kann, ob eine eingegangene Bestellung auch wirklich bezahlt worden ist. Ist wohl bei anderen Zahlungsmodulen die nicht direkt von JTL unterstützt werden auch so.
Um dies zu verhindern habe ich an der GetBestellung.php im Ordner /admin/includes/modules/jtlwawi_connector/dbeS folgendes geändert:
Am Ende der SQL-Abfrage (bei mir Zeile 21, beginnt mit "$cur_query = eS_execute_query") habe ich nach "is NULL" und vor "limit 1" folgenden Code eingefügt: "and NOT (orders.orders_status=1 and orders.payment_method='uos_utdirekt_kk_modul')"
Sieht also insgesamt so aus:
Damit wird erreicht, das bei allen Bestellungen die nicht mit dem UOS-Modul uos_utdirekt_kk_modul getätigt werden keine Änderungen stattfinden - alles wie gehabt. Wenn aber eine Bestellung über UOS den Status "offen" (orders.orders_status=1) hat wird sie nicht zu JTL übertragen. Erst wenn der Kunde bezahlt hat wird der Status auf "Bezahlt Transfer" (orders.orders_status=8 ) gesetzt und der Auftrag an JTL übermittelt.
Funktioniert natürlich auch mit anderen Modulen wenn man den Namen bei orders.payment_method ändert. Bei anderen Statusnummern (siehe orders_status) muss man das natürlich auch anpassen. Habe es bei uns getestet und für gut befunden. Kann natürlich auch für mehrere Module gleichzeitig gemacht werden, wird aber komplizierter vom SQL-Code her.
Da ich keine XTC- bzw. JTL-Profi bin kann ich natürlich nicht für Nebenwirkungen garantieren, deshalb bitte ich ein paar Profi's hier meine Gedankengänge zu überprüfen. Bei einer schon voher veränderten SQL-Abfrage können natürlich Fehler auftauchen, bei mir war sie Original. Sollte mir hier ein Fehler unterlaufen sein, immer her mit den wüsten Beschimpfungen .
Es ist ja (zumindest bei uns, XTC 3.04 SP1 + JTL 0.9.9.629 + UOS Zahlungsmodul) bei Kreditkartenzahlungen "normal", daß eine Bestellung schon vor der Bezahlung per Kreditkarte in JTL eingelesen werden kann, obwohl sie noch gar nicht bezahlt worden ist. Das ist sehr ärgerlich, da man so nie ohne Handarbeit sagen kann, ob eine eingegangene Bestellung auch wirklich bezahlt worden ist. Ist wohl bei anderen Zahlungsmodulen die nicht direkt von JTL unterstützt werden auch so.
Um dies zu verhindern habe ich an der GetBestellung.php im Ordner /admin/includes/modules/jtlwawi_connector/dbeS folgendes geändert:
Am Ende der SQL-Abfrage (bei mir Zeile 21, beginnt mit "$cur_query = eS_execute_query") habe ich nach "is NULL" und vor "limit 1" folgenden Code eingefügt: "and NOT (orders.orders_status=1 and orders.payment_method='uos_utdirekt_kk_modul')"
Sieht also insgesamt so aus:
$cur_query = eS_execute_query("select orders.payment_method, orders.orders_id, orders.customers_id, orders.comments, date_format(orders.date_purchased, \"%d.%m.%Y\") as ErstelltDatumF from orders LEFT JOIN eazysales_sentorders ON orders.orders_id=eazysales_sentorders.orders_id where eazysales_sentorders.orders_id is NULL and NOT (orders.orders_status=1 and orders.payment_method='uos_utdirekt_kk_modul') limit 1");
Damit wird erreicht, das bei allen Bestellungen die nicht mit dem UOS-Modul uos_utdirekt_kk_modul getätigt werden keine Änderungen stattfinden - alles wie gehabt. Wenn aber eine Bestellung über UOS den Status "offen" (orders.orders_status=1) hat wird sie nicht zu JTL übertragen. Erst wenn der Kunde bezahlt hat wird der Status auf "Bezahlt Transfer" (orders.orders_status=8 ) gesetzt und der Auftrag an JTL übermittelt.
Funktioniert natürlich auch mit anderen Modulen wenn man den Namen bei orders.payment_method ändert. Bei anderen Statusnummern (siehe orders_status) muss man das natürlich auch anpassen. Habe es bei uns getestet und für gut befunden. Kann natürlich auch für mehrere Module gleichzeitig gemacht werden, wird aber komplizierter vom SQL-Code her.
Da ich keine XTC- bzw. JTL-Profi bin kann ich natürlich nicht für Nebenwirkungen garantieren, deshalb bitte ich ein paar Profi's hier meine Gedankengänge zu überprüfen. Bei einer schon voher veränderten SQL-Abfrage können natürlich Fehler auftauchen, bei mir war sie Original. Sollte mir hier ein Fehler unterlaufen sein, immer her mit den wüsten Beschimpfungen .