FROM CACHE - de_header

Timer mit Bezug zur Datenbank

Timer mit Bezug zur Datenbank

arrrda8
Shopify Partner
5 0 0

Hallo,

 

ich benötige einen Timer für jedes einzelne Produkt. Sollte dann unter dem Preis auf der Produktseite stehen. Der Timer läuft 6 Tage. Zeitgleich habe ich eine Datenbank über MySQL (noch lokal, später in der Cloud). Diese Datenbank erstellt eine Tabelle zu jedem Produkt. In dieser sind die Kundeninformationen enthalten, welche das jeweilige Produkt bestellt haben. Ich möchte nun, dass sobald der Timer abläuft auf die Tabelle des jeweiligen Produktes zugreift und sich eine Zeile rauspickt und diese dann ausspuckt (z.B. Vorname vom Kunden). 

 

Den Timer und die Datenbank habe ich hinbekommen, aber irgendwie weiß ich nicht mehr weiter.

 

Viele Grüße,

Erdal

2 ANTWORTEN 2

soenmez
Shopify Partner
50 6 17

Hallo Erdal,

 

vielen Dank für deine Frage im Community Forum! Es ist interessant zu hören, dass du einen individuellen Timer für jedes deiner Produkte nutzen möchtest und bereits eine MySQL-Datenbank zur Speicherung der Kundeninformationen eingerichtet hast. Gerne versuchen wir, dir bei deinem Anliegen weiterzuhelfen.

 

Zunächst einmal ist es großartig, dass du bereits den Timer und die Datenbank implementiert hast. Um nun den nächsten Schritt zu realisieren, müssten wir eine Verbindung zwischen dem Timer und der Datenbank herstellen, sodass nach Ablauf des Timers automatisch auf die Tabelle des jeweiligen Produkts zugegriffen wird. Dies kann durch die Verwendung von JavaScript und der Erstellung eines serverseitigen Skripts erreicht werden, das die notwendigen Aktionen durchführt, sobald der Timer abgelaufen ist.

 

Folgende Frage hätte ich noch dazu:

- Sollen die Namen auf der Produktseite angezeigt werden (öffentlich) oder benötigst du diese für eine interne Auswertung?

 

Ein möglicher Lösungsansatz wäre die Verwendung einer serverseitigen Sprache wie PHP oder Node.js, um auf die Datenbank zuzugreifen und die gewünschten Informationen abzurufen. Du könntest beispielsweise eine Funktion erstellen, die nach Ablauf des Timers ausgeführt wird und die entsprechenden Daten aus der Datenbank liest.

 

Da die Umsetzung dieses Prozesses etwas komplexer sein kann und eventuell weitere Anpassungen an deinem Shopify-Shop erfordert, empfehlen wir dir, den Prozess zu visualisieren und dich an einen Partner zu wenden oder den App-Store zu durchforsten. (Ich konnte auf die schnelle leider keine passende App für diesen Use-Case finden)

 

Ansonsten unterstützen wir auch gerne Shopify Händler mit unserer Agentur Klondev Automation GmbH.

 

 

Viele Grüße & Erfolg!

Kenan Sönmez | CTO @ Klondev Automation GmbH
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- https://klon.dev/

Gabe
Shopify Staff
18309 2876 4237

Hey @arrrda8 

 

Mit @soenmez bist du in guten Händen! Mein 2-Cents dazu das euch in die richtige weisen könnte wäre ein JavaScript (jQuery) für den Timer auf der Client-Seite und einen PHP für den serverseitigen Zugriff auf die MySQL-Datenbank. Zuerst müsste man ggf. den Timer auf der Produktseite einrichten mit einem Code wie den folgenden in der Produktvorlage:

 

Spoiler
<!-- Produkt-Timer -->
<div class="product-timer" data-product-id="{{ product.id }}">
 <span class="days">0</span> Tage
 <span class="hours">0</span> Stunden
 <span class="minutes">0</span> Minuten
 <span class="seconds">0</span> Sekunden
</div>

<!-- jQuery und Timer-Skript einbinden -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
 $(document).ready(function() {
   // Timer-Initialisierung
   function initializeTimer(productTimer) {
     const productId = productTimer.data('product-id');
     const timerDuration = 6 * 24 * 60 * 60 * 1000; // 6 Tage in Millisekunden
     const endTime = new Date().getTime() + timerDuration;

     // Timer-Update-Funktion
     function updateTimer() {
       const now = new Date().getTime();
       const distance = endTime - now;

       const days = Math.floor(distance / (1000 * 60 * 60 * 24));
       const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
       const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
       const seconds = Math.floor((distance % (1000 * 60)) / 1000);

       productTimer.find('.days').text(days);
       productTimer.find('.hours').text(hours);
       productTimer.find('.minutes').text(minutes);
       productTimer.find('.seconds').text(seconds);

       if (distance < 0) {
         clearInterval(interval);
         fetchCustomerInfo(productId);
       }
     }

     const interval = setInterval(updateTimer, 1000);
     updateTimer();
   }

   // Funktion zum Abrufen von Kundendaten vom Server
   function fetchCustomerInfo(productId) {
     $.get('/path/to/your/php/script.php', { product_id: productId }, function(data) {
       console.log('Kundeninformationen:', data);
       // Hier können Sie den abgerufenen Kundennamen anzeigen oder andere Aktionen ausführen.
     });
   }

   $('.product-timer').each(function() {
     initializeTimer($(this));
   });
 });
</script>

Erstelle dann ein PHP-Skript, wie den folgenden, um auf die MySQL-Datenbank zuzugreifen und die gewünschten Kundeninformationen abzurufen:

 

Spoiler
<?php
// Datei: script.php

// Datenbankverbindungsinformationen
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "your_database";

// Verbindung zur Datenbank herstellen
$conn = new mysqli($servername, $username, $password, $dbname);

// Verbindung überprüfen
if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
}

// Produkt-ID aus den GET-Parametern abrufen
$productId = isset($_GET['product_id'])

Hoffe das hilft euch das zu lösen! 😉

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog