habe ein Problem. Ich habe via eigenem Modul die Klasse oxorder und die Funktion _setUser( $oUser ) überladen (das Funktioniert alles wie gewünscht). Innerhalb dieser (meiner) Funktion möchte ich gerne die vom Kunden gewählte Versandart abfragen. Sprich je nach gewählter Versandart soll das überladen anders sein.
Komme da leider nicht weiter. Vielleicht kann jdm helfen!?
Habe einiges ausprobiert, aber komme leider nicht weiter wie ich dies in meiner eigenen Funktion machen kann.
oxOrder::getPayment ()
oxOrder::getPaymentType ()
hat mir leider auch nicht weitergeholfen. Es ist leider auch sehr müßig das ganze über Testbestellungen (natürlich in Testumgebung) zu validieren. Daher wollte ich mal fragen ob jdm eine Lösung dazu hat.
moment, reden wir von Payment (Zahlungsart) oder von der Versandart (delivery set)?
Ich gehe immer so an die Sache heran:
Schritt 1) überlegen, was genau ich brauche
Schritt 2) überlegen, wo es im Shop angezeigt wird
Schritt 3) schauen, wo das ist
Schritt 4) schauen, wie man dort an diese Infos dran kommt
Schritt 5) ausprobieren
Schritt 2 könnte in deinem Fall die Bestellbestätigung sein (Email)
das wäre order_cust.tpl
für Versandart gibts dort eine getDelSet() Funktion, Payment habe ich nicht nachgeguckt.
Ach, entschuldige. Ich meine die im Schritt 3 gewählte Zahlart.
Und im Schritt 4 wird ja bei Bestellauslösung die “protected function _setUser( $oUser )” aufgerufen um die Kundendaten zu “setzen”. Genau hier möchte ich eingreifen und je nach gewählter Zahlart dies unterschiedlich gestalten.
Deine Vorgehensweise klingt sehr gut. Ich denke ich bin an Punkt 4. Ich benötige im Funktionsaufruf die Information über die gewählte Zahlart. Leider hilft mir die sourcecodedocumentation da nicht weiter.
Ich bin mir bezüglich der Beschreibung nicht mal sicher ob die Funktion diese Information aus einer gespeicherten Bestellung liefert oder die unfertige Bestellung in deren Ablauf sich das ganze ja noch befindet.
Meinst Du diese Zeile?
$oUserPayment = $this->_setPayment($oBasket->getPaymentId());
Falls “ja”, komme ich damit leider nicht weiter. ( Call to a member function getPaymentId() on a non-object).
Wie gesagt, mir fehlt da leider Wissen/Erfahrung wie ich innerhalb meiner Funktion (welche ja die Ursprüngliche überschreibt) an die Payment-Infos komme.
Die Funktion soll greifen bei neuen Bestellungen. Also in dem Moment wenn die Bestellung im Schritt 4 ausgelöst wird. Das funktioniert auch soweit. Ich habe die Funktion protected function _setUser( $oUser ) überladen mit meiner eigenen. Über die Klasse xxx_oxorder_parent.
Innerhalb dieser Funktion möchte ich bei Funktionsaufruf “wissen” welche Zahlart der Benutzer ausgewählt hat. Weiß aber nicht ob ich innerhalb dieser Funktion an diese Information komme. Übergeben wird ja nur " $oUser".
Ich wollte eigentlich darauf hinaus, dass du die Funktionen, die mit der Zahlungsart zusammenhängen in der Funktion _setPayment() unterbringst, weil diese dort vorhanden ist.