Skip to content

Get a single product based on filters (storefront callers see active, non-deleted products only)​

GET
/rest/v1/product/product/item

Storefront callers — guest (no token) and customer — match only against active, non-deleted products (active = 1 AND soft_delete = 0) by default: filter[active] and filter[softDelete] are server-forced to those values for them, so a supplied value is ignored rather than combined. This is the route a storefront uses to resolve a product page by slug, so it — not the id-addressed show() — sets what an inactive product looks like to a visitor. Backend callers are unaffected and may filter freely.

Parameters​

Query Parameters

filter[id]

Filter by product IDs

Type
string
filter[vatId]

Filter by VAT ID

Type
string
filter[vendorId]

Filter by vendor ID

Type
string
filter[badgeId]

Filter by badge ID

Type
string
filter[priceGte]

INCLUSIVE minimum price — matches shop_product.price >= value, so a product priced exactly at the value IS returned. Bounds the RAW price column, NOT a post-discount final price. Products whose price is NULL are EXCLUDED as soon as any of the four bounds is supplied. A non-numeric value is ignored for THIS key only.

Type
number
Format
"float"
filter[priceGt]

EXCLUSIVE minimum price — matches shop_product.price > value, so a product priced exactly at the value is NOT returned. filter[priceGt]=0 is the supported way to request only non-zero-priced products. Otherwise the same semantics as filter[priceGte].

Type
number
Format
"float"
filter[priceLte]

INCLUSIVE maximum price — matches shop_product.price <= value, so a product priced exactly at the value IS returned.

Type
number
Format
"float"
filter[priceLt]

EXCLUSIVE maximum price — matches shop_product.price < value, so a product priced exactly at the value is NOT returned.

Type
number
Format
"float"
filter[barcode]

Filter by barcode

Type
string
filter[tagId]

Filter by tag id, PLAIN OR: a product matches when it carries ANY of the comma-separated ids. Independent of admin configuration — the per-tag-category AND/OR flags are not read for this key. See the same parameter on GET /rest/product/product for the full contract.

Type
string
filter[tagFacetId]

Filter by tag id with LEGACY STOREFRONT FACET semantics: the ids are grouped by tag category and the AND/OR combination is resolved from per-tag-category ADMIN CONFIGURATION, so the same request can return a different row as that configuration changes. Prefer filter[tagId] unless you are reproducing the legacy storefront. See the same parameter on GET /rest/product/product for the full contract.

Type
string
filter[active]

Filter by active status

Type
boolean
filter[name.el]

Filter by product name (Greek)

Type
string
filter[name.en]

Filter by product name (English)

Type
string
filter[slug.el]

Filter by product slug (Greek)

Type
string
filter[slug.en]

Filter by product slug (English)

Type
string
with

With relations

Type
string

Responses​

Successful operation

application/json
JSON
"string"

Playground​

Variables
Key
Value

Samples​

Powered by VitePress OpenAPI