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: MODUL: Versandkosten im Warenkorb anzeigen

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.220
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    am: 08. Dezember 2010, 11:54:22
    So Leute, hier mal eine Möglichkeit, die Versandkosten bereits im Warenkorb anzeigen zu lassen.

    /includes/modules/order_details_cart.php

    suche:

    Code: PHP  [Auswählen]
    $module_smarty->assign('TOTAL_CONTENT', $total_content);
    $module_smarty->assign('language', $_SESSION['language']);
    $module_smarty->assign('module_content', $module_content);

    davor das hier einfügen:

    Code: PHP  [Auswählen]
    //BOF - GTB - show Shipping in cart
    require (DIR_WS_CLASSES.'order.php');
    $order = new order();
    $total_weight = $_SESSION['cart']->show_weight();
    $total_count = $_SESSION['cart']->count_contents();
    if (!isset($order->delivery['country']['iso_code_2']) || $order->delivery['country']['iso_code_2'] == '') {
      unset($_SESSION['shipping']);
      $delivery_zone = xtc_db_fetch_array(xtc_db_query("SELECT countries_id, countries_iso_code_2, countries_name FROM ".TABLE_COUNTRIES." WHERE countries_id = ". STORE_COUNTRY));
      $order->delivery['country']['iso_code_2'] = $delivery_zone['countries_iso_code_2'];
      $order->delivery['country']['title'] = $delivery_zone['countries_name'];
      $order->delivery['country']['id'] = $delivery_zone['countries_id'];
    }
    $_SESSION['delivery_zone'] = $order->delivery['country']['iso_code_2'];
    require (DIR_WS_CLASSES.'shipping.php');
    $shipping = new shipping;
    $quotes = $shipping->quote();
    if (defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true')) {
            switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {
                    case 'national' :
                            if ($order->delivery['country']['id'] == STORE_COUNTRY)
                                    $pass = true;
                            break;
                    case 'international' :
                            if ($order->delivery['country']['id'] != STORE_COUNTRY)
                                    $pass = true;
                            break;
                    case 'both' :
                            $pass = true;
                            break;
                    default :
                            $pass = false;
                            break;
            }
            $free_shipping = false;
            if (($pass == true) && ($order->info['total']>= $xtPrice->xtcFormat(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER, false, 0, true))) {
                    $free_shipping = true;
            }
    } else {
            $free_shipping = false;
    }
    include (DIR_WS_LANGUAGES.$_SESSION['language'].'/modules/order_total/ot_shipping.php');
    $shipping_content = array ();
    if ($free_shipping == true) {
        $shipping_content[] = array(
            'NAME' => FREE_SHIPPING_TITLE,
                            'VALUE' => $xtPrice->xtcFormat(0, true, 0, true)
                            );
    } else {
      $module_smarty->assign('FREE_SHIPPING_INFO', sprintf(FREE_SHIPPING_DESCRIPTION, $xtPrice->xtcFormat(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER, true, 0, true)));
            $i = 0;
            foreach ($quotes AS $quote) {
              if ($quote['id'] != 'freeamount' && is_array($quote['methods'])) {
          $shipping_content[$i] = array(
            'NAME' => $quote['module'] . ' - ' . $quote['methods'][0]['title'],
                            'VALUE' => $xtPrice->xtcFormat(((isset($quote['tax']) && $quote['tax']> 0) ? $xtPrice->xtcAddTax($quote['methods'][0]['cost'],$quote['tax']) : (!empty($quote['methods'][0]['cost']) ? $quote['methods'][0]['cost'] : '0')), true)
                            );
                      $i++;
                    }
            }
    }
    unset($_SESSION['delivery_zone']);
    $module_smarty->assign('shipping_content', $shipping_content);
    $module_smarty->assign('COUNTRY', $order->delivery['country']['title']);
    //EOF - GTB - show Shipping in cart

    /templates/xtc5/module/order_details.html

    das hier am Ende einfügen:

    Code: PHP  [Auswählen]
    <br/>
    <table class="orderdetails" width="100%" border="0" cellspacing="0" cellpadding="6">
        <tr class="headerrow">
        <td class="left">{#text_possible_shipping_type#} {$COUNTRY}{if $FREE_SHIPPING_INFO} - {$FREE_SHIPPING_INFO}{/if}</td>
       <td class="center"> </td>
        </tr>
        {foreach name=aussen item=shipping_data from=$shipping_content}
        <tr>
          <td colspan="1" class="subtotal">{$shipping_data.NAME} :<strong>{$shipping_data.VALUE}</strong></td>
          <td class="subtotal"> </td>
        </tr>
        {/foreach}
    </table>

    /lang/german/lang_german.conf

    suche das hier:

    Code: PHP  [Auswählen]
    #shopping cart
    [shopping_cart]
    heading_cart = 'Ihr Warenkorb enthält:'
    text_empty = 'Ihr Warenkorb ist leer.'
    text_remove = 'Entfernen'
    text_qty = 'Anzahl'
    text_article = 'Artikel'
    text_total = 'Summe'
    text_single = 'Einzelpreis'

    füge danach das hier ein:

    Code: PHP  [Auswählen]
    text_possible_shipping_type = 'mögliche Versandarten für'

    BUGFIX
    bisher hatte ich nie die Möglichkeit den immer wieder gemeldete Fehlermeldung nicht nachstellen. Durch Zufall hatte ich plötzlich auch diese Meldung.

    Zitat
    Cannot use object of type __PHP_Incomplete_Class as array

    Jetzt habe ich auch eine Lösung dafür:

    /includes/classes/order.php

    ca. Zeile 361

    Code: PHP  [Auswählen]
                              'shipping_method' => isset($_SESSION['shipping']) ? $_SESSION['shipping']['title'] : '',
                              'shipping_cost' => isset($_SESSION['shipping']) ? $_SESSION['shipping']['cost'] : '',
                              'comments' => isset($_SESSION['comments']) ? $_SESSION['comments'] : '',
                              'shipping_class' => isset($_SESSION['shipping']) ? $_SESSION['shipping']['id'] : '',

    ersetzen mit dem hier:

    Code: PHP  [Auswählen]
                              'shipping_method' => is_array($_SESSION['shipping']) ? $_SESSION['shipping']['title'] : '',
                              'shipping_cost' => is_array($_SESSION['shipping']) ? $_SESSION['shipping']['cost'] : '',
                              'comments' => isset($_SESSION['comments']) ? $_SESSION['comments'] : '',
                              'shipping_class' => is_array($_SESSION['shipping']) ? $_SESSION['shipping']['id'] : '',

    Damit ist auch die Fehlermeldung weg.

    Hier natürlich noch ein paar Screenshots dazu:

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Viel Spass damit, GTB

    [EDIT Tomcraft 12.02.2011: Eine erweiterte Version mit Länderdropdown gibt es hier: MODUL: Versandkosten im Warenkorb anzeigen mit Länderdropdown]

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

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.181
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #1 am: 08. Dezember 2010, 12:03:30
    Krasse Sache! :B

    Eine großartige Erweiterung! :thx:

    Grüße

    Torsten

    Viol

    • Fördermitglied
    • Beiträge: 2.271
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #2 am: 08. Dezember 2010, 13:48:37
    Moin,

    schöne Erweiterung in der Tat :thumbs:
    Kleine Anregung: das "Mögliche Versandarten für" sollte über ein Sprachvariable geregelt werden.
    z.B.

    Code: PHP  [Auswählen]
    text_possible_shipping_type = 'mögliche Versandkosten für'
     
    in die lang_german.conf etc. einfügen.
    und die Variable

    Code: PHP  [Auswählen]
    <td class="left">{#text_possible_shipping_type#} {$COUNTRY}</td>
    einfügen.
    Müsste doch eigentlich so klappen oder?

    Grüße
    Viol

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.181
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #3 am: 08. Dezember 2010, 13:53:46
    Guter Einwand! Mehrsprachigkeit sollte immer unterstützt werden!

    Ich ändere das gleich in der Anleitung.

    Grüße

    Torsten

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.220
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #4 am: 08. Dezember 2010, 13:56:23
    Hallo Viol,

    danke, das ist mir wohl untergegangen, beim lokalen Test.

    Habe die Anleitung im ersten Post ergänzt.

    Gruss Gerhard

    Viol

    • Fördermitglied
    • Beiträge: 2.271
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #5 am: 08. Dezember 2010, 14:14:06
    Nur darauf achten, die Umlaute entsprechend umzuschreiben. Geht hier im Forum leider nicht..

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.181
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #6 am: 08. Dezember 2010, 14:33:40
    Hallo Viol,

    danke, das ist mir wohl untergegangen, beim lokalen Test.

    Habe die Anleitung im ersten Post ergänzt.

    Gruss Gerhard

    Prima, brauch ich das nicht mehr machen. :B

    Danke Gerhard! :thx:

    Grüße

    Torsten

    jannemann

    • modified Team
    • Beiträge: 6.289
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #7 am: 09. Dezember 2010, 13:50:53
    Hallo GTB,

    eine tolle Erweiterung!
    Ich hätte da noch eine Verbesserung:
    Wenn man den kostenlosen Versand ab 75,00 EUR anbietet, dann wäre es eine feine Sache, wenn der Kunde das auch sehen könnte. Kann man nicht diesen Wert oder die Variable noch mit Abfragen und anzeigen?

    Schöne Grüße,
    Jan

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.220
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #8 am: 09. Dezember 2010, 13:53:57
    Ich bin eigentlich davon ausgegangen, dass es bereits funktioniert.

    Ich schau's mir aber nochmals an.

    Gruss Gerhard

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.220
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #9 am: 09. Dezember 2010, 13:57:18
    gerade nochmals getestet. Das funktioniert bereits.

    Welches Versandkostenmodul hast du im Einsatz ?

    Gruss Gerhard

    jannemann

    • modified Team
    • Beiträge: 6.289
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #10 am: 09. Dezember 2010, 14:12:12
    Hallo Gerhard,

    wir haben das Modul "Table" im Einatz und es wird nach Preis berechnet.

    Schöne Grüße,
    Jan

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.220
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #11 am: 09. Dezember 2010, 14:15:13
    vorher:

      [ Für Gäste sind keine Dateianhänge sichtbar ]

    nachher:

      [ Für Gäste sind keine Dateianhänge sichtbar ]

    also klappt.

    jannemann

    • modified Team
    • Beiträge: 6.289
    • Geschlecht:
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #12 am: 09. Dezember 2010, 14:31:49
    Hallo Gerhard,

    sorry, da habe ich mich wohl etwas falsch ausgedrückt.
    Es wäre besser, wenn da noch der Warenwert stehen würde (Versandkostenfrei ab: 75,00 EUR). Sonst kommt vielleicht noch ein Kunde auf die Idee und bestellt etwas für 10,90, macht von der Seite einen Screenshot und möchte dann den Artikel Versandkostenfrei geschickt haben.
    Besser wäre, es würde dort auch noch der Warenwert stehen, der im Modul "Versandkostenfrei" eingestellt ist. :-)

    Schöne Grüße,
    Jan

    billybob

    • Fördermitglied
    • Beiträge: 563
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #13 am: 09. Dezember 2010, 14:41:19
    Hallo GTB,
    tolle Idee, aber leider noch eine kleine Einschränkung:

    Benutze das Modul "flat".
    Dies zeigt a) den Nettopreis und b) Versandkosten an, obwohl der Bestellwert überschritten ist.

    Habe mal im screenshot beide Module aktiviert, um es deutlich zu machen. (Versandkosten=Tabellarische Versandkosten)

    EDIT: Passiert wahrscheinlich, weil die Versandkostenfreiheit im Modul ot_shipping definiert wird.

    Gruß
    billybob

      [ Für Gäste sind keine Dateianhänge sichtbar ]

    Ralf2209

    • Neu im Forum
    • Beiträge: 26
    MODUL: Versandkosten im Warenkorb anzeigen
    Antwort #14 am: 09. Dezember 2010, 14:53:57
    Habe es eingebaut und es funktioniert perfekt....

    Aber: die Umschaltung der Währung haut nicht hin, bzw. es wird immer der Betrag in der Standardwährung angezeigt. Das Kürzel für die entsprechende Währung (EUR, USD...) ändert sich.

    242 Antworten
    140395 Aufrufe
    25. September 2018, 18:39:16 von tuepo
    5 Antworten
    4335 Aufrufe
    02. Mai 2013, 23:14:58 von Simon
    2 Antworten
    2595 Aufrufe
    08. Dezember 2010, 12:40:01 von GTB
    1 Antworten
    2626 Aufrufe
    02. August 2010, 13:38:39 von Firsttrade