Skip to main content
Skip table of contents

Berichtswesen

Der Shop sammelt während des Betriebs für jeden Kunden Daten in einer Session, die im Idealfall zu einer Bestellung wird. Die kaufmännisch relevanten Daten werden dazu in der Tabelle sessiondata gehalten, in der für jeden Besucher eine neue Zeile angelegt wird. Ist bereits ein Kunde bekannt, wird die Session mit dem Kunden verknüpft, in dem seine Kundennummer in die Spalte ownerID eingetragen wird. Wird innerhalb der Session bestellt, wird in die Zeile in die Spalte customernr ebenfalls die Kundennummer eingetragen - ab diesem Zeitpunkt gilt dieser Datensatz als fertige Bestellung (korrekterweise erst, wenn der Status confirmed erreicht). Im Feld sdate kann das Datum der Erstellung der Session bzw. der Fertigstellung der Bestellung abgefragt werden.

Typische Abfragen gegen diesen Datenbestand können über die Module im Abschnitt Statistik des Admin Backends durchgeführt werden.

Beispiel: die Anzahl der Besuchersessions pro Monat

CODE
select year(sdate), month(sdate), count(*) from sessiondata group by year(sdate), month(sdate) order by year(sdate) desc, month(sdate) desc

Beispiel: die Gesamtsumme der Umsätze pro Monat

CODE
select year(sdate), month(sdate), sum(totalamount) from sessiondata where customernr is not null group by year(sdate), month(sdate) order by year(sdate) desc, month(sdate) desc

Getrennt von den kaufmännischen Daten werden Nutzungsprotokolle geschrieben, mit denen die statische Nutzung des Shops ermittelt werden kann.

Tabelle

Inhalt

sessionlog

Protokolliert den Einstieg in den Shop

searchlog

Protokolliert Suchbegriffe

itemlog

Protokolliert den Aufruf von Produkt Detailseiten

categorylog

Protokolliert den Aufruf einer Kategorie

pagelog

Protokolliert den Aufruf einer CMS Contentseite.

modulelog

Protokolliert die Anzeige eines Moduls in einer CMS Contentseite. Damit die Protokollierung erfolgt, muss der Tag-Name des Moduls gesetzt sein.

actionlog

Protokolliert den Aufruf einer Action-Komponente (z.B. ein Button) in einem Modul in einer CMS Contentseite. Damit die Protokollierung erfolgt, muss der Tag-Name des Moduls gesetzt sein.

bloglog

Protokolliert die Anzeige eines Blog Beitrags.

Zum Auswerten der Besucher pro Tag kann deshalb die sessionlog Tabelle ausgewertet werden, z.B.

CODE
Select CONVERT(varchar, cast(sdate as date),23) as Tag, count(*) as Anzahl from sessionlog group by CONVERT(varchar, cast(sdate as date),23) 

Auswertungen im Admin Backend

Das Admin Backend bietet für die Auswertung die Gruppe Statistik an, in der neben den für jeweils eine Auswertung programmierten Modulen auch das allgemeine Modul Berichte verfügbar ist.

Die dort vorbereiteten Berichte können mit dem Klick auf die Anzeigen Schaltfläche in einer Tabelle abgerufen werden.

Durch einen Klick auf die Spaltenüberschriften kann die Sortierung der Daten geändert werden. Außerdem bietet das Suchen Feld die schnelle Möglichkeit an, einen Filter über die Daten zu legen.

Die Schaltfläche Filter ist dann zu verwenden, wenn in der Berichtsdefinition Parameter für die Auswahl definiert wurden. Diese Parameter werden dann als Textfelder angeboten. Sind keine Parameter definiert, dann bliebt die Filter-Seite hinter der Filter-Schaltfläche leer.

Mit der Schaltfläche Export können die dargestellten Daten in Excel exportiert werden, um sie dort weiterzuverarbeiten.

Ändern von Berichten

Der Überblicksbildschirm für Berichte bietet in jeder Zeile auch eine Schaltfläche zum Ändern des Berichts an.

Unbenannt.png

Im nachfolgenden Bildschirm kann der Name und der SQL Befehl editiert werden, der für den Bericht ausgeführt wird.

Die Schaltfläche Generieren bietet Benutzern, die keine SQL Kenntnisse haben, eine einfache Abfragemöglichkeit, bei denen der SQL Befehl automatisch erstellt wird. Die Möglichkeiten der automatischen Generierung sind auf einfaches Auflisten beschränkt.

Mit der Schaltfläche Neuer Parameter kann ein Filter-Kriterum erzeugt werden, dass in den SQL Befehl eingebaut wird.

In der obersten Zeile muss dem Parameter ein Name (ohne Sonderzeichen, keine Leerzeichen) gegeben werden. Dieser Name kann dann mit dem Prefix @ im SQL Befehl verwendet werden. Der Parameter DatumAb kann also im SQL Befehl als @DatumAb benutzt werden.

Die Bezeichnung ist ein erklärender Text, der dem späteren Anwender vor dem Eingabefeld angezeigt wird.

Der Typ legt fest, mit welchem Eingabeformat für diesen Parameter gerechnet wird.

Der Standardwert legt fest, welcher Wert beim Start des Berichts ohne Parametereingabe gearbeitet wird und was dem Benutzer zum Ändern angezeigt wird. Aktuell sind beim Standardwert nur Konstanten erlaubt.

Es können beliebig viele Parameter benutzt werden.

Importieren / Exportieren von Berichten

Jede Zeile in der Berichtsübersicht hat auch eine Exportieren Schaltfläche, mit der der Bericht als XML heruntergeladen werden kann. Dieses XML enthält die Berichtsdefinition und kann mit dieser Datei von einer Shop-Installation in eine andere übertragen werden.

Zum Reimportieren verwenden Sie die Schaltfläche Importieren überhalb der Berichtsübersicht.

Unbenannt.png

Der oben dargestellte Bericht ergibt folgende XML Datei:

CODE
<report><name>Top 10 Produkte</name><sql>select top 10 
    itemnr as ArtNr, 
    itemname1 as Bezeichnung,
    sum(amount) as Verkaufsmenge
from 
    basket 
    inner join sessiondata on basket.guid=sessiondata.guid

where
    sessiondata.customernr is not null 
    and sessiondata.sdate &gt; getDate()-@zeitraum

group by
    itemnr, itemname1

order by 
    sum(amount) desc</sql>
    <parameter name="zeitraum" prompt="Zeitraum" datatype="int" defaultvalue="30" />
</report>

Berichtsgallerie

Berichte werden von uns auch zentral in einem Verzeichnis bereitgestellt und können einfach von dort in jeden Shop übernommen werden. Übertragen werden dabei nur die Berichtsdefinitionen, nie Daten eines Shops.

Damit die Gallerie funktioniert, muss der Parameter reportrepository in der web.config auf einen Url gesetzt werden, der ein XML mit Berichtsdefinitionen liefert, z.B. https://reports.centauri.at

Aktuell wird das Web reports.centauri.at von Centauri gehostet. Dort muss eine Datei reports.xml mit den Berichtsdefinitionen liegen.

Ist der Konfigurationsparameter gesetzt, kann in der Berichtsübersicht auf Gallerie geklickt werden und man erhält eine Übersicht über vorbereiteten Berichten:

Jeder Bericht kann dann einfach mit einem Klick auf Importieren übernommen werden. Mehrfaches Klicken übernimmt den Bericht auch mehrfach, damit er später angepasst werden kann.

In der Datei reports.xml sind die URLs definiert, in denen die jeweiligen Reportdefinitionen gespeichert sind. Diese Dateien werden aktuell ebenfalls im Web reports.centauri.at bei Centauri gehostet. Jede Reportdefinition ist eine .xml Datei, wie sie auch beim Importieren/Exportieren von Berichten benutzt wird.

Aufgaben

Über das zusätzliche Modul Aufgaben im Admin Backend können Berichte zeitgesteuert als Datei ins Verzeichnissystem oder per EMail an Personen verschickt werden.

Mit der Schaltfläche Neuanlegen bzw. Ändern in jeder Zeile der Übersicht, können das Timing der Aufgabe bzw. die Aktion (EMail, Datei, etc.) umgeschalten werden.

Damit die Aufgabe tatsächlich durchgeführt wird, muss ein Workflow existieren, der die Aufgabe TaskScheduler (keine Parameter notwendig) aufruft. Dieser Workflow muss zeitgesteuert aufgerufen werden und legt durch seine Aufruffrequenz die minimale Intervalldauer fest, die bei den Aufgaben konfiguriert werden kann.

Alarme

Über das zusätzliche Modul Alarme können Grenzen definiert werden, die der Shop in Berichten überwachen soll.

Damit der Alarm tatsächlich kontrolliert wird, muss ein Workflow existieren, der die Aufgabe AlarmScheduler (keine Parameter notwendig) aufruft. Dieser Workflow muss zeitgesteuert aufgerufen werden und legt durch seine Aufruffrequenz die minimale Intervalldauer fest, in der die Alarme kontrolliert werden.

Für jeden Alarm wird ein in den Alarm-Parametern konfigurierter Bericht ausgeführt und die ebenfalls in den Alarm-Parametern definierte Spalte gegen einen Grenzwert verglichen. In der Konfiguration wird ebenfalls festgelegt, ob das unter oder überschreiten des Grenzwerts zu einem Alarm führen soll. Enthält der Bericht mehr als eine Ergebniszeile, werden alle Zeilen mit dem Grenzwert verglichen.

Wird der Alarm ausgelöst, kann wie bei einer Aufgabe festgelegt werden, welche Aktion durchgeführt wird (E-Mail versenden, Datei abspeichern, etc.).

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.