Seite 1 von 1

Nachnahmeversand ab einen bestimmten Betrag

Verfasst: 03.10.2010, 09:52
von wolfschw
Hallo

Gibt es eine möglichkeit in der Zahlungsweise die Versandart per Nachnahme erst ab einen bestimmten
Betrag Sichtbar zu machen ?

Beispiel:

Kunde kauft einen Artikel im Warenwert von 5 EUR
Wählt dann die Versandart aus, und im nächsten Schritt der Zahlungsweise sollte dann das
Optionsfeld Versand per Nachnahme nicht auftauchen.
Wenn der Kunde seinen Warenwert erhöht z.B. 20 EUR sollte das Optinsfeld per Nachnahme wieder erscheinen.

gruß

Wolfgang

Verfasst: 04.10.2010, 15:13
von r23
Hallo,

in der funktion function cod() {
~/shop/inlcudes/modules/payment/cod.php

kannst du nach

Code: Alles auswählen

      $this->sort_order = (defined('MODULE_PAYMENT_COD_SORT_ORDER') ? MODULE_PAYMENT_COD_SORT_ORDER : null);

Das Modul in einer Abhängikeit ein oder auschalten

Code: Alles auswählen

if ($this->enabled == true) {

    Hier deine Anforderungen {
          $this->enabled = false;
   }
}

Damit du deine Bedinungen formulieren kannst, kannst du vorher in

Code: Alles auswählen

    function cod() {
      global $oOrder, $aLang;
dir ansehen, was in der $oOrder->info['total] steht... evtl. musst du noch die Versandkosten abziehen $oOrder->info['shipping_cost]

Code: Alles auswählen

$sTotal = $oOrder->info['total] - $oOrder->info['shipping_cost];
if $sTotal < 5 {
    $this->enabled = false;
}

Code: Alles auswählen

    function cod() {
      global $oOrder, $aLang;

      $this->code = 'cod';
      $this->title = $aLang['module_payment_cod_text_title];
      $this->description = $aLang['module_payment_cod_text_description];
      $this->enabled = (defined('MODULE_PAYMENT_COD_STATUS') && (MODULE_PAYMENT_COD_STATUS == 'True') ? true : false);
      $this->sort_order = (defined('MODULE_PAYMENT_COD_SORT_ORDER') ? MODULE_PAYMENT_COD_SORT_ORDER : null);

     if ($this->enabled == true) {
          $sTotal = $oOrder->info['total] - $oOrder->info['shipping_cost];
          if ($sTotal < 5) {
              $this->enabled = false;
          }
     }
      if ((int)MODULE_PAYMENT_COD_ORDER_STATUS_ID > 0) {
        $this->order_status = MODULE_PAYMENT_COD_ORDER_STATUS_ID;
      }

      if (is_object($oOrder)) $this->update_status();
    }
Hoffe die Antwort hilft weiter

ralf

Verfasst: 04.10.2010, 16:49
von wolfschw
Ok

Funktioniert

Vielen Dank

gruß

Wolfgang