Ankündigung

Einklappen
Keine Ankündigung bisher.

Keine Nachnahme bei Auslandversand

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

    Keine Nachnahme bei Auslandversand

    Hallo im Forum!

    Wie stelle ich die Zahlungsart per Nachnahme nur für Deutschland ein?

    Meine Frage wurde bereits im Forum behandelt (siehe den erchivierten Beitrag aus dem Jahr 2008 mit dem gleichen Titel).https://forenarchiv.zen-cart-pro.at/...Auslandversand

    Mein Problem dabei: ich vermute, dass die entsprechende Steuerzone nicht richtig eingestellt ist. Unter Steuerzonen habe ich das folgende Bild Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Steuerzonen.jpg
Ansichten: 1
Größe: 19,8 KB
ID: 103947
    Die Steuerzone Deutschland ist angelegt, die Steuerzätze sind definiert. Der Status bleibt jedoch rot. Was mache ich falsch?

    #2
    Statt Zonen anzulegen, nur um Zahlungsmodule darauf einschränken zu können, wäre es besser, ähnlich wie beim Modul eustandardtransfer (Banküberweisung) eine Abfrage nach Land zu verwenden.
    Vielleicht soll ja die Nachnahme später mal doch auch für ein anderes Land angeboten werden und dann geht der Zonenwahnsinn wieder los?

    Angehängt ist eine entsprechend geänderte includes/modules/payment/cod.php, die genauso wie bei der Banküberweisung ein Feld vorsieht, in dem die Länder für die es erlaubt werden soll, eingetragen werden. Abgefragt wird, ob die Lieferadresse zu einem der eingetragenen Länder gehört und falls nicht, wird Nachnaheme nicht angeboten. Lieferadresse deshalb, weil Nachnahme bei der Zustellung bezahlt wird, die Rechnungsadresse ist irrelevant.

    Um dieses geänderte Nachnahememodul zu verwenden, vorher das bestehende unter Module Zahlungsarten deinstallieren. Neue Datei Hochladen und neu initialisieren.
    Angehängte Dateien

    Kommentar


      #3
      Danke sehr,

      die Lösung mit der Definition nach Land ist in der Tat viel schöner!

      ... und läuft

      Kommentar


        #4
        tolle Idee wenns gehen würde

        Hi Leute!
        Ich versuch verzweifelt seit Stunden diese Möglichkeit für Kreditkartenzahlung zu nehmen, bei uns
        wird das mit der Kreditkarte so gemacht, dass der Kunde in der Email einen Link zur Zahlungsseite
        bekommt...gut, das funktioniert auch

        Für den Vorgang habe ich einfach das (originale) COD-Modul auf Ccard angepasst und es läuft...allerdings
        in alle Länder...dann bin ich auf das hier gestoßen und habe versucht die modul-datei wie beschrieben anzupassen
        da wir Kreditkarte nur in DE und AT anbieten wollen...

        Aber ich steh am Schlauch und ich habe keine Ahnung was falsch läuft, er zeigt mir nie, egal ob ich die PaymentZone
        auf "kein / ALL / AT oder international" einstelle, die Zahlungsmöglichkeit dann beim Bestellvorgang an...versteh ich
        nicht - muß ich die Payment-Zone aus der modul-datei rauscoden?!?

        Code:
        [SIZE=2]<?php
        /**
        * @copyright Copyright 2003-2010 Zen Cart Development Team
        * @copyright Portions Copyright 2003 osCommerce
        * @license [URL]http://www.zen-cart.com/license/2_0.txt[/URL] GNU Public License V2.0
        * $Id: ccard.php 582 2010-05-21 17:32:20Z webchills $
        */
        
        
         class ccard {
            var $code, $title, $description, $enabled;
        
        
        // class constructor
            function ccard() {
              global $order;
              $this->code = 'ccard';
              $this->title = MODULE_PAYMENT_CCARD_TEXT_TITLE;
              $this->description = MODULE_PAYMENT_CCARD_TEXT_DESCRIPTION;
              $this->sort_order = MODULE_PAYMENT_CCARD_SORT_ORDER;
              $this->enabled = ((MODULE_PAYMENT_CCARD_STATUS == 'True') ? true : false);
        
        
                    if ((int)MODULE_PAYMENT_CCARD_ORDER_STATUS_ID > 0) {
                $this->order_status = MODULE_PAYMENT_CCARD_ORDER_STATUS_ID;
              }
        
        
              if (is_object($order)) $this->update_status();
        
        
        
        
            }
        
        
        // class methods
            function update_status() {
              global $order, $db;
        
        
              // check country
                $dest_country = isset ($order->delivery['country']['iso_code_2']) ? $order->delivery['country']['iso_code_2'] : 0 ;
                $dest_zone = 0;
                $error = false;
                $countries_table = MODULE_PAYMENT_CCARD_COUNTRIES;
                $country_zones = explode(",", $countries_table);
                if (in_array($dest_country, $country_zones)) {
                    $dest_zone = $i;
                    $this->enabled = true;
                } else {
                    $this->enabled = false;
                }
        
        
              if ($this->enabled && (int)MODULE_PAYMENT_CCARD_ZONE > 0 && isset($order->billing['country']['id'])) {
                $check_flag = false;
                $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_CCARD_ZONE . "' and zone_country_id = '" . $order->delivery['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->delivery['zone_id']) {
                    $check_flag = true;
                    break;
                  }
                  $check->MoveNext();
                }
        
        
                if ($check_flag == false) {
                  $this->enabled = false;
                }
              }
        
        
        
        
        // disable the module if the order only contains virtual products
              if ($this->enabled == true) {
                if ($order->content_type != 'physical') {
                  $this->enabled = false;
                }
              }
        
        
        
        
            }
        
        
            function javascript_validation() {
              return false;
            }
        
        
            function selection() {
              return array('id' => $this->code,
                           'module' => $this->title);
            }
        
        
            function pre_confirmation_check() {
              return false;
            }
        
        
            function confirmation() {
               return false;
            }
        
        
            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_CCARD_STATUS'");
                $this->_check = $check_query->RecordCount();
              }
              return $this->_check;
            }
        
        
            function install() {
              global $db, $messageStack;
              if (defined('MODULE_PAYMENT_CCARD_STATUS')) {
                $messageStack->add_session('CCARD module already installed.', 'error');
                zen_redirect(zen_href_link(FILENAME_MODULES, 'set=payment&module=CCARD', 'NONSSL'));
                return 'failed';
              }
              $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 CCard', 'MODULE_PAYMENT_CCARD_STATUS', 'True', 'Do you want to accept CCARD payments?', '6', '1', '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, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_CCARD_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, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_CCARD_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '3', 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_CCARD_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '4', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");
              $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Countries', 'MODULE_PAYMENT_CCARD_COUNTRIES', 'DE', 'Enter the countries for which you want to offer CCARD. Two digit ISO codes, comma separated.', '6', '5', now());");
           }
        
        
            function remove() {
              global $db;
              $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        
        
            }
        
        
            function keys() {
              return array('MODULE_PAYMENT_CCARD_STATUS', 'MODULE_PAYMENT_CCARD_ZONE', 'MODULE_PAYMENT_CCARD_ORDER_STATUS_ID', 'MODULE_PAYMENT_CCARD_SORT_ORDER', 'MODULE_PAYMENT_CCARD_COUNTRIES');
            }
          }
        ?>[/SIZE]
        Hoffe es kann jemand helfen weil ich diese Idee mehr als klasse finde...im Adminbereich ist alles drinnen übrigens:

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: CCARD.JPG
Ansichten: 1
Größe: 24,5 KB
ID: 103025

        hoffentlich kann jemand helfen und mich vom Schlauch holen

        Kommentar


          #5
          Dein geposteter Code funktioniert problemlos. Du überprüfst allerdings die Lieferadresse. Wenn es so eingestellt ist wie in Deinem Screen, dann wird diese Zahlungsart nur für Kunden mit Lieferadresse in Deutschland angeboten.

          Kommentar


            #6
            Beachte auch, dass Du hier ein für Nachahme gedachtes Modul verwendest. Nachnahme macht nur Sinn für physische Artikel, die zugestellt werden, daher ist das hier enthalten:
            Code:
            // disable the module if the order only contains virtual products
                  if ($this->enabled == true) {
                    if ($order->content_type != 'physical') {
                      $this->enabled = false;
                    }
                  }
            Vielleicht verkaufst Du ja virtuelle Artikel, dann müsste diese Abfrage natürlich raus...

            Kommentar


              #7
              Ma super...es hat geklappt nun, hab nun AT auch in die ccard.php eingefügt und es läuft...echt spitze!!!


              Jedoch, wie du sagst, nur anhand der Lieferadresse - möchte es doch auf Rechnungsadresse ändern und hab
              mal wieder rumprobiert...

              Was muß ich da im Code umstellen damit ers anhand der Rechnungsadresse auf die zwei Länger beschränkt!??


              aber toll dass es läuft- ich bin nicht sooo oft im Forum aber der Support von dir ist immer spitze!!! DANKE
              LG

              Kommentar


                #8
                Im Abschnitt check country einfach delivery mit billing ersetzen

                posted via Tapatalk

                Kommentar


                  #9
                  superst

                  herzlichen dank!!! super...merci!!!

                  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.7h deutsch
                  vom 15.04.2024
                  [Download]
                  Lädt...
                  X