Zahlungsart wird nicht korrekt gespeichert

Hallo zusammen,

aktuell ein Problem beim Zuordnen einer Zahlungsart im OXID EE 4.4.8 Bestellprozess, an dem mir nu scho paar Stunden die Haare ausreiße :slight_smile:

Kleines Modul geschrieben, welches im Payment-Controller die Zahlungsart einfach festlegen und den Schritt überspringen soll, jedoch geht die Info irgendwo auf halbem Weg verloren und steht im nächsten Schritt nicht mehr zur Verfügung. Die Zahlungsart, die zugewiesen wird, ist soweit komplett eingerichtet.

class modul_payment extends modul_payment_parent {
  public function render() {
    // Get basket object from session
    $oSession = $this->getSession();
    $oBasket = $oSession->getBasket();
    
    if ($oBasket) {
      // Set payment id for reservations
      $oBasket->setPayment("payment");
      $oBasket->calculateBasket(true);
      $oSession->setBasket($oBasket);

      // Redirect to next order step
      oxUtils::getInstance()->redirect(
        $this->getConfig()->getShopHomeURL() . 'cl=order', false
      );
      die;
    }

    // Otherwise call parents function
    return parent::render();
  }
}

Soweit der Teil im Modul. Warenkorb Objekt holen, Payment ID hinterlegen und weiterleiten.

Nu meldet sich allerdings der Order-Controller und speziell order->render() an der Stelle

// payment is set ?
if ( !$this->getPayment() ) {
  // redirecting to payment step on error ..
  oxUtils::getInstance()->redirect( $myConfig->getShopCurrentURL().'&cl=payment' );
}

und leitet wieder zurück zur Zahlungsseite, weil er keine Zahlungsart findet. Und schon haben wir die Endlosschleife…

Was läuft hier schief? Warum vergisst der Warenkorb schon im nächsten Schritt wieder die Zahlungsart? :frowning:

Generell: im 3. Bestellschritt wählt man nicht nur die Zahlungsart aus, sondern auch die Versandart, die übrigens als Grundlage für die angebotene Auswahl an Zahlungsarten dient.
Es gibt also eine logische Verknüpfung zwischen der Versand- und der Zahlungsart.

Aber abgesehen davon, ist der Code der EE anders als der CE/PE, wodurch wir hier im Community Forum leider nicht wissen können, ob der Code, der in CE funktioniert, auch in einer EE funktionieren würde.
Um also sicher zu sein: bei Fragen zu EE => OXID Support fragen, nur sie können verbindliche Infos geben.

Du kannst den Wert über ein hidden-Field weiterleiten. Achte darauf, dass das unsichtbare Formularfeld in der Form liegt, also in etwa so

<form><input type="hidden" value=[{$payvalue}].../> </form>