iRetail PRO store node 1.0.0-m1: search
8 operations
← All documentation · Source: contracts openapi/store-v1.yaml at 8000474.
← iRetail PRO store node 1.0.0-m1
Operations
GET
/v1/search/items
Search the catalog by meaning, exact matches first (spec/SEARCH.md, Searching); the license module search.
operationId
searchItems · Permission item.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
q required
|
query | string |
The query. |
group_id
|
query | string (uuid) |
Only items in this group or below it. |
tag_id
|
query | string (uuid) |
Only items carrying this tag. |
store_id
|
query | string (uuid) |
The store whose price the items carry; a store node uses its own store when absent. |
include_inactive
|
query | boolean |
Inactive items too. |
limit
|
query | integer |
Items to answer, 1–50. |
Responses
-
200OKSearchResult -
400Error (spec/API.md).Error -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
503Error (spec/API.md).Error
GET
/v1/search/suggestions
Tags and groups the node suggests for items, newest first (spec/SEARCH.md, Suggestions).
operationId
listSuggestions · Permission item.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
status
|
query | "open" | "accepted" | "dismissed" |
Open by default. |
kind
|
query | "tag" | "group" |
|
item_id
|
query | string (uuid) |
One item's suggestions. |
limit
|
query | integer |
Page size, 1–200. |
after
|
query | string |
Cursor from the previous page. |
Responses
-
200OKSuggestionPage -
400Error (spec/API.md).Error -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error
POST
/v1/search/suggestions/{id}/accept
Give the item the tag or the group, as an edit of the item by the caller.
operationId
acceptSuggestion · Permission item.edit
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
id required
|
path | string (uuid) |
Id. |
Responses
-
200OKSuggestion -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
404Error (spec/API.md).Error -
409Error (spec/API.md).Error
POST
/v1/search/suggestions/{id}/dismiss
Do not suggest it again for the item.
operationId
dismissSuggestion · Permission item.edit
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
id required
|
path | string (uuid) |
Id. |
Responses
-
200OKSuggestion -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
404Error (spec/API.md).Error -
409Error (spec/API.md).Error
GET
/v1/search/settings
The embedding provider and the suggestions' settings (spec/SEARCH.md); never the key.
operationId
getSearchSettings · Permission search.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
-
200OKSearchSettings -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error
PUT
/v1/search/settings
Set search up; a change of the model starts a new index.
operationId
putSearchSettings · Permission search.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
If-Match
|
header | string |
The version the change is based on. |
Request body required
application/jsonSearchSettingsPut
Responses
-
200OKSearchSettings -
400Error (spec/API.md).Error -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
412Error (spec/API.md).Error
GET
/v1/search/index
The active index and the one building, with their progress.
operationId
getSearchIndex · Permission item.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
-
200OKSearchIndexStatus -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
503Error (spec/API.md).Error
POST
/v1/search/index/rebuild
Start a new index with the settings' model; the active one answers until it is ready.
operationId
rebuildSearchIndex · Permission search.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
-
202StartedSearchIndexStatus -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
503Error (spec/API.md).Error
Schemas
Error object
Every error response.
error required
|
string |
Stable code, see spec/API.md. |
message required
|
string |
English text for logs. |
details
|
object |
LocalizedText map of string
Text by language code; the organization's default language must be present.
Barcode object
A barcode of the item or of a pack of it.
barcode required
|
string |
|
pack_quantity_milli required
|
integer (int64) |
StorePrice object
price_minor required
|
integer (int64) |
|
currency required
|
string |
ModifierOption object
id required
|
string |
|
name required
|
LocalizedText |
|
price_delta_minor required
|
integer (int64) |
Added to the item's price; may be negative. |
ModifierGroup object
id required
|
string |
|
name required
|
LocalizedText |
|
min required
|
integer |
|
max required
|
integer |
|
options required
|
array of ModifierOption |
Item object
id required
|
string (uuid) |
|
sku required
|
string |
|
plu required
|
string | null |
|
name required
|
LocalizedText |
|
kind required
|
"piece" | "weighed" | "variable_weight" | "service" | "kit" | "gift_card" |
A kit takes its components' stock at the sale (spec/STOCK.md, Kits); a gift card line sells stored value (spec/LOYALTY.md, Gift cards). |
base_unit required
|
"each" | "kg" | "lb" | "l" | "us_gal" | "m" | "ft" |
|
tax_codes required
|
array of string |
|
group_id required
|
string (uuid) | null |
|
profile required
|
string | null |
|
attributes required
|
object |
Profile fields (JSON), validated by the profile's schema. |
stock_policy required
|
"fifo" | "fefo" |
|
discountable required
|
boolean |
|
active required
|
boolean |
|
barcodes required
|
array of Barcode |
|
modifier_groups required
|
array of ModifierGroup |
Options a line of the item takes (spec/FOOD_SERVICE.md). |
tags required
|
array of ItemTag |
The item's tags in the order of their ids (spec/SEARCH.md, Tags). |
price required
|
StorePrice | null |
|
variant_options required
|
array of VariantOption |
On a parent, its options in order (spec/VARIANTS.md); empty on every other item. |
parent_id required
|
string (uuid) | null |
On a variant, its parent (spec/VARIANTS.md); set when the item is made. |
variant_values required
|
map of string | null |
On a variant, a value code for each of the parent's option codes. |
serial_tracked required
|
boolean |
Each unit's serial is recorded at receiving, sale, return and write-off (spec/VARIANTS.md). |
photo_id
|
string (uuid) | null |
The item's photo (POST /v1/item-photos) for the storefront, or null; absent from a node before 1.1. |
kit_components required
|
array of Component |
A kit's components, 1 to 20 (spec/STOCK.md, Kits); empty on every other item. Each is taxed as the kit is (its tax_category and tax_codes) and carries no deposit, or the save is refused with kit_tax_mixed. |
version required
|
integer (int64) |
VariantValue object
code required
|
string |
|
name required
|
LocalizedText |
VariantOption object
code required
|
string |
|
name required
|
LocalizedText |
|
values required
|
array of VariantValue |
ItemTag object
tag_id required
|
string (uuid) |
|
source required
|
"manual" | "suggested" |
|
confidence required
|
integer | null |
The accepted suggestion's confidence; null when manual. |
SearchHit object
item required
|
Item |
|
match required
|
"exact" | "semantic" |
|
available_milli required
|
integer (int64) | null |
Available quantity on a store node (spec/STOCK.md); null at the hub. |
SearchIndex object
id required
|
string (uuid) |
|
model required
|
string |
bge-m3, or the endpoint's model with its host. |
dimensions required
|
integer |
|
indexed required
|
integer (int64) |
|
total required
|
integer (int64) |
|
started_at required
|
string (date-time) |
|
ready_at required
|
string (date-time) | null |
SearchIndexStatus object
active required
|
null | SearchIndex |
|
building required
|
null | SearchIndex |
SearchResult object
items required
|
array of SearchHit |
|
index required
|
SearchIndex |
SearchProvider object
kind required
|
"local" | "openai_compatible" |
|
base_url
|
string |
openai_compatible only, answered from IRETAIL_SEARCH_KEY_<NAME>_BASE_URL; a value written is ignored (spec/SEARCH.md, Settings). |
model
|
string |
openai_compatible only. |
dimensions
|
integer |
openai_compatible only. |
max_input_tokens
|
integer |
openai_compatible only. |
key
|
string |
openai_compatible only. The key's name, or none; the node reads IRETAIL_SEARCH_KEY_<NAME> (spec/SEARCH.md). Never the key. |
SearchSuggestionSettings object
enabled required
|
boolean |
|
neighbors required
|
integer |
|
min_score required
|
integer |
|
min_confidence required
|
integer |
SearchSettingsPut object
provider required
|
SearchProvider |
|
suggestions required
|
SearchSuggestionSettings |
SearchSettings object
provider required
|
SearchProvider |
|
suggestions required
|
SearchSuggestionSettings |
|
key_present required
|
boolean |
Whether the node holds the named key, or none is needed. |
version required
|
integer |
SuggestionResolver object
id required
|
string (uuid) |
|
name required
|
string |
Suggestion object
A tag or a group the node suggests for an item (spec/SEARCH.md, Suggestions).
id required
|
string (uuid) |
|
item_id required
|
string (uuid) |
|
item_name required
|
LocalizedText |
|
kind required
|
"tag" | "group" |
|
target_id required
|
string (uuid) |
|
target_name required
|
LocalizedText |
|
confidence required
|
integer |
|
status required
|
"open" | "accepted" | "dismissed" |
|
created_at required
|
string (date-time) |
|
resolved_at required
|
string (date-time) | null |
|
resolved_by required
|
null | SuggestionResolver |
SuggestionPage object
items required
|
array of Suggestion |
|
next required
|
string | null |
Component object
A kit's or a recipe's component: how much of the item (spec/STOCK.md).
item_id required
|
string (uuid) |
|
quantity_milli required
|
integer (int64) |