Jump to content
xt:Commerce Community Forum

Nachnahme


Meci

Recommended Posts

Hallo,

ich m?chte meinen Kunden gerne die M?glichkeit bieten per Nachnahme Ware zu bestellen.

Theoretisch klappt das auch, aber ich habe ein dickes Problem.

Wenn der Kunde beim Bezahlen unter "Versandoptionen" Nachnahme w?hlt und dann auf weiter klickt kommt er zum Punkt "Zahlungsweise" hier kann dann auch wieder Nachnahme gew?hlt werden. ABER leider auch jede andere Zahlungsweise!

Das ist nat?rlich dumm, weil ich ja nicht erst Nachnahme ausw?hlen lassen will und dann w?hlt der Kunde bei der Zahlungsweise doch noch was anderes.

Wie kann ich denn unterbinden, dass unter Zahlungsweise was anderes als Nachnahme angezeigt wird, wenn der Kunde zuvor unter Versandoptionen schon Nachnahme ausgew?hlt hat?

Meci

Link to comment
Share on other sites

Ich biete aber auch andere Zahlungsm?glichkeiten an z.B. Vorkasse.

Das kann ich auch nicht entfernen. Ich kann ja nicht nur noch per Nachnahme versenden.

..Und die Zahlungsm?glichkeit f?r verschiedene Kunden zu verbieten l?st ja nicht das Problem.

Ich will das eigentlich nur so anbieten wie das jeder andere Shop auch macht.

Die Kunden sollen entweder per Nachnahme, Vorkasse oder Paypal bezahlen k?nnen.

Link to comment
Share on other sites

Es w?rde ja eigentlich auch ausreichen, wenn man unter Versandoptionen "per Nachnahme" ausw?hlt und dann die Zahlungsoptionen ?berspringen w?rde, da das ja dann klar ist. Muss daf?r denn der Sourcecode angepasst werden oder wie?

(Der erste Beitrag war auch von mir, hatte mein Passwort erst nicht finden k?nnen und mich neu registriert.)

Link to comment
Share on other sites


// class constructor

  function payment($module = '') {

   global $PHP_SELF;


   if (defined('MODULE_PAYMENT_INSTALLED') && xtc_not_null(MODULE_PAYMENT_INSTALLED)) {

    $this->modules = explode(';', MODULE_PAYMENT_INSTALLED);


    $include_modules = array();


    if ( (xtc_not_null($module)) && (in_array($module . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1)), $this->modules)) ) {

     $this->selected_module = $module;


     $include_modules[] = array('class' => $module, 'file' => $module . '.php');

    } else {

     reset($this->modules);

     while (list(, $value) = each($this->modules)) {

      $class = substr($value, 0, strrpos($value, '.'));

      $include_modules[] = array('class' => $class, 'file' => $value);

     }

    }

	// load unallowed modules into array

	$unallowed_modules = explode(',', $_SESSION['customers_status']['customers_status_payment_unallowed']);


    for ($i = 0, $n = sizeof($include_modules); $i < $n; $i++) {

     if (xtc_in_array(str_replace('.php', '', $include_modules[$i]['file']), $unallowed_modules) != 'false') {

      // check if zone is alowed to see module

      if (constant(MODULE_PAYMENT_ . strtoupper(str_replace('.php', '', $include_modules[$i]['file'])) . _ALLOWED) != '') 

	if( ((int)MODULE_SHIPPING_FLAT_ZONE <= 0) ) {

       $unallowed_zones = explode(',', constant(MODULE_PAYMENT_ . strtoupper(str_replace('.php', '', $include_modules[$i]['file'])) . _ALLOWED));

      } else {

       $unallowed_zones = array();

      }

      if (in_array($_SESSION['delivery_zone'], $unallowed_zones) == true || count($unallowed_zones) == 0) {

       if ($include_modules[$i]['file']!='' && $include_modules[$i]['file']!='no_payment') {

       include(DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/payment/' . $include_modules[$i]['file']);

       include(DIR_WS_MODULES . 'payment/' . $include_modules[$i]['file']);

       }

       $GLOBALS[$include_modules[$i]['class']] = new $include_modules[$i]['class'];

      }

     }

    }

    // if there is only one payment method, select it as default because in

    // checkout_confirmation.php the $payment variable is being assigned the

    // $HTTP_POST_VARS['payment'] value which will be empty (no radio button selection possible)

    if ( (xtc_count_payment_modules() == 1) && (!is_object($_SESSION['payment'])) ) {

     $_SESSION['payment'] = $include_modules[0]['class'];

    }


    if ( (xtc_not_null($module)) && (in_array($module, $this->modules)) && (isset($GLOBALS[$module]->form_action_url)) ) {

     $this->form_action_url = $GLOBALS[$module]->form_action_url;

    }

   }

  }

Ich tippe mal, dass ich diesen Code hier modifizieren muss um die anderen Module zu deaktivieren, die Ich nicht m?chte falls Nachnahme aktiviert wurde...

Ich kenne mich mit php nicht wirklich aus, die Frage ist daher, wie kann ich heraus finden welches Modul unter den Versandoptionen gew?hlt wurde.

Wei? jemand wie diese Variable hei?t?

Link to comment
Share on other sites

Also, entweder versteh ich was falsch, oder Du hast irgendwas so ver?ndert, da? der Kunde zweimal die Zahlung angezeigt bekommt.

Beim normalen Shop erscheint als erstes die Versandart, dann kommt die Zahlungsart und da kann man auch Voreinstellungen machen, was f?r Zahlungsoptionen ?berhaupt angezeigt werden, anschliessend kommst Du zur Best?tigung, also hat der Kunde keine zweimalige Auswahl, oder Du hast etwas gravierend ver?ndert.

Gru?

Danny

Link to comment
Share on other sites

Du hast schon Recht, ich habe ein Versandmodul ge?ndert, es hei?t jetzt bei mir nun Nachnahme. Das habe ich gemacht, weil ich verschiedene (4) Versandarten anbiete.

Wenn dies als Versandart ausgew?hlt wird, dann addiert es automatisch 13 EUR DHL-Geb?hren zum Gesamtpreis.

Man k?nnte auch erst die Nachnahmeoption bei Zahlungsart ausw?hlen lassen, da habe ich aber dann das Problem, dass der Kunde irgendwas als Versandart ausgew?hlt haben kann.

Wenn ich jetzt nur mit DHL Ware versenden w?rde, dann k?nnte ich das ganz einfach machen und immer zu den normalen DHL-Geb?hren eine Nachnahmegeb?hr addieren.

... Aber das geht nur, wenn ich lediglich ein Versandunternehmen nutzen w?rde.

Link to comment
Share on other sites

Axo, ich nutze auch tabellarische Versandkosten (je nach Bestellmenge) und daher kann ich auch nicht einfach Betrag X zur Rechnung addieren und komme auf die 13 EUR Nachnahmegeb?hr, denn ich kann ja nicht wissen was die errechneten Versandkosten sind.

Das k?nnte ich auch nur durch Code?nderung l?sen...

Link to comment
Share on other sites

Okay, ich habe das jetzt mal so gel?st, dass immer die Differenz von den 13 EUR Nachnahmegeb?hren und den ausgew?hlten Versandkosten als Nachnahmegeb?hr in der Endabrechnung f?llig werden. Ist eigentlich etwas unsch?n weil ich etwas Code modifizieren musste aber nun ja es geht immerhin.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...