Ankündigung

Einklappen
Keine Ankündigung bisher.

Bestellung per Rechnung mit Betragsobergrenze

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

    Bestellung per Rechnung mit Betragsobergrenze

    Hi Leute!

    Bin im Forum nicht fündig geworden und deshalb meine Frage an euch:

    Kann man die Bezahlung per Rechnung auf einen bestimmten Betrag begrenzen, so dass die Option "Bezahlen per Rechnung" im Bezahldialog nur noch bis zu einer Gesamtsumme von bspw. 300 Euro erscheint?

    Danke für euer immer geschätztes Feedback

    Smartsoul

    #2
    Einen Schritt weiter und schon fast am Ziel?

    Bin jetzt noch viele weitere Threads durchgegangen und dabei auf einen Lösungsansatz gestoßen. Dort ging es um die Bezahlung per Nachnahme.

    Du könntest in der includes/modules/payment/cod.php folgende zusätzliche Abfrage einbauen:
    Code:
    // disable the module if the order value is more than 200
    if ($this->enabled == true) { if($_SESSION['cart']->show_total() >= 200) { $this->enabled = false; } }
    Meint ihr, ich könnte das genauso für die Bezahlung per Rechnung verwenden? In welcher Datei müsste ich das einbauen? Wahrscheinlich includes/modules/payment/moneyorder.php, oder?

    Gibt es eine bestimmte Stelle dafür?

    Danke für die letzten Hinweise auf dem Weg ins Glück

    Smartsoul

    Kommentar


      #3
      Du kannst das ganz genauso auch in Deinem Zahlungsmodul verwenden. Das ist aber nicht moneyorder.php sondern includes/modules/payment/rechnung.php oder includes/modules/payment/invoice.php, je nachdem welches "Zahlen auf Rechnung" Du installiert hast. Siehst Du aber unter Module > Zahlungsarten

      Kommentar


        #4
        Ja klar! Muss natürlich in die invoice.php. War gerade mit der moneyorder.php beschäftigt und deshalb wohl leicht von der Rolle.

        Gibt es eine bestimmte Stelle für die if-Abfrage?

        THX!

        Smartsoul

        Kommentar


          #5
          Vor der folgenden Zeile passt es ganz gut:
          Code:
          // class methods
              function javascript_validation() {
                return false;
              }

          Kommentar


            #6
            Vielen Dank!

            Werde das so ausprobieren.

            Beste Grüße

            Smartsoul

            Kommentar


              #7
              Habe das jetzt ausprobieren können, erhielt aber leider eine Fehlermeldung.

              Parse error: syntax error, unexpected T_IF, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /www/htdocs/w0086a13/catalog/includes/modules/payment/invoice.php on line 41
              Ich hatte es genau dort eingebaut vor der Zeile // class methods

              Wo liegt der Fehler?

              Kommentar


                #8
                In dem Posting ist ein Fehler, es gehört zum Schluss eine Klammer. Hier eine bessere Lösung:
                Code:
                // bitte nicht wenn bestellwert mehr als 200:
                    if (IS_ADMIN_FLAG === false) {
                      if ($_SESSION['cart']->show_total() > 200) $this->enabled = false;
                    }

                Kommentar


                  #9
                  Diese Variante erzeugt leider auch einen Fehler:
                  Parse error: syntax error, unexpected T_IF, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /www/htdocs/w0086a13/catalog/includes/modules/payment/invoice.php on line 41
                  ???

                  Kommentar


                    #10
                    Hier der komplette Ausschnitt aus der invoice.php:
                    Code:
                    // class methods
                        function update_status() {
                          global $order, $db;
                          
                          [COLOR=Red] // bitte nicht wenn bestellwert mehr als 200:
                        if (IS_ADMIN_FLAG === false) {
                          if ($_SESSION['cart']->show_total() > 200) $this->enabled = false;
                        }[/COLOR]
                          
                          
                          if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_INVOICE_ZONE > 0) ) {
                            $check_flag = false;
                            $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_INVOICE_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");
                            while (!$check->EOF) {
                              if ($check->fields['zone_id'] < 1) {
                                $check_flag = true;
                                break;
                              } elseif ($check->fields['zone_id'] == $order->billing['zone_id']) {
                                $check_flag = true;
                                break;
                              }
                              $check->MoveNext();
                            }
                    
                            if ($check_flag == false) {
                              $this->enabled = false;
                            }
                          }

                    Kommentar


                      #11
                      Zitat von webchills Beitrag anzeigen
                      Vor der folgenden Zeile passt es ganz gut:
                      Code:
                      // class methods
                          function javascript_validation() {
                            return false;
                          }
                      THX! Das war der Knackpunkt. Ich hatte es brav immer vor der Zeile //class methods eingebaut.

                      Aber an der neuen Stelle funktioniert es

                      Vielen Dank für deine Ausdauer ^^ *jubel*

                      Smartsoul

                      P.S.: Wie war das noch, konnte man hier im Forum einen Thread als gelöst markieren?

                      Kommentar


                        #12
                        Als gelöst markieren gibt es nicht, die Lösung steht ja drin und der Thread sollte auch weiter offen bleiben, falls wer was ergänzen will.
                        Fein, dass es jetzt funkt.

                        Kommentar


                          #13
                          Ich kenne das aus manch anderen Foren und finde es gerade bei der Suche nach Problemlösungen immer sehr praktisch. Es gibt oftmals so viele Threads, die im Nirvana enden und durch die Markierung als gelöst, sieht man zumindest, dass das ursprüngliche Problem gelöst wurde.
                          Wobei das Markieren nicht zwingend gleichbedeutend mit einem Schließen des Threads sein muss.

                          Aber wahrscheinlich gibt es hier eh kaum Threads, die ungelöst bleiben, oder

                          Ich kann nur immer wieder betonen, wie kompetent mir hier stets aufs Neue geholfen wird.

                          THX nochmal!

                          Kommentar


                            #14
                            Zitat von webchills Beitrag anzeigen
                            ... falls wer was ergänzen will. ...
                            Ja, ich will! So schnell kann's gehen

                            Wie müssten die Script-Zeilen lauten, wenn sich die Höchstgrenze auf den Bruttobetrag (also inkl. MwSt) beziehen soll?

                            Kommentar


                              #15
                              Hallo

                              Nun habe ich doch auch noch eine Frage dazu.

                              Habe das alles so eingebaut und das mit dem Maximalbetrag funktioniert auch super. Ich habe bei uns im Shop bei "Auswahl der Zahlungsarten" oben geschrieben: Zahlung auf Rechnung bei Neukunden nur bis CHF 500.- möglich. Bei höheren Beträgen wird es dann ja auch nicht mehr angezeigt. Das ist soweit in Ordnung. Die Höhe der Grenze muss man jetzt halt mal austesten und kann diese allenfalls nach oben oder nach unten anpassen.

                              Nun - wie ist es denn wenn eine Stammkunde einen Bestellwert von über 500.- hat? Gibt es da einen Weg bei diesen die Zahlung per Rechnung trotzdem anzubieten? Oder muss man dies danach irgendwie manuell anbieten?

                              Ich habe übrigens dieses Modul eingebaut nachdem ich gemerkt habe, das einige Kunden bei ihrer Bestellung während der Zahlungsauswahl abgebrochen haben. Vermutlich eben weil ihnen der Aufwand für paypal oder Banküberweisung zu gross war. Es kann ja nicht sein das man diese Kunden deswegen verliert.

                              Gruss Gregor

                              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