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: ANLEITUNG: Anzeige Restbetrag im Warenkorb bis Versandkostenfrei

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.027
    • Geschlecht:
    Die Anleitung ist entgegen des Thread-Titels für die Warenkorb-Box, nicht für den Warenkorb selbst, wenn ich mich nicht irre.
    Außerdem sollte man dazu sagen, daß der Code nur bei Verwendung von "Versandkostenfrei" in dem OT-Modul ot_shipping  gilt, nicht bei Verwendung des Versandmoduls freeamount.

    Bei Verwendung von "Versandkostenfrei" in dem OT-Modul ot_shipping  hier ein Vorschlag für den Warenkorb selbst (hatte ich noch auf Platte liegen):
    Datei anlegen mit im Kopf der Datei genanntem Namen und in dort genanntem Pfad:
    Code: PHP  [Auswählen]
    <?php
    /***********************************************************
    * file: nr_free_shipp_message.php
    * path: /includes/extra/modules/order_details_cart_total/
    * use: show buying difference to free shipping
    *
    * © copyright 09-2023, noRiddle
                 ____
                |    |       |     | |
      __   ___  |____/ °  ___|  ___| |  ___
    |/  | |   | |   \  | |   | |   | | |___|
    |   n |___o |    R i |___d |__ d l |__e

    ***********************************************************/


    //BOC config
    defined('NR_SHOW_FREE_SHIPP_MSG_UNDER') OR define('NR_SHOW_FREE_SHIPP_MSG_UNDER', 30);
    //EOC config

    $nr_is_free_ship = defined('MODULE_ORDER_TOTAL_SHIPPING_STATUS') && strtolower(MODULE_ORDER_TOTAL_SHIPPING_STATUS) == 'true'
                    && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && strtolower(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING) == 'true';

    if($nr_is_free_ship === true) {
      require_once(DIR_WS_CLASSES.'order.php');
      $temp_order = new order();
      $nr_is_store_country = $temp_order->delivery['country_id'] == STORE_COUNTRY;
      $nr_deliv_country_iso = strtoupper($temp_order->delivery['country']['iso_code_2']);
      unset($temp_order);

      $nr_min_freeshipp_val = $nr_is_store_country === true ? (float)MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER : (float)MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER_INTERNATIONAL;
      $nr_diff_buy_val = $nr_min_freeshipp_val - $total;
      if($nr_diff_buy_val > 0) {
        $eff_nr_diff_buy_val = $xtPrice->xtcFormat($nr_diff_buy_val, true, 0, true);
      }

    }

    if(isset($eff_nr_diff_buy_val)) {
      if($nr_diff_buy_val <= (int)NR_SHOW_FREE_SHIPP_MSG_UNDER) {
        $nr_free_dhipp_out_val = $eff_nr_diff_buy_val;
        switch(strtolower($_SESSION['language_code'])) {
          case 'de':
            define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'Nur noch %s bis wir ihre Bestellung versandkostenfrei versenden.'); // Wenn Sie noch eine Kleinigkeit für X EUR dazu bestellen können wir ihre Bestellung versandkostenfrei
            break;
          case 'en':
          case 'en_us':
          case 'en_gb':
            define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'Only %s until we send your order with free shipping.');
            break;
          default:
            define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'Only %s until we send your order with free shipping.');
        }
      } else {
        $nr_free_dhipp_out_val = $nr_min_freeshipp_val;
        switch(strtolower($_SESSION['language_code'])) {
          case 'de':
            define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'Ab %s Bestellwert versenden wir ihre Bestellung versandkostenfrei.');
            break;
          case 'en':
          case 'en_us':
          case 'en_gb':
            define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'From %s order value we ship your order free of shipping costs.');
            break;
          default:
            define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'From %s order value we ship your order free of shipping costs.');
        }
      }

      $module_smarty->assign('NR_DIFF_FREE_SHIPP_INFO', sprintf(NR_DIFF_FREE_SHIPP_INFO_MSG, $nr_free_dhipp_out_val));
    }
    ?>

    In /templates/YOUR_TEMPLATE/module/order_details,html  (nach Vorbild tpl_modified_nova) oben unter
    Code: XML  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="shopping_cart"}
    {config_load file="lang_`$language`.custom"}
    {config_load file="lang_`$language`.section" section="shopping_cart"}

    das einfügen:
    Code: PHP  [Auswählen]
    {if isset($NR_DIFF_FREE_SHIPP_INFO)}
    <h3 class="successmessage freeshipping mt_0">{$NR_DIFF_FREE_SHIPP_INFO}</h3>
    {/if} {*new message for free shipping by noRiddle, DEIN_KÜRZEL, 01-2024*}

    Texte in der nr_free_shipp_message.php  können nach Gusto angepasst werden.
    Oben in der Datei bei config  kann der Differenzwert festgelegt werden ab welchem die Message angezeigt wird.
    Manche möchten die Message nicht anzeigen lassen wenn der Betrag bis zur Versandkostenfrei-Grenze noch zu hoch ist.
    Sieht ein wenig blöd aus wenn da, übertrieben gesagt, steht
    Nur noch 320 EUR bis wir Ihre Bestellung versandkostenfrei versenden.
    Wenn man also, wie mom. vorgegeben, 30 einträgt, wird die Message erst angezeigt wenn es <= 30 EUR sind die zur versandkostenfreien Sendung fehlen.

    Gruß,
    noRiddle
    Shop Hosting

    artemtyse

    • Fördermitglied
    • Beiträge: 60
    Vielen Dank für die Bereitstellung.
    Ich habe es eben eingebaut. So etwas hatte ich gesucht.
     :thx:
    1 Antworten
    5684 Aufrufe
    22. Juli 2012, 16:54:27 von 0815
    2 Antworten
    2239 Aufrufe
    05. September 2012, 08:39:44 von creativi