Ankündigung

Einklappen
Keine Ankündigung bisher.

Aktionscoupon und PayPal

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Aktionscoupon und PayPal

    Wir bieten bei uns im Shop Downloadartikel an und haben ein schwerwiegendes Problem entdeckt. Wenn ein Aktionscoupon den Warenwert auf 0 Euro reduziert und der Kunde PayPal als Zahlungsart eingestellt hat, dann funktioniert das nicht. Kunden aus Deutschland können als Notlösung Vokasse wählen. Für alle anderen Kunden bieten wir nur PayPal an. Wie ist das zu lösen?

    #2
    Zitat von mkuhse Beitrag anzeigen
    Wenn ein Aktionscoupon den Warenwert auf 0 Euro reduziert und der Kunde PayPal als Zahlungsart eingestellt hat, dann funktioniert das nicht.
    Kannst Du etwas genauer schreiben, was "es funktioniert nicht" bedeutet?
    Normales Zen Cart Verhalten wäre, dass wenn der Gesamtbetrag durch einen Aktionskupon auf Null geht, die vom Kunden gewählte Zahlungsart ignoriert und automatisch durch die Zahlungsart Gift Certificate/Coupon ersetzt wird. Es macht ja keinen Sinn, für Nullbeträge eine normale Zahlungsart anzubieten. In einer normalen Standardinstallation auch wenn vorher PayPal Express gewählt wurde, wird die Bestellung sofort durchgeführt und erscheint dann mit Zahlungsart GV/DC

    Kommentar


      #3
      Der Aktionscoupon setzt den Warenwert auf 0 Euro zurück. Wenn der Kunde auf den Button "Zahlungspflichtig bestellen" klickt, wird er zu PayPal umgeleitet.

      Kommentar


        #4
        Poste bitte mal den Inhalt Deiner includes/classes/order_total als Code

        Kommentar


          #5
          Ich habe die Datei als Textfile angehängt.

          In der Datei classes/payment.php wird festgelegt, welche Payment-Module geladen werden sollen. Hier die entsprechenden Zeilen aus der Datei:

          if (zen_get_configuration_key_value('MODULE_PAYMENT_F REECHARGER_STATUS') and ($_SESSION['cart']->show_total()==0 and $_SESSION['shipping']['cost']== 0)) {
          $this->selected_module = $module;
          if (file_exists(DIR_FS_CATALOG . DIR_WS_MODULES . '/payment/' . 'freecharger.php')) {
          $include_modules[] = array('class'=> 'freecharger', 'file' => 'freecharger.php');
          }
          } else {
          ...

          Bei einem Testeinkauf habe ich mir die Variable $_SESSION['cart']->show_total() per echo ausgeben lassen. Es wurde der Einkaufswert ohne Abzug des Aktionscoupons angezeigt also ungleich 0.
          Angehängte Dateien

          Kommentar


            #6
            Der Check, ob die Zahlungsarten deaktiviert werden sollen, wenn das Aktionskuponguthaben größer als der Bestellwert ist, ist in der includes/classes/order_total.php ab Zeile 168. Die ist bei Dir ok, ich kann das nicht nachstellen.
            Hast Du das Zahlungsmodul freecharger aktiv? Falls nicht ändert es was wenn Du das aktivierst?
            Anscheinend wird bei Dir nicht erkannt, dass der Wert überhaupt Null ist, welche Erweiterungen hast Du installiert?

            Kommentar


              #7
              Wir haben FreeGifts und Sales Report von CustomScriptz integriert.

              Der Shop wurde vor einiger Zeit auf einen anderen Server umgezogen. Kann eventuell in der Datenbank etwas fehlerhaft sein?

              Kommentar


                #8
                freecharger ist aktiv.

                Kommentar


                  #9
                  Ich habe einen Testkauf durchgeführt mit Warenwert 2 Euro, der durch einen Aktionsgutschein (2 Euro) auf 0 Euro reduziert wird, nachdem ich die classes/order_total.php so bearbeitet habe, dass die Variablenwerte von class, order-total, deduction innerhalb der while-Schleife (Zeile 186-188 ) und danach orderTotal und TotalDeductions ausgegeben werden.

                  Das Ergebnis sieht so aus:

                  class = ot_coupon
                  order-total =
                  deduction = 2

                  class = ot_group_pricing
                  order-total = 0
                  deduction = 0

                  class =ot_gv
                  order-total = 0
                  deduction = 0

                  class = ot_sc
                  order-total = 0
                  deduction = 0

                  --------------------
                  orderTotal = 2
                  TotalDeductions = 2

                  Hilft das irgendwie weiter?

                  Kommentar


                    #10
                    Ich habe jetzt folgendes herausgefunden:
                    Mit dem Umzug auf einen neuen Server wurde auch das Modul Store Credit and Rewards Points von Numinix in den Shop integriert. Und dieses Modul scheint das Problem zu verursachen.

                    In includes/modules/pages/checkout_confirmation/header_php.php wurde folgender Code, wie in der Installationsanweisung zum Modul beschrieben, eingefügt:

                    Code:
                    if  (!isset($credit_covers)) $credit_covers =  FALSE;                                                                                                                       
                    
                    // BEGIN REWARDS POINTS
                     
                    // if credit does not cover order total or isn't   selected
                    if ($_SESSION['credit_covers'] != true) {
                      // check that a gift   voucher isn't being used that is larger than the order
                        if ($_SESSION['cot_gv'] < $order->info['total']) {
                          $credit_covers =   false;
                        }
                    }
                    // END REWARDS POINTS
                    
                      if ($credit_covers) {
                       unset($_SESSION['payment']);
                       $_SESSION['payment'] = '';
                      }
                    Dieser Quellcode sorgt dafür, dass die boolesche Variable $credit_covers auf false gesetzt wird obwohl sie true sein sollte.

                    Ich habe oben genannten Testkauf erneut ausgeführt mit Ausgabe dieser Variablen:
                    $_SESSION['cot_gv'] = 0
                    $order->info['total'] = 2

                    Das Modul soll bleiben. Hat jemand eine Idee, wie das Problem behoben werden kann?
                    Zuletzt geändert von mkuhse; 31.07.2013, 09:39.

                    Kommentar

                    Info zu diesem Forenarchiv:
                    Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
                    Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
                    Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
                    PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
                    Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
                    FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

                    Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
                    Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
                    Fehler in der Software können auf Github als Issues gemeldet werden.
                    Follow us
                    aktuelle version
                    Zen Cart 1.5.7g deutsch
                    vom 12.12.2023
                    [Download]
                    Lädt...
                    X