Filter

Einige Endpunkte in der API untersützen die Angabe von Filtern. Die Werte der Felder werden in der API immer als String übergeben. Customa kümmert sich intern um die Konvertierung in den richtigen Datentyp, falls erforderlich.

Kombination von Filtern

Durch die Kombination unterschiedlicher Filter lassen sich über die API Teile der Daten in Customa umfassend auswerten. Mehrere Filter werden mit einem booleschen UND verknüpft, so dass alle Filterbedingungen erfüllt sein müssen. Manche Filter erlauben die Angabe von mehreren Werten, nach denen gefiltert werden soll. Diese Werte werden mit einem booleschen ODER verknüpft, das heißt, es muss mindestens einer der Werte übereinstimmen.

Zur Veranschaulichung der Filter folgt ein Beispiel:

​
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
    // ...
    "Filter": [
        {
            "Type": "MatchPrefix",
            "Field": "FirstName",
            "Values": [
                "A"
            ]
        },
        {
            "Type": "MatchSuffix",
            "Field": "EMail",
            "Values": [
                "@example.com",
                "@example.org"
            ]
        },
        {
            "Type": "GreaterThanOrEqual",
            "Field": "Birthday",
            "Values": [
                "1987-11-19T00:00:00.000Z"
            ]
        }
    ]
    // ...
}

Alle mit diesen über die Search API zurückgegebenen Kunden erfüllen dabei die folgenden drei Bedingungen:

  • Der Vorname beginnt mit A
  • Die E-Mailadresse endet entweder auf @example.com oder auf @example.org
  • Das Geburtsdatum ist frühestens der 19. November 1987

Filtertypen

Match-Filter

Match-Filter
1
2
3
4
5
6
7
{
    "Type": "Match",
    "Field": "Number",
    "Values": [
        "RE2025A98235D"
    ]
}
1
2
3
4
5
6
7
{
    "Type": "MatchPrefix",
    "Field": "PostalCode",
    "Values": [
        "22"
    ]
}
1
2
3
4
5
6
7
{
    "Type": "MatchSuffix",
    "Field": "EMail",
    "Values": [
        "@example.com"
    ]
}
1
2
3
4
5
6
7
{
    "Type": "MatchInfix",
    "Field": "Name",
    "Values": [
        "Toaster"
    ]
}

Match

Das Verhalten des Match-Filters hängt von der Art des Feldes ab, auf dem gefiltert werden soll. Bei Boolean- oder Zahlenfeldern wird exakt geprüft, ob der Wert übereinstimmt. Bei String-Feldern wird der Wert ohne Beachtung von Groß- und Kleinschreibung geprüft.

MatchPrefix, MatchSuffix und MatchInfix

Die MatchPrefix, MatchSuffix und MatchInfix-Varianten des Match-Filters arbeiten nur mit Strings und prüfen wie die Hauptvariante den Wert ohne Beachtung von Groß- und Kleinschreibung. In der Stats API stehen diese Filter nicht zur Verfügung, da das Backend diese nicht unterstützt.

Wertvergleich

  • LessThan
  • LessThanOrEqual
  • GreaterThan
  • GreaterThanOrEqual
Wertvergleich
1
2
3
4
5
6
7
{
    "Type": "LessThan",
    "Field": "Quantity",
    "Values": [
        "3"
    ]
}
1
2
3
4
5
6
7
{
    "Type": "LessThanOrEqual",
    "Field": "SalesPrice",
    "Values": [
        "44.95"
    ]
}
1
2
3
4
5
6
7
{
    "Type": "GraterThan",
    "Field": "ModificationDate",
    "Values": [
        "2025-11-01T17:45:00.000Z"
    ]
}
1
2
3
4
5
6
7
{
    "Type": "GreaterThanOrEqual",
    "Field": "Birthday",
    "Values": [
        "1987-11-19T00:00:00.000Z"
    ]
}

Die Wertvergleichsfilter funktionieren bei Zahlen-, Preis- und Datumsfeldern. Beim Vergleichen von Preisfeldern wird die Projektwährung verwendet.

Filter für leere Felder

  • IsEmpty
  • IsNotEmpty
Filter für leere Felder
1
2
3
4
5
{
    "Type": "IsEmpty",
    "Field": "Birthday",
    "Values": []
}
1
2
3
4
5
{
    "Type": "IsNotEmpty",
    "Field": "GoogleClickID",
    "Values": []
}

Die Filter für leere Werte prüfen, ob ein Feld, das NULL sein kann, einen Wert hat. Wenn das Feld ein String ist, prüft der Filter, ob der Inhalt ein leerer String ist. Die übergebenen Parameter werden nicht weiter ausgewertet.

Felder

Dieser Abschnitt bietet eine Übersicht über die Felder der einzelnen API-Entitäten, auf denen gefiltert werden kann. Grundsätzlich entsprechen diese vom Datentyp und ihrer Definition den Feldern in der API-Dokumentation, wenn nicht anders beschrieben. Die Stats API benutzt ein anderes Backend als die Search API, welches nicht das Filtern auf bestimmten Feldern erlaubt, bietet dafür jedoch die Möglichkeit, auf abhängigen Entitäten zu filtern.

Legende

  • ✅ Das Feld wird von der API unterstützt
  • ⚠️ Das Feld wird in Zukunft nicht mehr unterstützt
  • 🚫 Das Feld wird nicht unterstützt

Kunden

Feld Beschreibung Search API Stats API
CreationDate Erstellungszeitpunkt in der Customa-Datenbank ✅ ✅
ModificationDate Zeitpunkt der letzten Änderung in der Customa-Datenbank ✅ ✅
Number Kundennummer ✅ ✅
Salutation Anrede des Kunden ✅ ✅
Title (akademischer) Titel des Kunden ✅ 🚫
FirstName Vorname des Kunden ✅ ✅
LastName Nachname des Kunden ✅ ✅
Company Firmenname des Kunden ✅ 🚫
Address Anschrift des Kunden (Straße, Hausnummer) ✅ 🚫
PostalCode Postleitzahl des Kunden ✅ ✅
Suburb Stadtteil/Bezirk des Kunden ✅ ✅
City Stadt des Kunden ✅ ✅
Country Land des Kunden (ISO 3166 ALPHA-2) ✅ ✅
EMail E-Mailadresse des Kunden ✅ ✅
Phone Telefonnummer des Kunden ✅ ✅
Referrer Referrer des Kunden ✅ ✅
ReferrerChannel Referrerkanal des Kunden ✅ ✅
RegisterDate Registrierungsdatum des Kunden ✅ ✅
PurchaseDate Letztes Einkaufsdatum des Kunden ✅ ✅
Birthday Geburtstag des Kunden ✅ ✅
Marketplace Marktplatz des Kunden ✅ ✅
ExternalCustomerID Kunden-ID des Quellsystems vom Datenimport ✅ 🚫
ExternalOrderAccountID Mandanten-ID des Quellsystems vom Datenimport ✅ ✅
ContactBan Hat der Kunde eine Kontaktsperre? ✅ ✅
Newsletter Ist der Kunde ein Newsletterempfänger? ✅ ✅
Segment Kundensegment ✅ ✅

Produkte

Feld Beschreibung Search API Stats API
CreationDate Erstellungszeitpunkt in der Customa-Datenbank ✅ ✅
ModificationDate Zeitpunkt der letzten Änderung in der Customa-Datenbank ✅ ✅
Number Artikelnummer ✅ ✅
EAN EAN des Produkts ✅ ✅
Name Name des Produkts ✅ ✅
ShortDescription Kurzbeschreibung des Produkts (z.B. in Produktlisten) ✅ 🚫
ShortDescription Lange Beschreibung des Produkts (z.B. auf der Produktdetailseite) ✅ 🚫
ImageSource URL des Produktbildes ✅ ✅
Status Ist das Produkt aktiv? ✅ ✅
TaxClass Steuerklasse des Produkts ✅ 🚫
Stock Bestand ✅ 🚫
PurchasePrice Einkaufspreis des Produkts (in Projektwährung) ✅ ✅
SalesPrice Verkaufspreis des Produkts (in Projektwährung) ✅ ✅
RecommendedRetailprice UVP des Produkts (in Projektwährung) ✅ ✅

Belege

Info

In der Stats API sind zusätzliche Felder definiert.

Feld Beschreibung Search API Stats API
CreationDate Erstellungszeitpunkt in der Customa-Datenbank ✅ ✅
ModificationDate Zeitpunkt der letzten Änderung in der Customa-Datenbank ✅ ✅
Type Art des Belegs (z.B. RE=Rechnung, AU=Auftrag, etc.) ✅ ✅
Number Belegnummer ✅ ✅
ExternalOrderType ✅ ✅
ExternalOrderID Beleg-ID im Quellsystem ✅ ✅
ExternalOrderExternalID ✅ ✅
ExternalOrderAccountID Mandanten-ID des Quellsystems vom Datenimport ✅ ✅
ExternalOrderSubAccountID Shop-ID des Quellsystems vom Datenimport ✅ ✅
Marketplace Marktplatz des Belegs ✅ ✅
PurchaseDate Kaufdatum des Belegs ✅ ✅
DeliveryDate Belegdatum Veraltet, bitte ReceiptDate benutzen! ⚠️ ⚠️
ReceiptDate Belegdatum ✅ ✅
Referrer Referrer des Belegs ✅ ✅
ReferrerChannel Referrerkanal des Belegs ✅ ✅
PaymentMethod Zahlart des Belegs ✅ ✅
RevenueNet Nettoumsatz des Belegs ✅ ✅
RevenueGross Bruttoumsatz des Belegs ✅ ✅
ReceiptStatus Belegstatus ✅ ✅
PaymentStatus Zahlstatus ✅ ✅
DeliveryStatus Lieferstatus ✅ ✅
GoogleClickID ✅ 🚫

Belegpositionen

Info

In der Stats API sind zusätzliche Felder definiert.

Feld Beschreibung Search API Stats API
ProductNumber Artikelnummer der Belegposition. Kann sich von der Artikelnummer des Produkts unterscheiden! 🚫 ✅
Quantity Stückzahl der Belegposition 🚫 ✅
SellingPrice Verkaufspreis von 1 Stück des Artikels der Belegposition zum Zeitpunkt des Belegs. 🚫 ✅
PurchasePrice Einkaufspreis von 1 Stück des Artikels der Belegposition zum Zeitpunkt des Belegs. 🚫 ✅