field:operator:value. Several filters must all match.| Operator | Matches | Example |
|---|---|---|
eq | Exactly equal. Case-sensitive for text. | city:eq:Athens |
neq | Not equal. | status:neq:archived |
gt, gte | Greater than, greater than or equal. | price:gte:10 |
lt, lte | Less than, less than or equal. | published_on:lt:2026-01-01 |
contains | Text fields only: contains the value, ignoring case. The value cannot be empty. | headline:contains:run |
true / false for Yes / No, a number forcontains is a plain substring match, not a wildcard or pattern. There is no in or like.published_on:gte:2026-01-01 together with published_on:lt:2026-02-01 returns January 2026.type + id pair that ties a record to a platform entity. It extends products,| Link type | Picked up automatically by |
|---|---|
product | The Noir Custom Table component on product pages. |
brand | The component on brand pages. |
category | The component on category pages. |
collection | The component on collection pages. |
| Any other type | Stored and filterable, but only your own theme code uses it. |
linkType / linkId, and only links make the storefront component's Filter by page entitykind field. Separate tables| Field | Type | Required | Queryable | Why |
|---|---|---|---|---|
code | Text | ✅ | ✅ | The merchant's own shop code, used to look one shop up. |
name | Text | ✅ | Display only. Required so it can be the component's Title field. | |
city | Text | ✅ | ✅ | The main filter, and sortable because it is also required. |
address | Text | ✅ | Display only. | |
phone | Text | Display only. | ||
latitude | Number | Map pin. | ||
longitude | Number | Map pin. | ||
is_pickup_point | Yes / No | ✅ | Shows only the pickup points. | |
opening_hours | Text | Free text. |
shop and the shop's code as the id.