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: Anzeige voraussichtlicher Liefertermin

    D.L.

    • Mitglied
    • Beiträge: 108
    MODUL: Anzeige voraussichtlicher Liefertermin
    am: 22. Juni 2015, 11:09:20
    Angezeigt wird über dieses Modul entsprechend dem jeweiligen Lieferstatus der voraussichtliche Liefertermin in der Artikel Detailansicht in folgender Form:

    Voraussichtlicher Liefertermin innerhalb Deutschland:
    Freitag 26. Juni 2015 - Montag 29. Juni 2015


    Die Errechnung erfolgt über die Angabe der Berechnungsgrundlage (Tag/Woche/Monat) beim Lieferstatus sowie dem ggf. vorhandenen Trennzeichens (z.B. "-" in "3-4 Tage") und berücksichtigt dabei Sonntage (optional Samstage), gesetzliche/bewegliche Feiertage sowie die Uhrzeit bis zu der ein Versand am selben Tag möglich ist.

    Schöne Grüsse
    Daniel

    [EDIT Tomcraft 22.06.2015: Modul aktualisiert.]
    [EDIT Tomcraft 23.06.2015: Modul aktualisiert.]
    [EDIT Tomcraft 24.06.2015: Modul aktualisiert.]
    [EDIT Tomcraft 17.05.2016: Modul für Shopversion 2.x eingefügt.]
    [EDIT Tomcraft 19.12.2019: Modul für Shopversion 2.x aktualisiert.]

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

    X-film-Profishop.de

    • Neu im Forum
    • Beiträge: 9
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #1 am: 22. Juni 2015, 17:23:16
    Hallo und danke für das Modul,

    leider bleibt die product_info.html nach der Installation blank.

    Zitat
    if(is_object($modDelivery) && $text_delivery = modDelivery->getDeliveryDays($product->data['products_shippingtime']))

    Die in dieser Zeile aufgerufene Funktion getDeliveryDays ruft Ihrerseits eine nicht deklarierte Funktion auf:
    Zitat
    PHP Fatal error: Call to undefined method main::getShippingStatusDays()

    Gruß

    Joscha

    D.L.

    • Mitglied
    • Beiträge: 108
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #2 am: 22. Juni 2015, 17:50:40
    leider bleibt die product_info.html nach der Installation blank.

    stimmt, da fehlte noch ein wichtiger Part in der /includes/classes/main.php und ist in diesem Paket ergänzt!

    [EDIT Tomcraft 22.06.2015: Modul in Beitrag 1 aktualisiert.]

    Gulliver72

    • Mitglied
    • Beiträge: 191
    • Geschlecht:
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #3 am: 22. Juni 2015, 18:14:49
    Ihr hättet es ruhig hier drunter hängen können  :whistle:
    Anzeige des Auslieferungsdatums wie bei Ebay

    D.L.

    • Mitglied
    • Beiträge: 108
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #4 am: 22. Juni 2015, 18:27:23
    Nur ich hätte es hängen können und habe aber von dem Post nichts gewusst bzw. nicht nach "Auslieferungsdatum" gesucht ;->

    ShopUser

    • Frisch an Board
    • Beiträge: 55
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #5 am: 23. Juni 2015, 10:59:27
    Moin zusammen,
    ich stehe irgendwie im Dunkeln.
    Sind die jeweiligen Module von D.L. und Gulliver72 im Grunde identisch oder jeweils eine eigene Entwicklung?
    Bei Gulliver72 taucht zudem im weiteren Verlauf des Threads unter "Anzeige des Auslieferungsdatums wie bei Ebay" eine Version 2 auf die entsprechend auf eine Neuentwicklung hinweist- diese wurde aber wiederum nicht im ersten Beitrag aktualisiert.
    Kann mir jemand mal das Licht anmachen :-)

    Gruß
    André

    D.L.

    • Mitglied
    • Beiträge: 108
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #6 am: 23. Juni 2015, 11:02:45
    Sind die jeweiligen Module von D.L. und Gulliver72 im Grunde identisch oder jeweils eine eigene Entwicklung?

    die gleiche Idee mit unterschiedlicher Entwicklung..

    ShopUser

    • Frisch an Board
    • Beiträge: 55
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #7 am: 23. Juni 2015, 11:12:57
    Wer mag denn beurteilen welcher Ansatz der bessere ist?

    web0null

    • Experte
    • Beiträge: 1.998
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #8 am: 23. Juni 2015, 11:22:31
    Wie wäre es mit dir?
    Dazu müsstest du dir beide Ansätze genau ansehen, wie auch jeder andere der es beurteilen sollte.

    Wenn ich es machen würde kommt wahrscheinlich eine 3 Version raus :-D
    PS. ich meine damit aber nicht das die beiden nicht gut wären.
    Gruß

    ShopUser

    • Frisch an Board
    • Beiträge: 55
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #9 am: 23. Juni 2015, 11:39:57
    Die Frage war eigentlich zum Ansatz der Programmierung. Ich denke da wärst Du mir um Meilen voraus.

    Gruß
    André

    Gulliver72

    • Mitglied
    • Beiträge: 191
    • Geschlecht:
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #10 am: 23. Juni 2015, 12:58:31
    Beurteilen kann ich es insofern, dass das Modul von D.L. professioneller Code ist und meins laienhaft/fehlerhaft  ;-)

    Das Modul sollte vielleicht auch die regionalen Feiertage mit berücksichtigen.

    @D.L.
    Schau dir meine Klasse auslieferungsdatum.php aus Version 2 an. Evtl. kannst du das integrieren. Sollte problemlos möglich sein.

    Noch ein Gimmick für das Modul, wenn gewünscht.
    Ein Countdown für die ablaufende Zeit bis zur Versandgrenze am jeweiligen Tag.
    Wenn Interesse, stell ich den Code hier mit rein.

    ShopUser

    • Frisch an Board
    • Beiträge: 55
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #11 am: 23. Juni 2015, 14:12:46
    [...]
    Ein Countdown für die ablaufende Zeit bis zur Versandgrenze am jeweiligen Tag.
    Wenn Interesse, stell ich den Code hier mit rein.

    Unbedingt!
    Danke Dir.

    Gruß
    André

    Gulliver72

    • Mitglied
    • Beiträge: 191
    • Geschlecht:
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #12 am: 23. Juni 2015, 16:44:17
    Noch ein Hinweis zu einem Logik-Problem. Darüber bin ich auch schon gestolpert  :-?
    Was passiert, wenn Samstags versendet wird und eine Zeit bspw. 16 Uhr eingestellt ist?
    In der Woche sollte die Zeit kein Problem sein. Samstags versendet man gewöhnlich bis max. 12 Uhr!
    Ich würde den Samstag generell auf 0 stellen. Aber das ist nur meine persönliche Meinung.

    Bin noch nicht dazu gekommen, dass Modul mal einzubauen. Deshalb weiß ich jetzt nicht, ob ich den Countdown richtig angeklemmt habe.

    Einbauanleitung für modified 1.06 Template xtc5

    /templates/xtc5/javascript/general.js.php

    Die JS-Dateien werden eingebunden. Dabei wird geprüft, ob die Sprache in der Session gespeichert ist. Wenn ja, wird die jeweilige Sprachdatei eingebunden.

    suche

    Code: PHP  [Auswählen]
    <?php // BOF - web28 - 2010-07-09 - TABS/ACCORDION in product_info ?>

    füge davor ein

    Code: PHP  [Auswählen]
    <?php // BOF Countdown für Versand by Gulliver72 ?>
    <script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/jquery.plugin.min.js" type="text/javascript"></script>
    <script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/jquery.countdown.min.js" type="text/javascript"></script>
    <?php if ((isset($_SESSION['language_code'])) && ($_SESSION['language_code'] != 'en')) { ?>
    <script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/jquery.countdown-<?php echo $_SESSION['language_code']; ?>.js" type="text/javascript"></script>
    <?php }
    // EOF Countdown für Versand by Gulliver72 ?>

    suche

    Code: PHP  [Auswählen]
    </script>

    füge davor ein

    Code: PHP  [Auswählen]
    // BOF Countdown für Versand by Gulliver72
    $(function () {
      var austDay = new Date(); // heutiges Datum
      var AbsolutJetzt = austDay.getTime(); // aktuelle Zeit
      var AbsolutDann = AbsolutJetzt + <?php echo $countdown_time; ?>; // Berechnung der Zeitdifferenz für Countdown
      austDay.setTime(AbsolutDann); // Zeitdifferenz als Countdown-Zeit setzen
      $.countdown.setDefaults($.countdown.regionalOptions[<?php if ((isset($_SESSION['language_code'])) && ($_SESSION['language_code'] != 'en')) { echo $_SESSION['language_code'];} ?>]); // Countdown auf jeweilige Sprache setzen
            $('#defaultCountdown').countdown({until: austDay, layout: '{hn} {hl}, {mn} {ml}, {sn} {sl}'}); // mit Format einzeilig
    });
    // EOF Countdown für Versand by Gulliver72

    includes/modules/product_info.php

    suche

     
    Code: PHP  [Auswählen]
     // get default product_info template

    füge davor ein

    Code: PHP  [Auswählen]
      // BOF Countdown für Versand by Gulliver72
        date_default_timezone_set('Europe/Berlin');
        setlocale (LC_ALL, 'de_DE');
      // wenn heute kein Wochenende oder Feiertag ist, wird der Countdown angezeigt
      if ((is_object($modDelivery) && $modDelivery->isFreeDay($tamo) !== TRUE) || strftime("%w",$tamo) != 0 || (DELIVERY_ON_SATURDAY == 0 && strftime("%w",$tamo) != 6)) {
        $tamo = time();
        // aktuelles Datum und Zeit
        $aktuelle_zeit = strftime("%H:%M:%S:%d:%m:%Y");
        // Differenz bis Versandzeitgrenze berechnen
        // aktuelle Zeit in Array zerlegen
        $start_time = explode(":", $aktuelle_zeit);
        // eingestellte Endzeit in Array ablegen
        $end_time = array();
        $end_time[] = DELIVERY_MAX_HOUR; // Stunde
        $minute = DELIVERY_MAX_MINUTE;
        $end_time[] = strlen($minute) == 1 ? '0' . $minute : $minute; // Minute
        $end_time[] = '00'; // Sekunde
        $ende_zeit = $end_time[0] . ':' . $end_time[1] . ':' . $end_time[2];
        // Timestamp der Startzeit berechnen
        $start_time_stamp = mktime($start_time[0], $start_time[1], $start_time[2], $start_time[3], $start_time[4], $start_time[5]);
        // Timestamp der Endzeit berechnen
        $end_time_stamp = mktime($end_time[0], $end_time[1], $end_time[2], $start_time[3], $start_time[4], $start_time[5]);
       
        // Zeitdifferenz als Timestamp, benötigt für Javascript-Funktion
        $time_difference = $end_time_stamp - $start_time_stamp;

        // Zeitdifferenz in Millisekunden
        $countdown_time = $time_difference * 1000;

        $akt_zeit = strftime("%T");
        if (($akt_zeit <= $ende_zeit) && ($product->data['products_quantity'] >0)) {
          $delivery_start_countdown = TEXT_COUNTDOWN_START . '<span id="defaultCountdown">&nbsp;</span>' . TEXT_COUNTDOWN_END;
          $info_smarty->assign('DELIVERY_START_COUNTDOWN', $delivery_start_countdown);
        }
      }
      // EOF Countdown für Versand by Gulliver72

    /templates/xtc5/modules/product_info/product_info_v1.html

    suche

          
    Code: PHP  [Auswählen]
    <p class="taxandshippinginfo" style="white-space:nowrap"><small>{$PRODUCTS_TAX_INFO}<br />{if $PRODUCTS_SHIPPING_LINK}{$PRODUCTS_SHIPPING_LINK|replace:'thickbox':'contentbox'|replace:'&amp;KeepThis=true&amp;TB_iframe=true&amp;height=400&amp;width=600':''|replace:'rel="nofollow" target="_blank"':''}{/if}</small></p>

    füge danach ein

          
    Code: PHP  [Auswählen]
    {if $DELIVERY_START_COUNTDOWN}<p>{$DELIVERY_START_COUNTDOWN}</p>{/if}
     

    /lang/german/german.php

    füge am Ende ein

    Code: PHP  [Auswählen]
    // BOF Countdown für Versand by Gulliver72
    define('TEXT_COUNTDOWN_START', 'Bestellen sie innerhalb der n&auml;chsten');
    define('TEXT_COUNTDOWN_END', ', erfolgt der Versand noch heute');
    // EOF Countdown für Versand by Gulliver72

    D.L.

    • Mitglied
    • Beiträge: 108
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #13 am: 23. Juni 2015, 17:01:50
    Das Modul sollte vielleicht auch die regionalen Feiertage mit berücksichtigen.

    @D.L.
    Schau dir meine Klasse auslieferungsdatum.php aus Version2 an. Evtl. kannst du das integrieren. Sollte problemlos möglich sein.

    Regionale Feiertage sind nun enthalten (aktualisiert ist die /includes/classes/main_setDeliveryDate.php) und richten sich nach dem im Backend eingestellten Bundesland unter "Mein Shop".

    [EDIT Tomcraft 23.06.2015: Modul in Beitrag 1 aktualisiert.]

    Gulliver72

    • Mitglied
    • Beiträge: 191
    • Geschlecht:
    Re: MODUL: Anzeige voraussichtlicher Liefertermin
    Antwort #14 am: 23. Juni 2015, 17:11:50
    Ups ein kleiner Fehler drin  :oops:
    Habe den Codeblock für die includes/modules/product_info.php korrigiert

    Code: PHP  [Auswählen]
    // BOF Countdown für Versand by Gulliver72
        date_default_timezone_set('Europe/Berlin');
        setlocale (LC_ALL, 'de_DE');
       $tamo = time();
      // wenn heute kein Wochenende oder Feiertag ist, wird der Countdown angezeigt
      if ((is_object($modDelivery) && $modDelivery->isFreeDay($tamo) !== TRUE) || strftime("%w",$tamo) != 0 || (DELIVERY_ON_SATURDAY == 0 && strftime("%w",$tamo) != 6)) {
         // aktuelles Datum und Zeit
        $aktuelle_zeit = strftime("%H:%M:%S:%d:%m:%Y");
        // Differenz bis Versandzeitgrenze berechnen
        // aktuelle Zeit in Array zerlegen
        $start_time = explode(":", $aktuelle_zeit);
        // eingestellte Endzeit in Array ablegen
        $end_time = array();
        $end_time[] = DELIVERY_MAX_HOUR; // Stunde
        $minute = DELIVERY_MAX_MINUTE;
        $end_time[] = strlen($minute) == 1 ? '0' . $minute : $minute; // Minute
        $end_time[] = '00'; // Sekunde
        $ende_zeit = $end_time[0] . ':' . $end_time[1] . ':' . $end_time[2];
        // Timestamp der Startzeit berechnen
        $start_time_stamp = mktime($start_time[0], $start_time[1], $start_time[2], $start_time[3], $start_time[4], $start_time[5]);
        // Timestamp der Endzeit berechnen
        $end_time_stamp = mktime($end_time[0], $end_time[1], $end_time[2], $start_time[3], $start_time[4], $start_time[5]);
       
        // Zeitdifferenz als Timestamp, benötigt für Javascript-Funktion
        $time_difference = $end_time_stamp - $start_time_stamp;
     
        // Zeitdifferenz in Millisekunden
        $countdown_time = $time_difference * 1000;
     
        $akt_zeit = strftime("%T");
        if (($akt_zeit <= $ende_zeit) && ($product->data['products_quantity'] >0)) {
          $delivery_start_countdown = TEXT_COUNTDOWN_START . '<span id="defaultCountdown">&nbsp;</span>' . TEXT_COUNTDOWN_END;
          $info_smarty->assign('DELIVERY_START_COUNTDOWN', $delivery_start_countdown);
        }
      }
      // EOF Countdown für Versand by Gulliver72

    @D.L.

    Wenn $this->year bei dir nicht vorhanden ist, kann das nicht funktionieren  ;-)

      
    Code: PHP  [Auswählen]
     $bb_base = new DateTime("$this->year-11-23");

    Dann so

    Code: PHP  [Auswählen]
    get_bussubett_datetime($jahr)->format('dm');

    und so

    Code: PHP  [Auswählen]
      function get_bussubett_datetime($jahr) {
        $bb_base = new DateTime("$jahr-11-23");
    1 Antworten
    2933 Aufrufe
    17. Juli 2013, 20:22:44 von sv.brueck
    2 Antworten
    2926 Aufrufe
    21. Oktober 2012, 08:48:58 von Charly
    9 Antworten
    5117 Aufrufe
    29. August 2013, 19:54:09 von noRiddle (revilonetz)
    201 Antworten
    77716 Aufrufe
    16. Dezember 2012, 17:06:49 von wulfy