Ankündigung

Einklappen
Keine Ankündigung bisher.

Bar bei Abholung 1.3

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

    Bar bei Abholung 1.3

    Hallo webchills,

    erstmals vielen Dank für das Tool.

    Dann hätte ich eine Frage bzw. Problem.

    Wenn der Kunde als Versandart z.B. Paketdienst, Verwand o.ä. angibt (also NICHT Selbstabholung), ist bei mir die Auswahl Bar bei Abholung dennoch möglich. Dies sollte aber dann nicht angezeigt werden, da es ja keinen Sinn gibt und nur zu Verwirrung der Kunden kommen könnte.

    Gibt es eine Möglichkeit bei der Bezahlart die Option "Bar bei Abholung" nur dann anzuzeigen, wenn bei der Versandart "Selbstabholung" ausgewählt wurde?

    Happy Helloween,
    Chris

    #2
    Eine solche sinnvolle Abhängigkeit der Zahlungsmodul von Versandmodulen ist leider nicht eingebaut. Da müsstest du selber Hand anlegen und das Modul entsprechend verändern.

    Ze-Cart zeigt immer stur alle Versandarten und Zahlungsarten an, die für den Kunden zulässig sind. Auch immer wieder gerne genommen, die Anzeige von Versandkostenpauschale und kostenloser Versand *seufz*

    Gruß
    MaleBorg

    Kommentar


      #3
      Hallo Maleborg,

      vielen Dank für die Info.
      Hört sich nicht so gut an.
      Und zum selbst Hand anlegen, reichen meine Anfänger-Kenntnisse leider noch nicht aus.
      Zum Glück habe ich kein Problem mit dem kostenlosen Versand.

      Schönen Abend,
      Chris

      Kommentar


        #4
        Hallo Gidex,

        mir fiel das Problem vor Kurzem auch auf. Zum Beispiel wählte der Kunde die Versandart 'Selbstabholung' (das Modul 'storepickup') und bekommt im Anschluss die Möglichkeit Nachnahme-Zahlung (Modul 'cod') als Zahlungsart auszuwählen.
        Ich konnte mir mit meinen laienhaften PHP-Kenntnissen dennoch helfen.
        Hier meine geänderte bar.php:

        <?php
        //
        // +----------------------------------------------------------------------+
        // |zen-cart Open Source E-commerce |
        // +----------------------------------------------------------------------+
        // | Copyright (c) 2003 The zen-cart developers |
        // | |
        // | http://www.zen-cart.com/index.php |
        // | |
        // | Portions Copyright (c) 2003 osCommerce |
        // +----------------------------------------------------------------------+
        // | This source file is subject to version 2.0 of the GPL license, |
        // | that is bundled with this package in the file LICENSE, and is |
        // | available through the world-wide-web at the following url: |
        // | http://www.zen-cart.com/license/2_0.txt. |
        // | If you did not receive a copy of the zen-cart license and are unable |
        // | to obtain it through the world-wide-web, please send a note to |
        // | license@zen-cart.com so we can mail you a copy immediately. |
        // +----------------------------------------------------------------------+
        // $Id: bar.php 290 2005-03-15 19:50:26Z cyaneo AT www.brainnetwork.at $
        //
        class bar {
        var $code, $title, $description, $enabled, $payment;
        // class constructor
        function bar() {
        global $order;
        $this->code = 'bar';
        $this->title = MODULE_PAYMENT_BAR_TEXT_TITLE;
        $this->description = MODULE_PAYMENT_BAR_TEXT_DESCRIPTION;
        $this->sort_order = MODULE_PAYMENT_BAR_SORT_ORDER;
        $this->enabled = ((MODULE_PAYMENT_BAR_STATUS == 'True') ? true : false);
        $this->fees = MODULE_PAYMENT_BAR_FEES;
        if ((int)MODULE_PAYMENT_BAR_ORDER_STATUS_ID > 0) {
        $this->order_status = MODULE_PAYMENT_BAR_ORDER_STATUS_ID;
        $payment='bar';
        } else {
        if ($payment=='bar') {
        $payment='';
        }
        }
        if (is_object($order)) $this->update_status();
        $this->email_footer = MODULE_PAYMENT_BAR_TEXT_EMAIL_FOOTER;
        }
        // class methods
        function update_status() {
        global $db;
        global $order;
        global $shipping;
        if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_BAR_ZONE > 0) ) {
        $check_flag = false;
        $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_BAR_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;
        }
        }
        /* BEGINN DER ANPASSUNG */
        // Deaktivieren wenn Versandart ~ Tabelarische Versandkosten
        if ($this->enabled == true) {
        if (substr_count($_SESSION['shipping']['id'], 'table') !=0) {
        $this->enabled = false;
        }
        }
        // Deaktivieren wenn Versandart ~ Versandkosten nach Zonen
        if ($this->enabled == true) {
        if (substr_count($_SESSION['shipping']['id'], 'zones') !=0) {
        $this->enabled = false;
        }
        }
        // Deaktivieren wenn Versandart ~ Versandpauschale
        if ($this->enabled == true) {
        if (substr_count($_SESSION['shipping']['id'], 'flat') !=0) {
        $this->enabled = false;
        }
        }

        // Deaktivieren wenn Versandart ~ Versandkosten pro Stück
        if ($this->enabled == true) {
        if (substr_count($_SESSION['shipping']['id'], 'item') !=0) {
        $this->enabled = false;
        }
        }

        // Deaktivieren wenn Versandart ~ Versandkosten per Gewicht
        if ($this->enabled == true) {
        if (substr_count($_SESSION['shipping']['id'], 'perwightunit') !=0) {
        $this->enabled = false;
        }
        }
        /* ENDE DER ANPASSUNG */
        }
        function javascript_validation() {
        return false;
        }
        function selection() {
        return array('id' => $this->code,
        'module' => $this->fees);
        }
        function pre_confirmation_check() {
        return false;
        }
        function confirmation() {
        return array('title' => MODULE_PAYMENT_BAR_TEXT_DESCRIPTION);
        }
        function process_button() {
        return false;
        }
        function before_process() {
        return false;
        }
        function after_process() {
        return false;
        }
        function get_error() {
        return false;
        }
        function check() {
        global $db;
        if (!isset($this->_check)) {
        $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_BAR_STATUS'");
        $this->_check = $check_query->RecordCount();
        }
        return $this->_check;
        }
        function install() {
        global $db;
        $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Cash by fetch Module', 'MODULE_PAYMENT_BAR_STATUS', 'True', 'Do you want to accept Cash by fetch payments?', '6', '7', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now());");
        $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_BAR_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())");
        $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_BAR_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
        $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_BAR_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");
        // www.zen-cart.at r.l. languages_id==43 START
        $db->Execute("insert into " . TABLE_CONFIGURATION_LANGUAGE . " (configuration_title, configuration_key, configuration_language_id, configuration_description, date_added) values ('Barzahlung/Selbstabholung', 'MODULE_PAYMENT_BAR_STATUS', '43', 'Wollen Sie Barzahlung bei Abholung aktivieren?', now())");
        $db->Execute("insert into " . TABLE_CONFIGURATION_LANGUAGE . " (configuration_title, configuration_key, configuration_language_id, configuration_description, date_added) values ('Sortierreihenfolge', 'MODULE_PAYMENT_BAR_SORT_ORDER', '43', 'Anzuzeigende Sortierreihenfolge. Die Niedrigste wird zuerst angezeigt.', now())");
        $db->Execute("insert into " . TABLE_CONFIGURATION_LANGUAGE . " (configuration_title, configuration_key, configuration_language_id, configuration_description, date_added) values ('Zone', 'MODULE_PAYMENT_BAR_ZONE', '43', 'Wenn eine Zone ausgew&auml;hlt wird, ist diese Bezahlart nur in dieser Zone aktiviert.', now())");
        $db->Execute("insert into " . TABLE_CONFIGURATION_LANGUAGE . " (configuration_title, configuration_key, configuration_language_id, configuration_description, date_added) values ('Bestellstatus', 'MODULE_PAYMENT_BAR_ORDER_STATUS_ID', '43', 'Bestellungen, die mit diesem Modul get&auml;tigt werden, werden auf diesen Bestellstatus eingestellt', now())");
        // www.zen-cart.at r.l. languages_id==43 END
        }
        function remove() {
        global $db;
        $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        // www.zen-cart.at r.l. languages_id == delete all
        $db->Execute("delete from " . TABLE_CONFIGURATION_LANGUAGE . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        }
        function keys() {
        return array('MODULE_PAYMENT_BAR_STATUS', 'MODULE_PAYMENT_BAR_ZONE', 'MODULE_PAYMENT_BAR_ORDER_STATUS_ID', 'MODULE_PAYMENT_BAR_SORT_ORDER');
        }
        }
        ?>


        Mit Sichherheit kann man das noch eleganter Lösen, aber bisher hat es funktioniert.
        Ich hoffe Dir hiermit etwas geholfen zu haben.

        Gruss Securix

        Kommentar


          #5
          Modul jetzt aktualisiert

          Hallo Securix,
          Danke für die Erweiterung! Habs ausprobiert, works as intended
          Habe das Modul im Downloadbereich mit Deiner Ergänzung auf Version 1.2 aktualisiert.
          Grüße
          webchills

          Kommentar


            #6
            Danke Securix!

            Deine Lösung ist zwar nicht das, was ich wollte, (denn damit kann ich bei Abholung immer noch mit Nachnahme zahlen). Aber ich habe dafür den Hinweis bekommen wie ich es lösen kann:

            In der cod.php (Nachnahmemodul) habe ich nach deiner Lösung folgenden Absatz an der gleichen Stelle hinzugefügt:

            // Deaktivieren wenn Versandart ~ Versandpauschale
            if ($this->enabled == true) {
            if (substr_count($_SESSION['shipping']['id'], 'storepickup') !=0) {
            $this->enabled = false;
            }
            }

            Und siehe da: die Nachnahme ist bei Abholung nicht mehr verfügbar!
            Natürlich hab ich auch auf die 1.2 geupdatet, damit man auch nur noch vor Ort zahlen kann, wenn man es auch abholt!

            So kann man auch php lernen, grins.

            Vielen Dank für die Idee und den Nachhilfeunterricht!
            Ich habs gewusst, im Forum wir einem geholfen!

            1000 Dank,
            Chris

            Kommentar


              #7
              Zitat von gidex Beitrag anzeigen
              Und siehe da: die Nachnahme ist bei Abholung nicht mehr verfügbar!
              Feine Sache! Hab das in Bar bei Abholung 1.3. integriert, dann hat man gleich alles beisammen.

              Kommentar


                #8
                Hallo Leute!

                Habe da noch einen Nachtrag gefunden!!!

                Als ich letztes einen versandkostenfreien Artikel bestellen wollte und ihn natürlich versenden wollte, war doch immer noch Bar-bei-Abholung auswählbar.

                Ich habe in der obigen Anpassung der bar.php noch folgende Zeilen hinzugefügt (bei mir ab der Zeile 108 ):

                // Deaktivieren wenn Versandart ~ Versandkostenfrei
                if ($this->enabled == true) {
                if (substr_count($_SESSION['shipping']['id'], 'freeshipper') !=0) {
                $this->enabled = false;
                }
                }

                Somit ist auch bei Versand eines versandkostenfreien Artikels Bar-bei-Abholung nicht mehr auswählbar, ausser man holt den Artikel ab.

                cu
                Chris

                Kommentar


                  #9
                  Danke für den Codebeitrag, ich bin mir sicher webchills wird das in der nächsten Version auch noch mit einbauen.

                  So haben wir dann ja alle was davon *super*

                  Gruß
                  MaleBorg

                  Kommentar


                    #10
                    Version 1.4 verfügbar

                    Habe das Modul in den Downloads jetzt mit der Erweiterung von gidex auf Version 1.4 aktualisiert.

                    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