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: Shop status - Online oder Offline setzen je nach Uhrzeit und Wochentag

    Tripone

    • Neu im Forum
    • Beiträge: 4
    Hallo liebe Leute,

    ich lese und lerne hier und manchmal Bastel ich auch nach eure Anleitungen. Bisher hat alles wunderbar geklappt. Daher möchte ich mich bei allen im Forum bedanken.

    Nun brauch ich direkte Hilfe und vielleicht können viele andere auch damit was anfangen.

    Im Netz habe ich ein kostenloses Öffnungszeiten Modul gefunden und verwende es auch. Dieses Modul war ursprünglich für eine Praxis gedacht und zeigt je nach vor-konfigurierten Tageszeiten an ob diese Praxis geöffnet und/oder geschlossen hat.

    Ich benutze das Shopsystem 1.06.

    Da ich im Backend mein Shop auf offline stellen kann, habe ich mich gefragt, ob ich dieses Modul umfunktionieren kann, um meinen Shopstatus automatisch (je nach vorkonfigurierter Zeit) auf offline bzw. online stellen kann.

    Ich betreibe ein Lieferservice und da ich nicht so viele Mitarbeiter habe, wäre es für mich sinnvoll, alles zu automatisieren..

    Das Modul für die Öffnungszeiten habe ich im Anhang.
    Für eine Lösung wäre ich dankebar..

    LG Antar


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

    ShopNix

    • Viel Schreiber
    • Beiträge: 1.208
    Für zeitgesteuerte Vorgänge setze ich cron ein. Vom technischen Hintergrund ist ein Script auf einem Webserver für derartige Zwecke eher ungeeignet.

    jaspa

    • Frisch an Board
    • Beiträge: 89
    • Geschlecht:
    Wieso den Shop komplett off Schalten.

    Du benötigst nur eine function für z.B. den Wochentag, Feiertage, sowie eine if-Abfrage für die Uhrzeit (z.B. Bestellungen/Vorbestellungen von 09.00 - 14.00 Uhr & 18.00 - 22.00Uhr möglich.

    Damit aktivierst/deaktivierst Du den in den Warenkorbbutton. (Wie bei pizza.da, Kochen auch nur mit Wasser)  :->

    Wenn keine Bestellung möglich blendest Du einen alternativ Link ein, wenn der Kunde draufklich erfolgt per Thickbox & Contentelement ein Hinweis mit den Bestellzeiten.

    Hier die function ohne Gewähr mit automatischen Osterfeiertagen
    Code: PHP  [Auswählen]
    //Funktion Wochentag und Feiertage berechnen
    function dayClosed($tag, $monat, $jahr) {

       // Parameter in richtiges Format bringen
       if(strlen($tag) == 1) {
          $tag = "0$tag";
       }
       if(strlen($monat) == 1) {
          $monat = "0$monat";
       }

       // Wochentag berechnen
       $datum = getdate(mktime(0, 0, 0, $monat, $tag, $jahr));
       $wochentag = $datum['wday'];

       // Prüfen, ob Wochenende
       if($wochentag == 0 || $wochentag == 6) {
          return true;
       }

       // Feste Feiertage werden nach dem Schema ddmm eingetragen
       $feiertage[] = "0101"; // Neujahrstag
       $feiertage[] = "0105"; // Tag der Arbeit
       $feiertage[] = "0310"; // Tag der Deutschen Einheit
       $feiertage[] = "3110"; // Reformationstag
       $feiertage[] = "2412"; // Heilig Abend
       $feiertage[] = "2512"; // Erster Weihnachtstag
       $feiertage[] = "2612"; // Zweiter Weihnachtstag

       // Bewegliche Feiertage berechnen
       $tage = 60 * 60 * 24;
       $ostersonntag = easter_date($jahr);
       $feiertage[] = date("dm", $ostersonntag - 2 * $tage);  // Karfreitag
       $feiertage[] = date("dm", $ostersonntag + 1 * $tage);  // Ostermontag
       $feiertage[] = date("dm", $ostersonntag + 39 * $tage); // Himmelfahrt
       $feiertage[] = date("dm", $ostersonntag + 50 * $tage); // Pfingstmontag
    // Prüfen, ob Feiertag
       $code = $tag.$monat;
       if(in_array($code, $feiertage)) {
          return true;
       } else {
          return false;
       }
    }


     

    Tageszeit Beispiel
    Code: PHP  [Auswählen]
    $jaspa_time = date('H');
    //Bestellungen sind von 22.00 Uhr bis 14.00 Uhr möglich
    if($jaspa_time <= 13 || $jaspa_time >= 22){
    //Kaufen Link aktiv
    $foo
    }else{
    // Kaufen Link nicht aktiv, stattdessen Link mit Hinweis
    $another_foo
    }
     

    pizza.de wird langsam unverschämt von den Gebühren, was??  :hust:

    Tripone

    • Neu im Forum
    • Beiträge: 4
    Hallo, das hört sich nach einer Antwort an die ich gesucht habe :)
    Wo genau könnte ich diesen Code einsetzen??
    Wie könnte ich 2 Tageszeiten angeben (wir haben auch eine Pause mittendrin)?
    An Feiertagen sollen sich die Öffnungszeiten nicht ändern, da geht es normal weiter.

    Öffnungszeiten
    Montag:       09:00 bis 12:00 Uhr und 17:00 bis 24:00 Uhr
    Dienstag:     09:00 bis 12:00 Uhr und 17:00 bis 24:00 Uhr
    Mittwoch:    09:00 bis 12:00 Uhr und 17:00 bis 24:00 Uhr
    Donnerstag: 00:00 bis 12:00 Uhr und 17:00 bis 24:00 Uhr
    Freitag:       00:00 bis 12:00 Uhr und 17:00 bis 24:00 Uhr
    Samstag:     00:00 bis 12:00 Uhr und 17:00 bis 24:00 Uhr
    Sonntag:     00:00 bis 09:00 Uhr

    Wie gesagt, ich benutze das Shopsystem 1.06 rev 4642.

    Zu meinen Hintergrundinformationen;
    Ich habe ein Lokal/Restaurant/Club mit Essens Lieferservice.
    Die oben genannten Zeiten sind unsere Lieferzeiten.

    LG Tripone

    jaspa

    • Frisch an Board
    • Beiträge: 89
    • Geschlecht:
    Ist die Frage wo Du den Link Off & Hinweis Link zu den Lieferzeiten einbinden willst.

    Wenn Du im Produkt Listing arbeitest(sinvoller), dann musst Du  in der /includes/classes/product.php arbeiten
    Wenn Du im Produktdetail arbeitest, dann in der /includes/modules/product_info.php arbeiten

    Dazu legst Du eine neue Datei im Verzeichnis /inc/ an  xtc_dayTimeOff.inc.php an

    Dort kommt der Code aus der Funktion rein.

    Die Datei bindest Du entweder in der product.php oder product_info.php ein mit
    Code: PHP  [Auswählen]
    require_once (DIR_FS_INC.'xtc_dayTimeOff.inc.php');
     

    Dann einfach die Funktion aufrufen
    Code: PHP  [Auswählen]
    $jaspa_get_current_day = date('d');
    $jaspa_get_current_month = date('m');
    $jaspa_get_current_year = date('Y');
    $jaspa_free_day = dayClosed($jaspa_get_current_day,$jaspa_get_current_month, $jaspa_get_current_year);



     

    Danach die If Abfrage wie bereist geschrieben, den ganzen Quatsch übergibst Du dann als Smartyvariable, z.B. in der products.php im Array für die Ausgabe
    Code: PHP  [Auswählen]
    return array ('PRODUCTS_NAME' => $array['products_name'],
                       //POPUP Link Lunchtimeerzeugt mit Produktnamen und Hinweistext für das Popup
                       'LUNCH_LINK' => $main->getLunchLink($array['products_name'],TEXT_INFORMATION),
     

    Dazu erweiterst Du die main.php im Verzeichnis /includes/classes/

    zeile 67 nach Shipping Link

    Code: PHP  [Auswählen]
    /Link
    function getLunchLink($product,$text) {
             
                    global $request_type;
                    return '<a rel="nofollow" target="_blank" href="'.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID=10&KeepThis=true&TB_iframe=true&height=180&width=370', $request_type).'" title="'.$text.'" class="thickbox addCart">'.$product.'</a>';
     

    Den Hinweistext kannst Du im Contentmanger schreiben und oben im Code bei
    Code: PHP  [Auswählen]
    coID=10
    Die ID des Contentelementes einfügen..

    viel Spaß beim ändern. :-D

    Tripone

    • Neu im Forum
    • Beiträge: 4
    Supi, ich werd es heute Abend mal versuchen einzubauen.. Danke für die schnelle Antwort :)
    1 Antworten
    2582 Aufrufe
    10. Oktober 2010, 19:49:07 von Tomcraft
    2 Antworten
    2571 Aufrufe
    05. März 2014, 01:58:02 von noRiddle (revilonetz)
    3 Antworten
    4694 Aufrufe
    21. Februar 2014, 16:03:36 von vizyon