Stats API

Mit Hilfe der Stats API können Statistiken für die Daten in Customa erstellt werden. Die APIs entsprechen den Modulen Sales Stats und Product Stats aus dem Frontend.

Backend

Die Stats API verwendet ein anderes Backend, welches im Hintergrund durch einen automatischen Indexierungsprozess aktualisiert wird. Beim Push neuer Daten kann es, je nach Serverlast, wenige Sekunden bis ein paar Minuten dauern, bis die Daten aktuell sind.

Zeitraum

Für die Stats API muss immer ein Zeitraum für die Auswertung definiert werden. Der Zeitraum bezieht sich auf das Kauf- oder Belegdatum, dessen Feld in DateField angegeben werden muss.

Gruppierungen

Da die Gruppierungsmöglichkeiten abhängig von der Projektkonfiguration und damit dynamisch sind, gibt es für jeden Stats-Endpunkt einen eigenen Gruppierungs-Endpunkt. Dieser gibt die möglichen Gruppierungen als Liste zurück, die dann z.B. an ein Frontend übergeben werden kann.

Filter

Die Filter entsprechen weitestgehend den Filtern aus der Search API. Ein wichtiger Unterschied ist, dass die Stats API aufgrund eines anderen Backends es ermöglicht, auch über zusätzliche Felder zu filtern. So können beispielsweise Statistiken nur mit Kunden, die einen Geburtstag hinterlegt haben, erstellt werden:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
    "From": "2025-01-01T00:00:00.000Z",
    "To": "2025-12-31T23:59:59.999Z",
    "DateField": "PurchaseDate",
    "GroupBy": "week",
    "Filter": [
        {
            "Type": "IsNotEmpty",
            "Field": "Customer.Birthday",
            "Values": []
        }
    ]
}

Zusätzliche Felder

In den Stats APIs ist es möglich, zusätzlich zu den bereits definierten Feldern auf den Feldern einiger verbundener Enitities zu filtern. Folgende zusätzliche Felder sind definiert:

Receipt Stats

  • Customer.* für Felder vom Kunden, der mit dem Beleg zusammenhängt
  • Produktgruppierungen
    • ProductVariantOrStandalone
    • ProductParentOnly
    • ProductParentOrStandalone
  • CategoryPath für IDs von Produktkategorien im Kategoriebaum, übergeordnete Kategorien eingeschlossen

Receipt Item Stats

  • Receipt.* für Felder vom Beleg, zu dem die Belegposition gehört
  • Customer.* für Felder vom Kunden, der mit dem Beleg zusammenhängt
  • Product.* für Felder vom Produkt, das in der Belegposition verwendet wird
  • Produktgruppierungen
    • ProductVariantOrStandalone
    • ProductParentOnly
    • ProductParentOrStandalone
  • CategoryPath für IDs von Produktkategorien im Kategoriebaum, übergeordnete Kategorien eingeschlossen

Vergleich von Zeiträumen

Mit der Stats API ist der Vergleich von zwei oder mehr Zeiträumen nicht direkt wie im Frontend möglich, allerdings lassen sich aus mehreren Antworten der API die Vergleiche Clientseitig bauen. Das Feld GroupKey kann zur Gruppierung der Werte über unterschiedliche API-Aufrufe hinweg herangezogen werden.

Warnung

Benutzen Sie niemals das Feld GroupName, um die Daten abzugleichen. Dieses Feld ist nur für die Darstellung im Frontend gedacht und es ist nicht garantiert, dass es bei Änderungen in den Daten kompatibel bleibt. Der Wert des Feldes kann bei manchen Gruppierungen trotz unterschiedlichem GroupKey gleich sein.