Warum auf die "TABLE_ORDERS_STATUS_HISTORY" ein UPDATE machen, das ist eine History Tabelle, also gehört in diese Tabelle meiner Meinung nach, ein neuer Eintrag?
Abgesehen davon würden mit "dem" UPDATE ALLE evtl. vorhandenen History-Einträge die schon für diese "orders_id" vorhanden sind, überschrieben mit dem "einen" Status.
Somit wäre das History für diese Order verloren.
Tomcrafts Änderung bewirkt tatsächlich, dass direkt nach der Bestellung in der History nix anderes steht, als der unter Module/Zahlungsoptionen voreingesteltle Bestellstatus. Das Modul Paypal Kaufabwicklung macht es hingegen so, wie es Dir vorschwebt und legt direkt nach erfolgreicher Zahlungsabwicklung (= in der Regel einige Sekunden nach Generierung der Bestellung) einen oder mehrere zusätzliche Einträge in der History an. Sofortüberweisung legt einen zusätzlichen Eintrag an. Bei mir sieht es so aus:
Nachnahme oder Rechnungs-Bestellung:
07.12.2014 19:00:00 Vorbereitung Versand (NN/RE)
Sofortüberweisung-Bestellung:
07.12.2014 19:18:13 Offen/Zahlung steht aus
07.12.2014 19:18:13 Versand wird vorbereitet Bestellung mit SOFORT Überweisung erfolgreich übermittelt.
Paypal Bestellung:
07.12.2014 19:23:57 Offen/Zahlung steht aus
07.12.2014 19:24:00 Offen PP wartend
07.12.2014 19:24:17 Versand wird vorbereitet PayPal IPN Completed...
Ich kann jetzt als User aber keinen direkten Nachteil davon erkennen. dass bei meinen Nachnahme- und Rechnungs-Bestellungen der erste Status "Offen/Zahlung steht aus" nicht erhalten bleibt, sondern direkt durch den von mir eingestellten Status überschrieben wird. Bei paypal und Sofortüberweisung ist die history relevant, weil es im Bezahlungsvorgang selbst zu Abbrüchen kommen kann. Aber bei Nachnahme/Rechnung wird die Bestellung doch gar nicht erst generiert, wenn der Kunde den Vorgang abbricht.
Abgesehen davon würden mit "dem" UPDATE ALLE evtl. vorhandenen History-Einträge die schon für diese "orders_id" vorhanden sind, überschrieben mit dem "einen" Status.
Somit wäre das History für diese Order verloren.
Die UPDATE Funktion wird aber doch nur einmalig bei der Generierung der Bestellung aufgerufen und somit auch nur einmalig der erste (=tendenziell nchtssagende) Bestellstatus überschrieben?! Ich find deine Lösung, den ersten Status beizubehalten und den neuen Status auch bei Nachnahme/Rechnung nur zu ergänzen, mindestens genauso gut, versteh mich nicht falsch. Aber bisher erkenne ich hier eher ein kosmetisches Problem, als ein funktionales.
@sixtyseven: Hast du denn alle die von dir genannten Zahlungsmodule aktiv und kannst die Probleme bestätigen? Paypal Kaufabwicklung funktioniert zB mit einer anderen Logik und problemlos, siehe oben.