Product Repository API
Filter
A filter is a reusable expression over product attributes that selects a subset of products. Filters are used directly in product list endpoints via filterCriteria, saved as named resources via this API, and referenced by Customer Specific Assignment Rules.
Filter language reference
Field names
Fields follow the pattern schema.attribute[language]. Use eclear for standard product attributes and merchant for your own declared attributes.
| Field | Description |
|---|---|
eclear.productName[de] | Product name in German. Use [en] for English. |
eclear.productDescription[de] | Product description in German. Use [en] for English. |
eclear.productTags[de] | Product tags in German. Use [en] for English. |
eclear.customsCodes.customsTariffCode | Customs tariff code |
eclear.customsCodes.taricCode | TARIC code |
eclear.customsCodes.eztCode | EZT code |
eclear.customsCodes.taresCode | TARES code |
eclear.customsCodes.ukgtCode | UKGT code |
eclear.customsCodes.tolletatenCode | TOLLETATEN code |
eclear.productUids.gtin | GTIN unique product identifier |
eclear.productUids.asin | ASIN unique product identifier |
eclear.productUids.isbn | ISBN unique product identifier |
eclear.productUids.issn | ISSN unique product identifier |
eclear.productUids.ismn | ISMN unique product identifier |
eclear.manufacturerName | Manufacturer name |
merchant.fieldName | A merchant product attribute. Replace fieldName with the name you declared. |
merchant.fieldName[de] | A language-specific merchant product attribute in German. Use [en] for English. |
Logical operators
| Operator | Meaning | Example |
|---|---|---|
& | AND — both conditions must be true | eclear.productName[de] = "Boot" & eclear.customsCodes.taricCode = "6402991600" |
| | OR — at least one condition must be true | eclear.productName[de] = "Boot" | eclear.productName[en] = "Boot" |
! | NOT — negates a condition or expression | !(eclear.customsCodes.taricCode = "6402991600") |
Use parentheses to control precedence: (A & B) | C.
Comparison operators
| Operator | Meaning |
|---|---|
= | Equal to |
!= | Not equal to |
> | Greater than |
>= | Greater than or equal to |
< | Less than |
<= | Less than or equal to |
%in% | Value exists in a list — e.g. merchant.alcohol %in% (3, 4, 5) |
Arithmetic operators
Arithmetic expressions can be used to combine numeric fields before comparing them.
| Operator | Meaning | Example |
|---|---|---|
+ | Addition | merchant.weight + merchant.packaging_weight >= 1.5 |
- | Subtraction | merchant.weight - merchant.tare > 0 |
* | Multiplication | merchant.width * merchant.height > 100 |
/ | Division | merchant.net_weight / merchant.unit_count < 0.5 |
Functions
| Function | Returns |
|---|---|
is_null(field) | true if the field has no value |
substr(field, start, end) | Substring of the field value, from position start to end (0-indexed) |
contains(field, "string") | true if the field value contains the given string |
Example
The following filter selects products whose German product name contains "drink" and whose merchant attribute alcohol_content_percent is less than 0.05:
(contains(eclear.productName[de], "drink")) & merchant.alcohol_content_percent < 0.05