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: Versandkostentabelle Ländernamen ausgeschrieben

    karabey

    • Schreiberling
    • Beiträge: 320
    • Geschlecht:
    Versandkostentabelle Ländernamen ausgeschrieben
    am: 12. Februar 2013, 13:08:21
    Hallo,

    Arbeite gerade an dem Versandkostentabelle Modul von Sergej Stroh. Das Modul tut was er soll doch Anpassungen sind bedürftig.

    Das Modul liefert Ländername abgekürzt (AT). Und wenn in der Tabelle zu viele Länder sind dann wird es unübersichtlich. Auch in Warenkorb steht "Versand nach AT"

    Habe in der Administration AT auf Austria umgestellt. Danach wurde aber das Versand nicht mehr berechnet.

    Das ganze einzeln umzuschreiben würde eine Ewigkeit dauern. Weis vielleicht jemand was für Alternativen dazu gibt?

    lg
    karabey

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

    karabey

    • Schreiberling
    • Beiträge: 320
    • Geschlecht:
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #1 am: 12. Februar 2013, 13:25:08
    Mehr Info zur Versandkostentabelle Modul
    http://www.xtc-load.de/2010/06/versandkostentabelle-fur-xtcommerce/

    shipping.php
    Code: PHP  [Auswählen]
    <?php
    /*
     *  shipping_table.php
     *      Lies alle Einstellungen/Versandkosten aus und erzeugt eine übersictliche Tabelle
     *  Copyright 2005 by Sergej Stroh.
     *  22.12.2005
     */


      $module_smarty = new Smarty;
      $module_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');
           
    //-- DIESEN TEIL KANN MAN WEITER ERWEITERN --
            $shipping_array = array('DHL','DP','UPS','UPSE', 'AP','CHRONOPOST'); // Versandart definieren
            $shipping_names = array('DHL','Deutsche Post','United Parcel Service (UPS)','United Parcel Service Express (UPS Express)','Austrian Post','Chronopost'); // Versandartbezeichnung
            $num_of_zones = array('7'); // 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['PHP_SELF']);                       
           
                            // 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['PHP_SELF'],
                                            'SHIPPING_MODUL' => ''); // countries anhängen
                           
    /*                      NOCH NICHT FERTIG
                                    if($shipping_allowed_true > 0){
                                    // -- Länder laden --
                                    $countries_allowed_table = 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 = 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 = split('[:,]', $cost['configuration_value']);
                                    $cost_count = count($cost_table);
                                   
                                    for($b=0; $b<$cost_count; $b++){
                                            $new_weight_cost_list .= '<tr><td width="50%" style="background-color:'.($b%4?'#eeeeee':'#ffffff').';padding:5px; ">'. COUNTRY_COST_BY . $cost_table[$b] . COUNTRY_WEIGHT .'</td>';
                                            $new_weight_cost_list .= '<td width="50%" style="background-color:'.($b%4?'#eeeeee':'#ffffff').';padding:5px; "> '. $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');
    ?>

    shipping_table.html
    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="shipping_table"}

    <table width="100%" border="0" cellpadding="2" cellspacing="1">
            <tr>
                    <td class="main"><a name="top" id="top">{$COUNTRY_SHIPPING_FALSE_TEXT}</a></td>
            </tr>  
    </table>       
    <br />

    <!-- shipping -->
    {if $MODUL_ACTIVE}


    {foreach name=shipping item=modul from=$shipping_modules}
    <table width="100%" border="0" cellpadding="2" cellspacing="1">
            <tr>
                    <td class="main"><strong><a name="{$modul.SHIPPING_NAME}" id="{$modul.SHIPPING_NAME}">{$modul.SHIPPING_NAME}</a></strong></td>
            </tr>
    {if $modul.SHIPPING_HANDLING}  
            <tr>
                    <td class="main" colspan="2">{$COUNTRY_SHIPPING_HANDLING_TEXT} {$modul.SHIPPING_HANDLING} EUR.</td>
            </tr>
    {/if}          
    {if $modul.SHIPPING_ALLOWED}   
            <tr>
                    <td class="main" colspan="2">{$COUNTRY_SHIPPING_ALLOWED_TEXT} {$modul.SHIPPING_ALLOWED}.</td>
            </tr>
    {/if}  
    </table>
    <br />

    {foreach key=key_data item=item_data from=$modul.SHIPPING_MODUL}
    <table style="width:100%;" cellpadding="0" cellspacing="0">
            <tr>
                    <td style="padding:5px; border:1px solid #d4d4d4; width:15%;" valign="top">{$COUNTRY_SHIPPING_TEXT}</td>
                    <td colspan="2" style="padding:5px; background-color:#d4d4d4;border: solid; border-width:0px 1px 1px 1px; border-color:#d4d4d4;" >{$item_data.COUNTRIES}</td>
            </tr>
            <tr>
                    <td style="padding:5px; border: solid; border-width:0px 1px 1px 1px; border-color:#d4d4d4;" valign="top">{$COUNTRY_COST_TEXT}</td>
                    <td valign="top" bgcolor="#ffffff">
                            <table width="100%" style="border: solid; border-width:0px 1px 1px 0px; border-color:#d4d4d4;" cellpadding="0" cellspacing="0">{$item_data.WEIGHT_COST}</table>
                    </td>
            </tr>  
    </table>       
    <br />
    {/foreach}
    <br />
    {/foreach}

    {/if}  
    <!-- shipping EOF -->
     

    Ist es nicht besser Ländernamen ausgeschrieben zu haben (im ganzen System) oder doch nur einzelne Module anpassen?

    lg
    karabey

    Jürgen

    • Viel Schreiber
    • Beiträge: 895
    • Geschlecht:
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #2 am: 12. Februar 2013, 13:49:42
    Seh ich genauso, das fand ich schon immer seltsam, wenn im Warenkorb, etc. Versand nach AT steht...

    Gruss Jürgen

    karabey

    • Schreiberling
    • Beiträge: 320
    • Geschlecht:
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #3 am: 12. Februar 2013, 22:00:56
    Schön wäre auch ein Ansatzpunkt wo wir beginnen könnten um selbst zu arbeiten. Wenn ich es schaffe es fertig zu bekommen werde ich die Lösung natürlich kostenlos anbieten aber hier sind anscheinend einige Leute fest entschlossen auch wenn sie Informationen haben nicht mitzuteilen?!? Geht die modifiedShop Community zur Ende?

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #4 am: 12. Februar 2013, 22:15:42
    Der Lösungsansatz wäre in erster Linie die Ländernahmen mehrsprachig zu machen. Was hilft es, wenn Du dann AT in Österreich ausgeschrieben hast und der Kunde bei einem mehrsprachigen Shop in eine andere Sprache wechselt. Dann bleibt Österreich. AT als Kürzel ist da schon etwas mehr "international"

    Ein Lösungsansatz wäre hier schon angesprochen
    http://www.modified-shop.org/forum/index.php?topic=24517.msg226497#msg226497

    wobei
    http://www.modified-shop.org/forum/index.php?topic=11971.msg115088#msg115088

    Das mit dem
    Zitat
    aber hier sind anscheinend einige Leute fest entschlossen auch wenn sie Informationen haben nicht mitzuteilen?!?
    hat wohl seine Gründe.

    Zum einen ist es ein riesiger Aufwand alles zu berücksichtigen - unter meinem angegeben Link Lösungsansatz führt web28 schon einiges auf, was da zu ändern wäre - zum anderen gäbe es dann vielleichte eine spezielle von Vielen gesuchte kostenpflichtige Erweiterung weniger. Wer weiß?

    Muß jeder für sich selbst entscheiden, was er wie machen möchte und sich vorher gründliche Gedanken machen, wo die Reise hingehen soll.

    Gerd

    karabey

    • Schreiberling
    • Beiträge: 320
    • Geschlecht:
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #5 am: 12. Februar 2013, 23:40:02
    Du hast vollkommen Recht wenn es mehrsprachig sein sollte. Aber AT ist genauso unverständlich für ein nicht Deutschsprachigen wie Österreich. Nehmen wir an der Googled über Österreich was der wiederum für AT tun würde falls unbekannt.

    In Englischen wäre es noch sinnvoller wie Austria oder Germany, einfacher und verständlicher als wie zu Googlen oder so ein Bild zu haben.

    Ich danke dir von ganzen Herzen für deinen Beitrag. Das war mein Ansatzpunkt an dem ich weiter arbeiten werde.

    Wünsche dir noch ein schönen und angenehmen Abend.

    lg
    karabey

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #6 am: 13. Februar 2013, 00:09:13
    Dann solltest Du, wenn Du den Lösungsansatz mal probierst vielleicht auch folgenes Extra versuchen: In die Tabelle wo die ganzen Ländernamen und Abkürzungen stehen ein weiteres Feld einzubauen wo nur Platzhalter für die Sprachdateien drin stehen die dann in den jeweiligen Sprachdateien in die zutreffenden Ländernamen übersetzt werden. Dies muß natürlich auch im Adminbereich bei den Ländern mit eingebaut werden, damit bei Änderungen oder Neuanlage auch der entsprechende Platzhalter eingetragen werden kann.

    z.B. Germany = DE = GERMANY

    Letzteres GERMANY ist dann der neue Platzhalter der auch in den Sprachdateien definiert werden muß.

    Beim vorgeschlagenen Lösungsansatz sind die Ländernamen ja fest in der Datenbank ohne die Möglichkeit Änderungen dazu im Adminbereich vorzunehmen. Solange sich nichts ändert kein Problem. Falls doch muß man in der Datenbank rumbasteln - nicht so sinnvoll ... außerdem ist "nur" deutsch und englisch vorgesehen.

    Diesen Platzhalter läßt Du dann in allen relevanten php Dateien statt der ursprünglichen Kurz- oder Langform ausgeben und es wird mehrsprachig.

    Denke, das ist aber ein ziemlicher Akt.

    Würde es selber probieren, habe aber nach dem ganzen Updaterummel ehrlich gesagt erhebliche Zweifel ob ich meine Energie nicht anderweitig einsetzen soll.

    Gerd

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #7 am: 13. Februar 2013, 11:04:06
    Verstehe nicht, warum hier immer von einem riesen Aufwand geschrieben wird. Ich hab diverse Shops mit mehrsprachigen Ländernamen und auch mit 'Versand nach Deutschland' Text. Da ist in der Tat mehr Aufwand erforderlich, aber nur mehrsprachige Ländernamen fürs Frontend beim besten Willen nicht.

    Und ich weiß auch nicht, warum man noch eine Bearbeitung der Ländernamen im Admin braucht wenn die mehrsprachig sind. Evtl. Änderungen kann man ja in einem normalen Update mit nachreichen, sofern sich da was tut. Aber das betrifft eh Länder, die die meisten von uns nicht mal beliefern.

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #8 am: 13. Februar 2013, 11:24:16
    Wenn Du eine Lösung hast die nicht nach "Riesenhaufwand" aussieht und Du diese bereits erfolgreich getestet und eingesetzt hast, warum gibst Du diese Lösung dann nicht bekannt?

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #9 am: 13. Februar 2013, 11:28:45
    Unabhängig davon, dass ich mich eigentlich nicht zu rechtfertigen brauche, welchen Code ich rausgebe und welchen nicht: Weil sie nicht in einem modified-Shop verbaut ist, sondern in seinem Vorgänger.

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #10 am: 13. Februar 2013, 12:13:23
    Denke mal, das ist jetzt wieder typisch. Nicht jetzt speziell nur auf Dich bezogen sondern betrifft die komplette x t c Geschichte.

    Entweder ist es so geheim daß man nicht offen drüber sprechen darf. Oder es ist so kompliziert, daß sich keiner rantraut oder so einfach, daß es unter der Hand viele gleiche Erweiterungen für unterschiedlich teuer Geld (was natürlich auch keiner weiß da hier wieder der Geheimnispunkt greift). Dann gibt es ein Lösung wo man dann herausfindet sie ist angeblich doch nix und die andere Lösung ist zu kompliziert und die nächste Möglichkeit wäre ja einfach, aber dann sind wir wieder am Anfang ...

    Das ist denke ich seit Supermario vor vilen Jahren damals sein Forum gespalten hat bei allen irgendwie so drin - dieser schädliche Virus. Und deshalb wird es eigentlich noch ewig dauern bis etwas, wo so viele Leute unnötig Zeit und Energie immer wieder auf's Neue einbringen müssen um kleine Schritte nach vorne zu machen, vielleicht doch mal einen Standard erreicht.

    Aber das sind so Dinge auf die man erst kommt, wenn es vielleicht schon zu spät ist. Ähnlich beim Autokauf wenn nach dem ersten Winter beim frischlackiert gekauften Supertollen ersten eigenem Flitzer nicht nur der Rost überall durchbricht sondern auch der Spachtel Kiloweise abfällt.

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #11 am: 13. Februar 2013, 17:19:18
    Nicht jammern, machen. Mehrsprachige Ländernamen lassen sich innerhalb einer Stunde integrieren (grad selber gemacht).

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Versandkostentabelle Ländernamen ausgeschrieben
    Antwort #12 am: 13. Februar 2013, 17:43:23
    rechtstexte für onlineshop
    1 Antworten
    1011 Aufrufe
    13. Mai 2019, 10:17:20 von hpzeller
    4 Antworten
    706 Aufrufe
    17. Oktober 2022, 08:11:04 von Eihops
    54 Antworten
    29112 Aufrufe
    15. April 2016, 08:37:32 von 0815