Vori Store products API
The Store products API from Vori — 7 operation(s) for store products.
The Store products API from Vori — 7 operation(s) for store products.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/vori-store-products-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Vori Store products API
description: Read and manage your store catalog, vendors, and inventory. Requests require a bearer token; see "Connect to the Vori REST API" for how to obtain one.
version: 1.0.0
contact: {}
servers:
- url: https://api.vori.com
description: production
security: []
tags:
- name: Store products
paths:
/v1/store-products:
post:
tags:
- Store products
summary: Create store product
operationId: createStoreProduct
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStoreProductWrapperDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/StoreProductDto'
'400':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/DuplicateBarcodeTypesForProductError'
- $ref: '#/components/schemas/DuplicateBarcodesError'
- $ref: '#/components/schemas/InvalidBarcodeError'
- $ref: '#/components/schemas/InvalidDepartmentError'
- $ref: '#/components/schemas/InvalidFoodModifiersError'
- $ref: '#/components/schemas/InvalidItemModifiersError'
- $ref: '#/components/schemas/InvalidTaxRatesError'
- $ref: '#/components/schemas/InvalidUnitOfMeasureError'
- $ref: '#/components/schemas/InvalidVariableWeightsError'
- $ref: '#/components/schemas/SoftDeletedBarcodeConflictError'
'403':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/InsufficientPermissionsError'
- $ref: '#/components/schemas/NoBannerAssociationError'
security:
- bearer: []
get:
tags:
- Store products
summary: List store products
description: Lists store products. Use the `state` parameter to filter, sort, and paginate results.
operationId: listStoreProducts
parameters:
- name: state
required: false
in: query
description: "Filter, sort, and paginate products with a URL-encoded JSON object:\n\n```json\n{\n \"startRow\": 0,\n \"endRow\": 50,\n \"filterModel\": { \"<field>\": <filter> },\n \"sortModel\": [{ \"colId\": \"<field>\", \"sort\": \"asc\" }]\n}\n```\n\nAny other top-level property is rejected.\n\n**Pagination** — `startRow` and `endRow` select which slice of results to return: `startRow` defaults to 0, and `endRow` defaults to `startRow` plus 10. You can request at most 1000 rows at a time (`endRow - startRow <= 1000`). The response's `rowCount` field always reflects the total number of matching rows across the entire result set, not just the rows returned in this request.\n\n**Sorting** — `sortModel` orders results by any filterable field except the related-entity fields, plus `id`. If you don't specify a `sortModel`, results are sorted by `created_at` descending (newest first).\n\n**Filtering** — `filterModel` is an object keyed by field name, where each value describes how to match that field:\n\n| Filter | Example | `type` values | Fields |\n| ------ | ------- | --------------- | ------ |\n| Set | `{\"filterType\": \"set\", \"values\": [\"1\", \"2\"]}` | <ul><li><code>in</code></li><li><code>notIn</code></li></ul> | <ul><li><code>barcode_type</code></li><li><code>retail_price_uom_id</code></li><li><code>store_department_id</code></li><li><code>store_id</code></li><li><code>unit_of_measure_mapping_id</code></li></ul> |\n| Boolean | `{\"filterType\": \"boolean\", \"values\": [true]}` | <ul><li><code>in</code></li><li><code>notIn</code></li></ul> | <ul><li><code>active</code></li><li><code>earns_loyalty_points</code></li><li><code>ebt_enabled</code></li><li><code>ecommerce_enabled</code></li><li><code>esl_enabled</code></li><li><code>is_blackhawk_gift_card</code></li><li><code>is_reloadable_blackhawk_gift_card</code></li><li><code>is_tippable</code></li><li><code>manual_item</code></li><li><code>print_physical_tag</code></li><li><code>prompt_for_quantity</code></li><li><code>snap_incentive_earnable</code></li><li><code>snap_incentive_redeemable</code></li><li><code>sync_to_deli_scales</code></li><li><code>variable_sale_price</code></li><li><code>wic_enabled</code></li></ul> |\n| Text | `{\"filterType\": \"text\", \"type\": \"contains\", \"filter\": \"cola\"}` | <ul><li><code>equals</code></li><li><code>notEqual</code></li><li><code>contains</code></li><li><code>notContains</code></li><li><code>startsWith</code></li><li><code>endsWith</code></li><li><code>blank</code></li><li><code>notBlank</code></li></ul> | <ul><li><code>barcode</code></li><li><code>brand_string</code></li><li><code>country_of_origin</code></li><li><code>description</code></li><li><code>name</code></li><li><code>raw_barcode</code></li><li><code>unit_volume_string</code></li><li><code>wic_override_plu</code></li></ul> |\n| Number | `{\"filterType\": \"number\", \"type\": \"greaterThan\", \"filter\": 10}` | <ul><li><code>equals</code></li><li><code>notEqual</code></li><li><code>lessThan</code></li><li><code>lessThanOrEqual</code></li><li><code>greaterThan</code></li><li><code>greaterThanOrEqual</code></li><li><code>inRange</code></li><li><code>blank</code></li><li><code>notBlank</code></li></ul> | <ul><li><code>base_retail_price</code></li><li><code>case_cost</code></li><li><code>case_size</code></li><li><code>current_margin</code></li><li><code>each_cost</code></li><li><code>lb_cost</code></li><li><code>min_customer_age</code></li><li><code>pack_size</code></li><li><code>store_product.unit_of_measure_amount</code></li><li><code>target_margin</code></li></ul> |\n| Date | `{\"filterType\": \"date\", \"type\": \"greaterThan\", \"dateFrom\": \"2026-01-01\", \"dateTo\": null}` | <ul><li><code>equals</code></li><li><code>notEqual</code></li><li><code>lessThan</code></li><li><code>greaterThan</code></li><li><code>inRange</code></li><li><code>blank</code></li><li><code>notBlank</code></li></ul> | <ul><li><code>base_retail_price_start_time</code></li><li><code>created_at</code></li><li><code>updated_at</code></li></ul> |\n| Related entities | `{\"filterType\": \"set\", \"values\": [\"1\"]}` | <ul><li><code>in</code></li></ul> | <ul><li><code>store_product_item_modifiers.item_modifier_id</code></li><li><code>store_product_tax_rates.tax_rate_id</code></li><li><code>store_product_variable_weights.variable_weight_id</code></li></ul> |\n| Product group rules | `{\"filterType\": \"set\", \"values\": [\"0195f9a8-7d64-7c3a-b7f5-3e0a5a2b9c11\"]}` | <ul><li><code>in</code></li></ul> | <ul><li><code>store_product_group_rule_ids</code></li></ul> |\n\n`type` is optional for set and boolean filters and defaults to `in`. Boolean fields also accept set filters, and date fields also accept `\"filterType\": \"datetime\"`. Set filters must be flat — compound `AND`/`OR` conditions are rejected."
schema:
$ref: '#/components/schemas/DataFrameListConfigDto'
- name: include
required: false
in: query
description: 'Comma-separated list of related data to include on each product:
- `active_vendor` — Populates `active_vendor` with the product''s primary vendor.
- `active_vendor_product` — Populates `active_vendor_product` with the primary vendor''s catalog entry, including costs.
- `inventory` — Populates `inventory` with on-hand quantity data.
- `store_vendor_products` — Populates `store_vendor_products` with every vendor''s catalog entry for the product.'
schema:
type: array
items:
$ref: '#/components/schemas/StoreProductLoaders'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/StoreProductsListDto'
'400':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/InvalidStoresError'
- $ref: '#/components/schemas/UnsupportedStateFieldError'
'403':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/InsufficientPermissionsError'
- $ref: '#/components/schemas/NoBannerAssociationError'
security:
- bearer: []
/v1/store-products/{id}/rules:
get:
tags:
- Store products
summary: Get processed store product rule
operationId: getProcessedStoreProductRule
parameters:
- name: id
required: true
in: path
schema:
type: string
pattern: ^[0-9]+$
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessedStoreProductRuleDto'
'403':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/InsufficientPermissionsError'
- $ref: '#/components/schemas/NoBannerAssociationError'
'404':
description: ''
security:
- bearer: []
/v1/store-products/{id}:
get:
tags:
- Store products
summary: Get store product
operationId: getStoreProduct
parameters:
- name: id
required: true
in: path
schema:
type: string
pattern: ^[0-9]+$
- name: include
required: false
in: query
description: 'Comma-separated list of related data to include on each product:
- `active_vendor` — Populates `active_vendor` with the product''s primary vendor.
- `active_vendor_product` — Populates `active_vendor_product` with the primary vendor''s catalog entry, including costs.
- `inventory` — Populates `inventory` with on-hand quantity data.
- `store_vendor_products` — Populates `store_vendor_products` with every vendor''s catalog entry for the product.'
schema:
type: array
items:
$ref: '#/components/schemas/StoreProductLoaders'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/StoreProductDto'
'403':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/InsufficientPermissionsError'
- $ref: '#/components/schemas/NoBannerAssociationError'
'404':
description: ''
security:
- bearer: []
patch:
tags:
- Store products
summary: Update store product
operationId: updateStoreProduct
parameters:
- name: id
required: true
in: path
schema:
type: string
pattern: ^[0-9]+$
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStoreProductWrapperDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/StoreProductDto'
'400':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/DuplicateBarcodeTypesForProductError'
- $ref: '#/components/schemas/DuplicateBarcodesError'
- $ref: '#/components/schemas/InvalidBarcodeError'
- $ref: '#/components/schemas/InvalidDepartmentError'
- $ref: '#/components/schemas/InvalidFoodModifiersError'
- $ref: '#/components/schemas/InvalidItemModifiersError'
- $ref: '#/components/schemas/InvalidTaxRatesError'
- $ref: '#/components/schemas/InvalidUnitOfMeasureError'
- $ref: '#/components/schemas/InvalidVariableWeightsError'
- $ref: '#/components/schemas/SoftDeletedBarcodeConflictError'
'403':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/InsufficientPermissionsError'
- $ref: '#/components/schemas/NoBannerAssociationError'
'404':
description: ''
security:
- bearer: []
/v1/store-products/rules:
get:
tags:
- Store products
summary: List processed store product rules
operationId: listProcessedStoreProductRules
parameters:
- name: state
required: false
in: query
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ListProcessedStoreProductRuleDto'
'403':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/InsufficientPermissionsError'
- $ref: '#/components/schemas/NoBannerAssociationError'
security:
- bearer: []
/v1/store-products/{id}/history:
get:
tags:
- Store products
summary: List store product history
description: Retrieve change history for a specific store product
operationId: listStoreProductHistory
parameters:
- name: id
required: true
in: path
schema:
type: string
pattern: ^[0-9]+$
- name: state
required: false
in: query
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ListStoreProductHistoryDto'
'403':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/InsufficientPermissionsError'
- $ref: '#/components/schemas/NoBannerAssociationError'
'404':
description: ''
security:
- bearer: []
/v1/store-products/{id}/restore:
post:
tags:
- Store products
summary: Restore store product
description: Restore a soft-deleted store product
operationId: restoreStoreProduct
parameters:
- name: id
required: true
in: path
schema:
type: string
pattern: ^[0-9]+$
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/StoreProductDto'
'403':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/InsufficientPermissionsError'
'404':
description: ''
security:
- bearer: []
/v1/store-products/search:
get:
tags:
- Store products
summary: Search store products
description: Endpoint for fast full-text product search. This returns only what is indexed in Algolia and does not hit the database.
operationId: searchStoreProducts
parameters:
- name: page
required: false
in: query
schema:
minimum: 1
default: 1
type: integer
- name: take
required: false
in: query
schema:
minimum: 1
maximum: 1000
default: 10
type: integer
- name: store_ids
required: true
in: query
schema:
type: array
items:
type: string
pattern: ^-?[0-9]+$
- name: query
required: true
in: query
schema:
type: string
- name: active
required: false
in: query
schema:
type: boolean
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/StoreProductTypeaheadSearchPageDto'
'403':
description: ''
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/InsufficientPermissionsError'
- $ref: '#/components/schemas/NoBannerAssociationError'
security:
- bearer: []
components:
schemas:
FieldRulesDto:
type: object
properties: {}
NestedStoreProductBarcode:
type: object
properties:
barcode:
type: string
barcode_type:
allOf:
- $ref: '#/components/schemas/BarcodeType'
required:
- barcode
- barcode_type
PriceTagModifier:
type: string
enum:
- BOTTLE_DEPOSIT
- CRV
InsufficientPermissionsErrorDetails:
type: object
properties:
resource:
allOf:
- $ref: '#/components/schemas/Resource'
action:
allOf:
- $ref: '#/components/schemas/Action'
required:
- resource
- action
Action:
type: string
enum:
- '*'
- cancel
- check_in
- create
- delete
- read
- record_events
- refund
- restart
- update
- void
NestedItemModifierDto:
type: object
properties:
id:
type: string
name:
type: string
type:
allOf:
- $ref: '#/components/schemas/ItemModifierType'
tax_behavior:
allOf:
- $ref: '#/components/schemas/ItemModifierTaxBehavior'
value:
type: string
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
required:
- id
- name
- type
- tax_behavior
- value
TaxRateType:
type: string
enum:
- amount
- percentage
NestedVariableWeightDto:
type: object
properties:
id:
type:
- string
- 'null'
name:
type: string
unit:
allOf:
- $ref: '#/components/schemas/VariableWeightUnit'
value:
type: string
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
required:
- id
- name
- unit
- value
NestedStoreProductInventoryDto:
type: object
properties:
current:
type: string
example: '199.99'
pattern: ^-?[0-9]+(\.[0-9]+)?$
min_par:
type:
- string
- 'null'
max_stock:
type:
- string
- 'null'
last_changed_at:
type:
- string
- 'null'
format: date-time
required:
- current
- min_par
- max_stock
- last_changed_at
StoreProductHistoryDto:
type: object
properties:
id:
type: string
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
updated_by_type:
allOf:
- $ref: '#/components/schemas/UpdatedByType'
updated_by_id:
type:
- string
- 'null'
updated_by_label:
type:
- string
- 'null'
changed_fields:
type: array
items:
type: string
before:
type:
- object
- 'null'
after:
type:
- object
- 'null'
required:
- id
- created_at
- updated_at
- updated_by_type
- updated_by_id
- updated_by_label
- changed_fields
- before
- after
InvalidTaxRatesError:
type: object
properties:
error_code:
type: string
enum:
- invalid_tax_rates
required:
- error_code
StoreProductPriceSourcePlatform:
type: string
enum:
- API
- CDC_PIPELINE
- CLI
- MOBILE
- WEB
NestedTaxRateDto:
type: object
properties:
id:
type: string
name:
type: string
type:
allOf:
- $ref: '#/components/schemas/TaxRateType'
value:
type: string
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
tax_type:
allOf:
- $ref: '#/components/schemas/TaxType'
required:
- id
- name
- type
- value
- tax_type
ItemModifierDto:
type: object
properties:
id:
type: string
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
name:
type: string
type:
allOf:
- $ref: '#/components/schemas/ItemModifierType'
taxBehavior:
allOf:
- $ref: '#/components/schemas/ItemModifierTaxBehavior'
value:
type: string
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
priceTagModifier:
allOf:
- $ref: '#/components/schemas/PriceTagModifier'
required:
- id
- created_at
- updated_at
- name
- type
- taxBehavior
- value
- priceTagModifier
NestedStoreProductParDto:
type: object
properties:
manual_reorder_point:
type:
- string
- 'null'
example: '199.99'
pattern: ^-?[0-9]+(\.[0-9]+)?$
manual_max_stock:
type:
- string
- 'null'
example: '199.99'
pattern: ^-?[0-9]+(\.[0-9]+)?$
required:
- manual_reorder_point
- manual_max_stock
InvalidUnitOfMeasureError:
type: object
properties:
error_code:
type: string
enum:
- invalid_unit_of_measure
required:
- error_code
PrimaryVendorConfiguration:
type: string
enum:
- LATEST_COST
- SELECTED_BY_USER
DuplicateBarcodeTypesForProductError:
type: object
properties:
error_code:
type: string
enum:
- duplicate_barcode_types_for_product
duplicates:
type: array
items:
$ref: '#/components/schemas/DuplicateBarcodeDetailDTO'
required:
- error_code
- duplicates
TargetValuesDto:
type: object
properties:
properties:
$ref: '#/components/schemas/TargetValuesPropertiesDto'
required:
- properties
StoreProductRuleType:
type: string
enum:
- group
- standard
CreateStoreProductWrapperDto:
type: object
properties:
data:
$ref: '#/components/schemas/CreateStoreProductDto'
required:
- data
NestedFoodModifierCategoryDto:
type: object
properties:
id:
type: string
name:
type: string
description: Category name
priority:
type: integer
description: Display priority (lower = shown first)
min_selection:
type: integer
description: Minimum number of options customer must select (0 = no minimum)
max_selection:
type:
- integer
- 'null'
description: Maximum number of options customer can select
modifiers:
description: Modifiers assigned to this product in this category
type: array
items:
$ref: '#/components/schemas/FoodModifierDto'
required:
- id
- name
- priority
- min_selection
- max_selection
- modifiers
CreateStoreProductDto:
type: object
properties:
name:
type: string
description:
type:
- string
- 'null'
barcode:
type: string
disable_barcode_sanitization:
type: boolean
description: When true, the barcode is stored verbatim and the product's `barcode_type` is set to `Unsanitized`. When false, an existing `Unsanitized` product is re-sanitized on save. When omitted, the existing `barcode_type` is preserved (partial updates are safe).
department_id:
type: string
pattern: ^-?[0-9]+$
active:
type: boolean
default: true
retail_price:
type:
- string
- 'null'
format: positive-monetary
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
minimum_retail_price:
type:
- string
- 'null'
format: positive-monetary
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
maximum_retail_price:
type:
- string
- 'null'
format: positive-monetary
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
retail_price_source:
allOf:
- $ref: '#/components/schemas/StoreProductPriceSource'
retail_price_source_platform:
allOf:
- $ref: '#/components/schemas/StoreProductPriceSourcePlatform'
retail_price_input_method:
allOf:
- $ref: '#/components/schemas/StoreProductPriceInputMethod'
retail_price_unit_of_measure_id:
type:
- string
- 'null'
pattern: ^-?[0-9]+$
brand:
type:
- string
- 'null'
target_margin:
type:
- number
- 'null'
case_size:
type:
- integer
- 'null'
pack_size:
type:
- integer
- 'null'
min_customer_age:
type: integer
loyalty_points_per_dollar:
type:
- string
- 'null'
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
unit_volume_quantity:
type:
- string
- 'null'
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
unit_volume_uom_name:
type:
- string
- 'null'
wic_enabled:
type: boolean
default: false
wic_override_plu:
type:
- string
- 'null'
snap_enabled:
type: boolean
default: false
ebt_enabled:
type: boolean
default: false
is_tippable:
type: boolean
default: false
is_blackhawk_gift_card:
type: boolean
default: false
is_reloadable_blackhawk_gift_card:
type: boolean
default: false
print_physical_tag:
type: boolean
default: false
ecommerce_enabled:
type: boolean
default: false
variable_sale_price:
type: boolean
default: false
sold_by_weight:
type: boolean
default: false
prompt_for_quantity:
type: boolean
default: false
manual_item:
type: boolean
default: false
tax_rate_ids:
type: array
items:
type: string
pattern: ^-?[0-9]+$
variable_weight_ids:
type: array
items:
type: string
pattern: ^-?[0-9]+$
item_modifier_ids:
type: array
items:
type: string
pattern: ^-?[0-9]+$
food_modifier_ids:
type: array
items:
type: string
format: uuid
country_of_origin:
type:
- string
- 'null'
maxLength: 3
minLength: 3
store_vendor_products:
type: array
items:
$ref: '#/components/schemas/NestedSetStoreVendorProductDto'
primary_vendor_configuration:
allOf:
- $ref: '#/components/schemas/PrimaryVendorConfiguration'
sync_to_deli_scales:
type: boolean
default: false
alcohol_by_volume:
type:
- string
- 'null'
pattern: ^[0-9]+(\.[0-9]+)?$
example: '199.99'
notes:
type:
- string
- 'null'
ingredients:
type:
- string
- 'null'
shelf_life_days:
type:
- integer
- 'null'
minimum: 1
maximum: 999
description: Shelf life in days sent to deli scales (Hobart, eplum, Ishida); the scale computes the sell-by date from it. 1-999, or null for no Vori-managed shelf life.
last_printed_at:
type:
- string
- 'null'
format: date-time
inventory_change:
$ref: '#/components/schemas/InitialStoreProductInventoryDto'
par:
$ref: '#/components/schemas/NestedStoreProductParDto'
snap_incentive_earnable:
type: boolean
default: false
snap_incentive_redeemable:
type: boolean
default: false
discount_restrictions:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/DiscountRestriction'
store_product_group_rule_ids:
type: array
items:
type: string
format: uuid
required:
- name
- barcode
- department_id
BarcodeType:
type: string
enum:
- EAN 13 Type 2 Without Check Digit
- EAN-13
- EAN-13 Without Check Digit
- EAN-14
- EAN-14 Without Check Digit
- EAN-8
- EAN-8 Without Check Digit
- PLU
- PRODUCE PLU
- Type 2 EAN
- Type 2 UPC
- Unsanitized
- UPC Shipping Container
- UPC-A
- UPC-A Type 2 Without Check Digit
- UPC-A Without Check Digit
- UPC-E
- UPC-E Without Check Digit
UnsupportedStateFieldError:
type: object
properties:
error_code:
type: string
enum:
- unsupported_state_field
required:
- error_code
InvalidBarcodeError:
type: object
properties:
error_code:
type: string
enum:
- invalid_barcode
required:
- error_code
StoreProductsListDto:
type: object
properties:
data:
description: Products in the requested row window.
type: array
items:
$ref: '#/components/schemas/StoreProductDto'
rowCount:
type: integer
description: Total number of products matching the filters, across all row windows.
required:
- data
- rowCount
InvalidDepartmentError:
type: object
properties:
error_code:
type: string
enum:
- invalid_department
required:
- error_code
ItemCodeIdentifierDto:
type: object
properties:
type:
allOf:
- $ref: '#/components/schemas/StoreVendorProductIdentifierType'
item_code:
type: string
required:
- type
- item_code
ListStoreProductHistoryDto:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/StoreProductHistoryDto'
rowCount:
type: integer
required:
- data
- rowCount
InitialStoreProductInventoryDto:
type: object
properties:
count:
type: string
example: '199.99'
pattern: ^-?[0-9]+(\.[0-9]+)?$
source_type:
allOf:
- $ref:
# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vori/refs/heads/main/openapi/vori-store-products-api-openapi.yml