Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Versandkosten tabelle

    DonTorpedo

    • Neu im Forum
    • Beiträge: 34
    Versandkosten tabelle
    am: 11. September 2013, 21:06:15
    Hallo,

    Ich habe hier aus dem Forum die Versandkostentabelle in meinem Shop in Verwendung. Hat jemand vielleicht netterweise einen Code, wie ich ein Dropdownmenü mit Länderauswahl einbauen könnte? (Dropdown länderauswahl -> tabelle anzeigen.)

    Lg


    Linkback: https://www.modified-shop.org/forum/index.php?topic=27641.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.018
    • Geschlecht:
    Re: Versandkosten tabelle
    Antwort #1 am: 11. September 2013, 23:30:59
    Wo soll das Dropdown denn angezeigt werden und was genau soll nach Auswahl eines Landes wo angezeigt werden ?

    Gruß,
    noRiddle

    DonTorpedo

    • Neu im Forum
    • Beiträge: 34
    Re: Versandkosten tabelle
    Antwort #2 am: 12. September 2013, 08:10:05
    Dieses Modul habe ich angepasst: BETA MODUL: "Liefer- und Versandkosten" automatisch anzeigen

    die shipping.php
    schaut nun so aus:

    Code: PHP  [Auswählen]
     $module_smarty = new Smarty;
      $module_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');
           
    //-- DIESEN TEIL KANN MAN WEITER ERWEITERN --
            $shipping_array = array('DP','UPS','UPSE', 'AP','ZONES'); // Versandart definieren
            $shipping_names = array('Deutsche Post','United Parcel Service (UPS)','United Parcel Service Express (UPS Express)','Austrian Post','Versand nach Zonen'); // Versandartbezeichnung
            $num_of_zones = array('7','8','15','9','16'); // Anzahl der Zonen +1
           
    //-- AB HIER KEINE ÄNDERUNGEN MEHR --

            // array mit allen Versandarten bilden um eine Liste zu erzeugen
            $shipping_count = count($shipping_array);
           
            // Länder array
            $countries_array = array();
            $shipping_list = array();
                           
            for($w = 0; $w < $shipping_count; $w++){
                    // Modul aktiv?
                    $active_query = xtc_db_query("SELECT configuration_value FROM ".TABLE_CONFIGURATION."
                            WHERE configuration_key = 'MODULE_SHIPPING_$shipping_array[$w]_STATUS'"
    );      
                    $active = xtc_db_fetch_array($active_query);
           
                    // active?
                    if($active['configuration_value'] == 'True' || $active['configuration_value'] == 'true'){
                            $module_smarty->assign('MODUL_ACTIVE', '1');
           
                            // Übersicht-Liste erzeugen
                            $shipping_list[] = array(
                                    'NAME' => $shipping_names[$w],
                                    'LINK' => $_SERVER['SCRIPT_NAME']);                    
           
                            // Bearbeitungsgebühr für diese Versandart in Euro
                            // MODULE_SHIPPING_HANDLING
                            $handling_query = xtc_db_query("SELECT configuration_value FROM ".TABLE_CONFIGURATION."
                                    WHERE configuration_key = 'MODULE_SHIPPING_$shipping_array[$w]_HANDLING'"
    );
                            $handling = xtc_db_fetch_array($handling_query);
           
                            $module_smarty->assign('COUNTRY_SHIPPING_HANDLING_TEXT', COUNTRY_SHIPPING_HANDLING_TEXT);
                           
                            // Versand erlaubt nur nach,
                            // MODULE_SHIPPING_ALLOWED
                            $shipping_allowed_query = xtc_db_query("SELECT configuration_value FROM ".TABLE_CONFIGURATION."
                                    WHERE configuration_key = 'MODULE_SHIPPING_$shipping_array[$w]_ALLOWED'"
    );
                            $shipping_allowed = xtc_db_fetch_array($shipping_allowed_query);
                            $shipping_allowed_true = xtc_db_num_rows($shipping_allowed);
                           
                            $module_smarty->assign('COUNTRY_SHIPPING_ALLOWED_TEXT', COUNTRY_SHIPPING_ALLOWED_TEXT);

                            // Array bilden
                            $countries_array[$w] = array(
                                            'SHIPPING_NAME' => $shipping_names[$w],
                                            'SHIPPING_HANDLING' => $handling['configuration_value'],
                                            'SHIPPING_ALLOWED' => $shipping_allowed['configuration_value'],
                                            'TOP_LINK' => $_SERVER['SCRIPT_NAME'],
                                            'SHIPPING_MODUL' => ''); // countries anhängen
                           
    /*                      NOCH NICHT FERTIG
                                    if($shipping_allowed_true > 0){
                                    // -- Länder laden --
                                    $countries_allowed_table = preg_split('[,]', $shipping_allowed['configuration_value']);
                                    $countries_allowed_count = count($countries_allowed_table);
                                   
                                    // versandkosten in diese länder filtern
                            }else{
                            // falls keine einzelne versandzonen vorhanden
    */
                         
                            for($i = 1; $i < $num_of_zones[$w]; $i++){
                                    $countries_query = xtc_db_query("SELECT configuration_value FROM ".TABLE_CONFIGURATION."
                                            WHERE configuration_key = 'MODULE_SHIPPING_$shipping_array[$w]_COUNTRIES_"
    .$i."'");
                                    $countries = xtc_db_fetch_array($countries_query);
                   
                                    $cost_query = xtc_db_query("SELECT configuration_value FROM ".TABLE_CONFIGURATION."
                                            WHERE configuration_key = 'MODULE_SHIPPING_$shipping_array[$w]_COST_"
    .$i."'");
                                    $cost = xtc_db_fetch_array($cost_query);
                                   
                                    // -- Länder laden --
                                    $countries_table = preg_split('[,]', $countries['configuration_value']);
                                    $countries_count = count($countries_table);
                   
                                    for($a=0; $a<$countries_count; $a++){
                                            $new_countries_list .= $countries_table[$a];
                                            // letzte kommata entfernen und neu bilden
                                            if($a+1 != $countries_count) $new_countries_list .= ', ';
                                    }
                           
                                    // -- Kosten und Gewicht laden ---             
                                    $cost_table = preg_split('/[:,]+/', $cost['configuration_value']);
                                    $cost_count = count($cost_table);
                                   
                                    for($b=0; $b<$cost_count; $b++){
                                            $new_weight_cost_list .= '<tr><td bgcolor="'.($b%4?'#eeeeee':'#ffffff').'">'. COUNTRY_COST_BY . $cost_table[$b] . COUNTRY_WEIGHT .'</td>';
                                            $new_weight_cost_list .= '<td bgcolor="'.($b%4?'#eeeeee':'#ffffff').'"> '. $cost_table[$b+1] . COUNTRY_COST_EUR .'</td></tr>';
                                   
                                    $b++;  
                                    }
                                   
                                    $countries_array[$w]['SHIPPING_MODUL'][$i] = array(
                                            'COUNTRIES' => $new_countries_list,
                                            'WEIGHT_COST' => $new_weight_cost_list);
                                           
                                    $new_countries_list = '';       // Liste leeren
                                    $new_weight_cost_list = '';            
                                   
                            } // Kosten EOF
                    //} // IF allowed
                    }       // IF active
            }       // FOR shipping
           
            $module_smarty->assign('shipping_modules',$countries_array);
            $module_smarty->assign('modul_list',$shipping_list);
           
            // Text
            $module_smarty->assign('COUNTRY_SHIPPING_TEXT', COUNTRY_SHIPPING);
            $module_smarty->assign('COUNTRY_COST_TEXT', COUNTRY_COST);
           
            $module_smarty->assign('language', $_SESSION['language']);
            $module_smarty->assign('COUNTRY_SHIPPING_TRUE_TEXT', COUNTRY_SHIPPING_TRUE);
            // kein cache
            $module_smarty->caching = 0;
      echo $module_smarty->fetch(CURRENT_TEMPLATE.'/module/shipping_table.html');
    ?>

    sie tut was sie soll (Versandkosten im Frontend in einer Tabelle ausgeben) es schaut aber nicht wirklich hübsch aus wenn man zb. 2 Versandarten hat.

    Ich habe das Versandkostenmodul nach Zonen und ein Modul für artikelabhängige Versandkosten.

    Nun fehlt mir eben nurmehr ein Dropdown der Länder der dann die Tabelle ausgibt.

    Lg
    Don

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.018
    • Geschlecht:
    Re: Versandkosten tabelle
    Antwort #3 am: 12. September 2013, 15:17:46
    Ich hatte schon verstanden.
    Du beantwortest aber mit keiner Silbe meine Fragen.
    Nochmal zum Mitschreiben:
    • Wo soll das Dropdown angezeigt werden ?
    • Was genau soll wo und wie nach Auswahl eines Landes angezeigt werden ?

    Theoretisch könnte man ein Dropdown im Content der Versandkosten generieren und bei Auswahl mithilfe einer sog. Sprungmarke (#ID) zur richtigen Tabelle springen (wobei ich mich frage wieviele Tabellen du denn anlegen möchtest).
    Das scheitert allerdings an folgendem Problem:
    Da die Versandkosten bei Klick auf den Link bei den Produkten auch in der Thickbox (oder welche Lightbox man immer hat) angezeigt werden, funktioniert die Sprungmarke nicht.
    Zwar hatte ich das mal gefixt, sodaß es funktioniert, in der neuesten Revision geht's aber wieder nicht und ich habe noch nicht herausgefunden warum.

    "...es schaut aber nicht wirklich hübsch aus..."
    lässt sich ja ändern, auch ohne Dropdown.

    Gruß,
    noRiddle

    karsta.de

    • Experte
    • Beiträge: 3.159
    Re: Versandkosten tabelle
    Antwort #4 am: 12. September 2013, 16:00:38
    Ich würde es mit css versuchen. Im Anhang ein eventuelles Beispiel. Allesdings ist das auch kein Dropdown wie bei der neuen Versandanzeige der Länderauswahl im Warenkorb.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.018
    • Geschlecht:
    Re: Versandkosten tabelle
    Antwort #5 am: 12. September 2013, 16:39:59
    Sehr gute Idde.
    Einfach ein Akkordeon benutzen.
    Einfaches Live-Beipiel für eine andere Contentseite.

    Gruß,
    noRiddle

    DonTorpedo

    • Neu im Forum
    • Beiträge: 34
    Re: Versandkosten tabelle
    Antwort #6 am: 13. September 2013, 12:14:50
    Hi,

    Danke für eure Antworten, an Akkordeons habe ich bereits gedacht jedoch empfinde ich die Lösung als Suboptimal für mich.

    Ich hätte mir gedacht das man vl aus den arrays ein dropdown machen kann.. dazu habe ich codeschnipsel bzw. anleitung gefunden.. ist dies auch auf den oben genannten Code anwendbar oder ist es hier aufwendiger?
    Bei php bin ich eher nicht so toll..
    http://phpsnips.com/10/Dropdown-Menu-From-An-Array#.UjLZwH9bxjM

    Die Tabelle soll nur im Frontend nachdem der Kunde auf den Button Versandkosten klickt erscheinen,

    nach der Auswahl des Landes soll die jeweilige Versandkostentabelle ausgegeben werden.

    wie zb hier (ist aber veyton):
    http://imagine-media-group.de/demoshop/de/Liefer-und-Versandkosten

    Lg
    Don

    modifnick

    • Fördermitglied
    • Beiträge: 79
    • Geschlecht:
    Re: Versandkosten tabelle
    Antwort #7 am: 31. Oktober 2013, 11:46:01
    Hallo zusammen,

    ich bin auf der Suche nach einer einfachen Möglichkeit, die Anzahl der Zonen für den Versand für dp (Deutsche Post) vorzunehmen.

    In den phps pro Sprache habe ich eine 7. Zone bereits ergänzt. Aber den Abschnitt oder einen ähnlichen in der includes/classes/shipping.php finde ich nicht im Ansatz wie es DonTorpedo zitiert hat

    Code: PHP  [Auswählen]
    //-- DIESEN TEIL KANN MAN WEITER ERWEITERN --
            $shipping_array = array('DP','UPS','UPSE', 'AP','ZONES'); // Versandart definieren
            $shipping_names = array('Deutsche Post','United Parcel Service (UPS)','United Parcel Service Express (UPS Express)','Austrian Post','Versand nach Zonen'); // Versandartbezeichnung
            $num_of_zones = array('7','8','15','9','16'); // Anzahl der Zonen +1
           
    //-- AB HIER KEINE ÄNDERUNGEN MEHR --

    In welcher Datei ist das obige zu finden?

    LG modifnick
    Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
    0 Antworten
    1545 Aufrufe
    07. März 2015, 10:52:49 von webald
    1 Antworten
    2024 Aufrufe
    30. Oktober 2010, 16:22:31 von franky_n
    8 Antworten
    4896 Aufrufe
    01. September 2011, 14:59:26 von Tomcraft
    2 Antworten
    1683 Aufrufe
    12. Mai 2017, 18:41:43 von Herr_Bert