Easy Web Shelf

Dem einen oder anderen Nutzer dieses Blogs sind mit Sicherheit die Boxen mit den Produktlinks zu Amazon.de schon aufgefallen. Der eine oder andere hat auch schon danach gefragt, welches WordPress-Plugin ich dafür verwende. Die Antwort ist einfach: keins.

Diese Boxen werden von einer Software erzeugt, die ich Easy Web Shelf (kurz: EWS) nenne (für „einfach zu bedienendes Regal im Web“). Diese Software ist eine Eigenentwicklung und ich möchte sie hier kurz vorstellen.

Zweck und Features

Die Software dient dem Zweck, zahlreiche Affiliate-Links zu Amazon.de zu verwalten und dem Nutzer gleichzeitig Mehrwert und Komfort zu bieten, den einfache Amazon-Widgets, wie sie oft auf Blogs zu sehen sind, nicht haben. Zu diesem Zweck werden per Javascript verschiedene Boxen mit unterschiedlichen Inhalten, aber ähnlichen Features erzeugt. Diese sind:

Das Regal

Das Regal dient vor allem dem Zweck Bauvorschläge wie zum Beispiel hier und verschiedene andere Zusammenstellungen von Artikeln unterschiedlichen Typs zusammen zu fassen.

EasyWebShelf - ein "Regal"

EasyWebShelf – ein „Regal“

An dem obigen Beispiel sieht man auch direkt schon die wichtigsten Features des System:

  1. Die Titelleiste, die ermöglicht, die Tabelle zu sortieren.
  2. Der Name des Artikels, der gleichzeitig ein direkter Link zu Amazon.de ist.
  3. Ein „Regal“ kann auch mehrere Artikel des gleichen Typs beinhalten – die Anzahl wird in dieser Spalte dargestellt.
  4. Die aktuellen Preise und Verfügbarkeiten der Produkte.
  5. Der aktuelle Preis des kompletten Regals.
  6. Verfügbare Produkte können direkt hier in einen Warenkorb gelegt werden, der später zu Amazon hin übernommen wird.
  7. Auch das ganze Regal kann direkt in den Warenkorb gelegt werden.
  8. Bei Amazon schwanken die Preise recht häufig, daher öffnet dieser Button ein Verlaufsdiagramm, das die Preise des Artikels bis zu 14 Tage in der Vergangenheit anzeigt.
  9. Das gleiche für das komplette Regal: Die Preisstatistik über die vergangenen Tage.
EasyWebShelf: Preisverlaufsfenster

EasyWebShelf: Preisverlaufsfenster

Die Kategorie

Die Kategorie fasst, anders als das Regal, verschiedene Artikel des gleichen Typs (z.B. Festplatten in der NAS Festplatten Marktübersicht) zusammen.

EasyWebShelf: Eine "Kategorie"

EasyWebShelf: Eine „Kategorie“

Neben den Features, die beim Regal schon erklärt wurden, hat eine Kategorie die Möglichkeit, ein Vergleichsmerkmal darzustellen (siehe: (1)), wie hier der Preis pro Terabyte bei den Festplatten. Dieses Merkmal kann angezeigt werden, muss aber nicht. Manchmal macht es Sinn, manchmal nicht.

Weiterhin sieht man an den Punkten (2)-(4) schön die möglichen Verfügbarkeiten eines Artikels:

  • Grün heißt, dass der Artikel sofort direkt bei Amazon verfügbar ist.
  • Gelb heißt, dass der Artikel nicht sofort direkt bei Amazon verfügbar ist, aber über einen Dritthändler, gebraucht, bald wieder gekauft werden kann.
  • Rot heißt, dass der Artikel aktuell nicht verfügbar ist und auch nicht gekauft werden kann. Evtl. ist er aber demnächst wieder verfügbar. Sollte der Artikel bei Amazon aus dem Sortiment genommen werden, so wird er auch in keiner Box mehr angezeigt.

Mit der Verfügbarkeit der Artikel hängt auch der Warenkorb zusammen: Nur Artikel, die direkt bei Amazon verfügbar sind, können in den Warenkorb gelegt werden. Bei den anderen Artikeln geht das nur über den Link des Artikels direkt bei Amazon.

EasyWebShelf: Verfügbarkeit und Warenkorb

EasyWebShelf: Verfügbarkeit und Warenkorb

Die beliebtesten Produkte

Die Box mit den beliebtesten Produkten zeigt an, auf welche Produkte die meisten Nutzer geklickt haben. Das kann eine Entscheidungshilfe sein, wenn man zwischen verschiedenen ähnlichen Produkten schwankt. Diese Rangliste wird täglich aktualisiert.

EasyWebShelf: Beliebteste Produkte

EasyWebShelf: Beliebteste Produkte

Die aktuellen Angebote

Amazon senkt und erhöht laufend die Preise. Um die aktuell reduzierten Produkte anzuzeigen, dient diese Box. Die Daten hier werden stündlich aktualisiert. Technisch vergleicht das System an dieser Stelle den aktuellen Preis in dieser Stunde mit dem Durchschnittspreis, der über den vorherigen Tag ermittelt wurde. Weicht dieser Preis um mindestens einen Prozentpunkt nach unten ab, dann ist es ein reduziertes Produkt und wird an dieser Stelle angezeigt (absteigend sortiert nach relativer Reduzierung).

EasyWebShelf: Reduzierte Produkte

EasyWebShelf: Reduzierte Produkte

Architektur und Technologien

Die Software verwende ich zwar momentan innerhalb von WordPress, aber sie ist von diesem nicht abhängig. Die oben gezeigten Boxen werden durch ein Javascript-Programm erzeugt, welches die Informationen in beliebige Websites einsetzen kann.

Software Architektur

Die Software besteht aus verschiedenen, lose gekoppelten Komponenten, die über APIs miteinander agieren:

  • MariaDB/MySQL-Datenbank: Speichert alle Daten des Systems
  • Backend-Cronjobs: Holen regelmäßig neue Daten von Amazon ab und speichern sie in der Datenbank. Aktuell laufen diese Jobs stündlich und zusätzlich einmal täglich um die Statistiken aufzuräumen und zusammenzufassen. Diese Jobs sind idempotent geschrieben, das heißt, dass sie beliebig oft oder selten laufen können ohne dass in der Datenbank etwas durcheinander kommt. Die Jobs sind in PHP geschrieben, damit sie in beliebigen Hosting-Umgebungen lauffähig sind.
  • REST-API: Die Daten aus der Datenbank werden den restlichen Komponenten über eine voll CRUD-fähige REST-API zur Verfügung gestellt. Diese API ist ebenfalls in PHP geschrieben.
  • Frontend: Die Komponente, die die sichtbaren Boxen für den Nutzer erzeugt ist in Javascript geschrieben und nutzt das jQuery-Framework. Seine Daten erhält das Frontend von der REST-API.
  • Admin-Frontend: Diese Komponente ermöglicht die Verwaltung des Systems für den Endnutzer. Sie erhält ihre Daten ebenfalls von der REST-API. Allerdings existiert diese Komponente noch nicht. Mangels Zeit habe ich sie zwar geplant, aber noch nicht entwickelt. So muss die Administration momentan noch manuell in der Datenbank erfolgen, was für einen Entwickler zwar kein Problem ist, für einen Endnutzer allerdings schon.

Das folgende Diagramm zeigt die Architektur des Systems aus der Vogelperspektive:

EasyWebShelf: Architektur

EasyWebShelf: Architektur

Datenschutz und Sicherheit

Ich bin selbst sehr sensibel was Datenschutz und Sicherheit angeht, daher ist die Software auch äußerst sparsam, was Datenspeicherung angeht:

  • Sie speichert keine Daten, die eine Identifizierung eines Nutzers zulassen, wie IP-Adresse, Browsertyp oder ähnliches. Sie zählt lediglich, wieviel auf einen Link geklickt wurde – es gibt keine Möglichkeit herauszufinden wer auf diesen Link geklickt hat.
  • Sie nutzt keine Cookies. Die Daten eines Warenkorbs, falls einer angelegt wird, werden über den Sessionstore des Browsers abgelegt und sind damit beim nächsten Schließen und Öffnen des Browsers auch wieder verschwunden. Ein Nutzer lässt sich mit dieser Software also nicht nachverfolgen.
  • Alle Bewegungsdaten, die die Software speichert, wie z.B. Klicks auf Artikel oder Preisverläufe von Artikeln, werden regelmäßig und automatisch wieder gelöscht. Ich habe kein Interesse daran, eine BigData-Datenbank anzulegen, sondern muss mit meinem Speicher haushalten.

Fazit

Bisher war es eine Menge Arbeit diese Software zu entwickeln und meine Arbeitsstunden hierfür werde ich mit diesem Blog vermutlich nicht wieder reinholen. Aber darum ging es mir auch gar nicht. Ich habe die Software entwickelt, weil es mir Spaß macht – nur das ist der Grund: Ein wenig lernen und Spaß haben.

Ich freue mich natürlich über Feedback zu der Software. Welche Features fänden Sie nützlich? Was würde Ihnen dabei helfen, die richtige Auswahl zu treffen bei dem Produkt das sie kaufen möchten? Feedback gerne in die Kommentare unter diesem Artikel, per Kontaktformular oder über meine E-Mailadresse, die im Impressum steht.

Vielen Dank!

Gefällt Ihnen dieser Artikel? Sagen Sie es weiter!

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.