Zahlungsmodul und Nachnahme gegenseitg sperren.

Thema wurde von sebastian-albrecht, 9. Februar 2015 erstellt.

  1. sebastian-albrecht

    sebastian-albrecht Erfahrener Benutzer

    Registriert seit:
    23. Oktober 2013
    Beiträge:
    91
    Danke erhalten:
    0
    Danke vergeben:
    8
    Liebe Forengemeinde,

    ich biete in meinem Shop verschiedene Zahl- und versandarten an. Unter anderem auch den Versand bzw. die bezahlung per Nachnahme. Leider kommt es immer wieder vor, das Kunden den kostenlosen versand innerhalb D (bei mir nicht für Nachnahme) mit der Nachnahme kombinieren und so falsche Portokosten generieren.
    Gibt es eine Möglichkeit bei einer Auswahl der Versandart Nachnahme alle Zahlungsmodule auszublenden, so dass nur die zahlung per Nachnahme mit der Pauschale erscheint und im umgekehrten Fall (keine nachnahme als versand gewählt) die zahlung per Nachnahme ausgeblendet wird...?

    LG Sebastian
     
  2. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.180
    Danke erhalten:
    6.200
    Danke vergeben:
    1.104
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    evtl. suchst du sowas?
    (Link nur für registrierte Nutzer sichtbar.)
     
  3. sebastian-albrecht

    sebastian-albrecht Erfahrener Benutzer

    Registriert seit:
    23. Oktober 2013
    Beiträge:
    91
    Danke erhalten:
    0
    Danke vergeben:
    8
    Hallo Dennis,

    im Grunde ist es schon sowas...aber bei mir soll es nicht abhängig vom artikel sein, sondern von der versandauswahl.....es können bei mir alle artikel mit allen versandarten versendet werden...nur bei nachnahme kommen die kunden über 99 eur (versandkostenfrei) leider zu einem gratisversand....das soll bei der nachnahme verhindert werden, da hier trotzdem die nachnahme fällig wird....

    LG Sebastian
     
  4. Anonymous

    Anonymous G-WARD 2015/2016

    Registriert seit:
    20. Februar 2012
    Beiträge:
    8.916
    Danke erhalten:
    1.559
    Danke vergeben:
    1.138
    Du hast unter "Zusammenfassung" eine Nachnahmegebühr eingetragen und diese fällt wegen "freeamount" weg?!

    Das würde ich für einen Bug halten.
     
  5. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    26. Oktober 2011
    Beiträge:
    967
    Danke erhalten:
    149
    Danke vergeben:
    130
    Du must in den Zahlungsarten Modulen bei den "Update Funktionen" die sachen eintragen die nicht möglich sein sollen.

    z.B. bei Nachnahme soll man keine Selbstabholung und Versandkostenfrei auswählen können.

    PHP:
    class cod_ORIGIN {

        var 
    $code$title$description$enabled;

        function 
    cod_ORIGIN() {
            global 
    $order$xtPrice;

            
    $this->code 'cod';
            
    $this->title MODULE_PAYMENT_COD_TEXT_TITLE;
            
    $this->description MODULE_PAYMENT_COD_TEXT_DESCRIPTION;
            
    $this->sort_order MODULE_PAYMENT_COD_SORT_ORDER;
            
    $this->enabled = ((MODULE_PAYMENT_COD_STATUS == 'True') ? true false);
            
    $this->info MODULE_PAYMENT_COD_TEXT_INFO;
            
    $this->cost;

            if ((int) 
    MODULE_PAYMENT_COD_ORDER_STATUS_ID 0) {
                
    $this->order_status MODULE_PAYMENT_COD_ORDER_STATUS_ID;
            }

            if (
    is_object($order))
                
    $this->update_status();
        }

        function 
    update_status() {
            global 
    $order;
            
            
    // Was nicht möglich sein soll bei Nachnahme
            
    if ($_SESSION['shipping']['id'] == 'selfpickup_selfpickup') {
                
    $this->enabled false;
            }
            if (
    $_SESSION['shipping']['id'] == 'freeamount_freeamount') {
                
    $this->enabled false;
            }
            
    // end

            
    if (($this->enabled == true) && ((int) MODULE_PAYMENT_COD_ZONE 0)) {
                
    $check_flag false;
                
    $check_query xtc_db_query("select zone_id from " TABLE_ZONES_TO_GEO_ZONES " where geo_zone_id = '" MODULE_PAYMENT_COD_ZONE "' and zone_country_id = '" $order->delivery['country']['id'] . "' order by zone_id");
                while (
    $check xtc_db_fetch_array($check_query)) {
                    if (
    $check['zone_id'] < 1) {
                        
    $check_flag true;
                        break;
                    } elseif (
    $check['zone_id'] == $order->delivery['zone_id']) {
                        
    $check_flag true;
                        break;
                    }
                }

                if (
    $check_flag == false) {
                    
    $this->enabled false;
                }
            }
            
    // BOF GM_MOD
            
    elseif (trim(MODULE_PAYMENT_COD_ALLOWED) != '') {
                
    $t_gm_allowed_countries explode(','MODULE_PAYMENT_COD_ALLOWED);

                if (!
    in_array($order->delivery['country']['iso_code_2'], $t_gm_allowed_countries)) {
                    
    $this->enabled false;
                }
            }
            
    // EOF GM_MOD
        
    }
     
  6. sebastian-albrecht

    sebastian-albrecht Erfahrener Benutzer

    Registriert seit:
    23. Oktober 2013
    Beiträge:
    91
    Danke erhalten:
    0
    Danke vergeben:
    8
    Danke für die Hinweise @achim und ryan-finley

    habe beides kombiniert...funzt