ich würde gerne für einen eigenen neuen Shop auf 4.7 Basis eine Start und Endzeit einbauen…
Idee:
Ein Artikel mit Start und Endzeit, der auch nur in dieser Zeitspanne zu kaufen ist.
Die Endzeit möchte ich dann auch als ablaufende Zeit Tage/Std/Min/Sec sichtbar bei jedem Artikel egal wo er auf den Seite sichtbar ist haben.
Hat sich da schon jemand mal mit beschäftigt und kann mir Codeschnipsel oder Tipps geben ?
Zwar kann man ja z.B. -Angebot der Woche- Zeitlich begrenzen, aber der Artikel bleibt nach Ablauf ja immer noch kaufbar oder wäre das der Ansatz dort zu sagen …ist der Artikel nicht mehr Angebot der Woche so stelle ihn in der DB als nicht mehr kaufbar ?
mir ist auch gerade eingefallen, das das mit meiner Idee über -angebot der woche- ja nicht geht, da ich mehrere Artikel mit unterschiedlichen Laufzeiten haben möchte…so wie ich nun hier und anderswo gestöbert habe nennt sich das wohl Live-Shopping…es gab da mal ein Modul von…wurde aber eingestellt das Ganze.
häh, wieso?
man kann doch die Artikel mit der Option “aktiv von … bis …” auf die Sekunde genau aktivieren und deaktivieren lassen. Und einen Countdown einzubauen ist pillepalle
ich habs…jo…habe in Perfomance Einstellungen die Option “beim laden der Artikel <von bis> berücksichtigen” angehakt und mal dann bei artikel geschaut…habe ich ja noch nie benutzt diese Option …und das in den ganzen 3 Jahren nicht
nun gut…klasse und danke für den schups in die richtige Richtung…nun muss ich mir nur noch die Uhr basteln
das ist eigentlich auch schon eingebaut, Nennt sich unter Kundeninfo -> Aktionen verwalten -> Promotions
Kannst Dir auch gern mal diesen Screencast bzgl. Liveshopping antun:
@Marco Steinhaeuser
im Video ist ja nur zu sehen, dass man es so einstellen kann, dass der Warenkorb nach einem countdown gelöscht wird…
auch damit habe ich mich noch nicht wirklich beschäftigt:
Kundeninfo -> Aktionen verwalten -> Promotions
aber bislang habe ich da hier auch keine richtige info darüber gefunden, nur aus alten Beiträgen , dass es mit azur nicht geht etc.
Auch durch probieren im Demo-Shop bin ich nicht schlauer geworden wie da was wo funktioniert.
Hi @Andreas Agadon (wirst Du mich wohl bitte ausschliesslich mit meinem Vornamen ansprechen?! :-))
im Theme Azure ist die Option nicht per default aktiviert. Aber man kann es durchaus so anpassen, dass es den gewünschten Effekt erzielt: Auf der Startseite kann ein Banner eingebunden werden, das Promotions darstellt - noch soundsoviele Stunden kaufbar, Aktion leider schon beendet etc.
beim countdown komme ich dann mal wieder nicht mehr weiter…
Es gibt einen countdown im Shop …oxcountdown.js …der ist ja für den warenkorb
Diesen Countdown (die oxcountdown.js) möchte ich ja jetzt für jeden einzelnen artikel verwenden …zur Endzeit eines Artikels komme ich z.B. über [{ $_product->oxarticles__oxactiveto->value}] …nun habe ich mir etliche Beispielseiten und auch die Countdown.tpl…minibasket etc angeschaut…aber mir einen countdown daraus zu basteln bekomme ich einfach nicht hin…zumal mir da wirklich das Verständniss etwas fehlt.
Vieleicht kann mir da hier wer helfen, damit ich mir das ding basteln kann.
Desweiteren mußte ich feststellen, dass ja mal wieder alle Ordner in der 4.7 nicht mehr da sind wo sie noch in der 4.5.5 mal waren
fangen wir es mal anders an…der Countdown im Warenkorb greift ja auf die Einstellungen im Admin unter private sales zurück…
Mal ganz einfach gedacht…wenn ich es nun haben möchte, dass er z.B auf Artikel verwalten->artikel->Hersteller-Artikelnummer (MPN) eines Artikels zurückgreift, wo muss ich dass denn dann bitte ändern ?
Die Hersteller-Artikelnummer (MPN) benötige ich nicht und dort könnte ich ja nun auch die Zeit in sec eintragen.
Ich finde einfach nicht was ich da wo ändern soll…oder wäre auch dieser Ansatz völlig falsch
ich gebs auf…das ist mir einfach zu hoch und ich verstehe die Zusammenhänge einfach nicht, egal wo ich hier, im Web oder in diversen scripten nachschaue…
[QUOTE=vanilla thunder;113676]Und einen Countdown einzubauen ist pillepalle[/QUOTE]
@vanilla thunder
Du bist jetzt mein letzte Hoffnung
Der Zusammenhang ist folgender:
Ein Artikel hat einen “Endzeitpunkt”, wie du den herausbekommst, weisst du ja schon.
Dann brauchst du zunächst einen Countdown Script, siehe den Link von mir auf Seite 1.
Schau dir mal ein paar Scripts an, bei jedem steht dabei, welchen Code er braucht um zu funktionieren und v.a. wie die Datumsangabe (Format) aussehen muss. Mit etwas Glück findest du ein Script, dass den Datumsformat von OXID versteht. Bei etwas weniger Glück musst du das Datum, das im Artikel eingetragen ist, umwandelt. Oder du nimmst ein anderes Feld und trägst es dort im richtigen Format ein.
Und dann verfolgst du die Anleitung zum Einbau des Scripts.
// Hier alle Termine chronologisch(!) mit Datum und Text anlegen
endTime[0] = new Date(2012, 4, 12, 20, 0, 0); //Jahr, Monat - 1 !!!, Tag,
der Pfad angegeben wird…(obwohl ich denke, dass er hier nicht mit der Datumsangabe aus der db zurechtkommt)
Ein zweiter countdown wäre dieser:
<?php
//z.b. Zeitpunkt aus einer Datenbank
$datetime = "2013-12-31 09:21:28";
$ts = strtotime($datetime); //in TimeStamp umwandeln
$currentTs = time(); //Aktueller Timestamp
?>
<html>
<head>
<title>Countdown</title>
<script type="text/javascript">
var countdownfunc = function(elem, ende, endstring)
{
//Wenn nichts als countdownende angegeben wurde dann wird das hier festgelegt
if(typeof endstring == 'undefined')
{
endstring = 'jetzt';
}
//Der ausgabestring wird festgelegt
var output = endstring;
//Differenz zwischen jetzt und dem ende
//division durch 1000 weil in JavaScript ein timestamp in Millisekunden angegeben wird
var timeDiff = (parseInt(ende)) - (parseInt(new Date().getTime() / 1000));
//Wenn mehr als 0 Sekunden übrig ist dann ...
if(timeDiff > 0)
{
//... setz den ausgabe string zurück
output = '';
//Wenn mehr als 1 Stunde (60 sek * 60 Min) übrig ist...
if(timeDiff > 3600)
{
//errechne wie viele stunden übrig sind
output += parseInt(timeDiff/3600) + 'h ';
timeDiff = timeDiff%3600; //Modulo, teile durch eine stunde und speichere den rest
}
//Wenn mehr als 1 Minute (60 Sek) übrig ist ...
if(timeDiff > 60)
{
//... errechne wieviele minuten es sind ...
output += parseInt(timeDiff/60) + 'm ';
timeDiff = timeDiff%60;//... und merk dir den rest
}
//jetzt sind nur noch die sekunden übrig
output += timeDiff + 's';
//rufe diese funktion nach 1000 millisekunden (1 Sek) wieder auf
setTimeout(function() {countdownfunc(elem, ende, endstring);},1000);
}
//Schreib den ausgabestring in das mitgelieferte element
elem.innerHTML = output;
};
</script>
</head>
<body>
Restzeit: <div id="countdown"></div>
<script type="text/javascript">
//Funktion erst aufrufen nachdem das element erzeugt wurde ...
countdownfunc(document.getElementById('countdown'), <?=$ts?>);
</script>
</body>
</html>
Hier würden ja wohl die Datumsangaben passen, aber egal wie und was ich hier eintrage…
//z.b. Zeitpunkt aus einer Datenbank
$datetime = “2013-12-31 09:21:28”;
auf der Artikelseite zeigt er nix an…
Zwar sind auf deiner empfohlenen Seite recht viele und auch schöne dabei…aber mit meinem Schulenglisch ist es doch schon recht lange her
Und wie schon oben geschrieben…ich habe keinen blassen Schimmer wo ich den Pfad zur db und wie eintrage…egal ob nun zur vorgegebenen Endzeit oder zu einem anderen Feld (z.B. Hersteller-Artikelnummer (MPN) ) wo ich die Zeit in sec eintrage.
Pfad zu der db? Wozu? Woher und warum und wofür hast du den ganzen unnötigen Code?
Dann machen wir jetzt mal den Countdown ganz konkret an einem Beispiel.
Schritt 1
ich habe mich spontan für “KK Countdown” ( more info / demo ) entschieden. Einfach direkt auf “download” drücken und dann fängt auch direkt die Anleitung an, womit auch zum Schritt 2 übergehen.
Schritt 2
Nehmen wir mal die productmain.tpl. Ich setze den Countdown direkt unter den Titel des Produktes.
1: die Script einbinden, aber erst muss man die Dateihochladen. Am besten dahin, wo die anderen Scripts sind. Und da jQuery in Azrue bereits eingebunden ist, laden wir nur die kkcountdown.min.js hoch.
In dem Template findet man überall solche Zeilen:
3: den Countdown selbst einbauen.
Es ist ein Tag erforderlich mit der Klasse “kkcount-down” und einem Attribut “time” mit dem Wert des Datums, das dem “active to” entspricht.
Bei meinem Artikel habe ich “aktiv bis 2013-02-25 12:45:17” eingetragen. Du hast ja vorher schon folgendes festgestellt:
also kommt dabei logischerweise “2013-02-25 12:45:17” raus, was dem Beispiel “1325372400” gar nicht ähnlich aussieht.
Dann steht also fest, dass du dieses Datum umformatieren musst. An dieser Stelle hättest du dann wieder im Forum gefragt, wie man das hier “2013-02-25 12:45:17” denn umformatieren könnte.
Dann hätte ich gesagt, dass es dafür eine Smarty Funktion gibt. Smarty ist sowas wie eine Programmiersprache und wird u.a. von OXID in den Templates benutzt und diese merkst du anhand von den Kombinationen aus eckigen und geschweiften Klammern: [{ $bla }] und dass diese Funktion “date_format” heißt (date_format (Datums Formatierung) | Smarty) und so benutzt wird:
ich habe dieses mal $oDetailsProduct genommen, weil in der productmain.tpl $oDetailsProduct benutzt wird und nicht $_product
Schritt 3
Speichern, die Seite neuladen und da ist es auch schon.
Nach dem letzten Schritt in der Anleitung folgen noch die Optionen für den Countdown, diese kannst du in dem mehrzeiligen Code, der den Countdown startet, angeben/anpassen.
Jetzt kannst du per CSS und mit der Klasse “kkcount-down” das Aussehen von dem Countdown ändern.
Keine Pfade zu der db, nur 10 Zeilen Quellcode aus einer Datei in die andere kopieren
…das ist doch mal eine vernünftige Erklärung…wow …vielen vielen Dank für deine Mühe.
Nicht nur das das Ganze funktioniert, nein, es erklärt auch die ganzen Zusammenhänge und hilft mir (und bestimmt auch einigen anderen) nun auch in Zukunft weiter…echt klasse.
Ich musste zwar bei einigen Textstellen schmunzeln, aber das war auch sicherlich so beabsichtigt