Products, categories, brands, search, facets and type-ahead. Products are addressed by slug or id, and only what is published in the current channel is visible. Includes the product feed for Google Merchant and the binary endpoints that serve images and documents.
15 calls·
GET
POST
·Base URL https://api.erp.fluit.cloud/ecom
Authentication, error codes, rate limits, idempotency and pagination apply to every call and are documented once under
Getting started.
GET
/assets/{tenantId}/{id}
Get product image
Serves a public product image. No authentication required. Tenant resolved from URL. Pass ?w= with one of the supported widths to get a resized WebP variant for responsive srcset.
Path parameters
Field
Type
tenantId
Required
string(uuid)
id
Required
string(uuid)
Query parameters
Field
Type
w
integer
Responses
200
Empty body.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
Serves a public product document (datasheet, manual, firmware). No authentication required. Tenant resolved from URL. PDFs are served inline, everything else as a download.
Path parameters
Field
Type
tenantId
Required
string(uuid)
id
Required
string(uuid)
Responses
200
Empty body.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
Base URL https://api.erp.fluit.cloud/ecom.
The response example is generated from the schema: the shape is right, the values are made up.
GET
/catalog/filters
Get catalog filters
Returns filterable attributes with available values and product counts. Counts are scoped to the channel, the optional category and the optional search term.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
Base URL https://api.erp.fluit.cloud/ecom.
The response example is generated from the schema: the shape is right, the values are made up.
GET
/catalog/list-widgets
Get product list page widgets
Returns active ProductList_Banner and ProductList_Sidebar widgets matching the current channel and optional category.
Supports ETag
Query parameters
Field
Type
categoryCode
string
Responses
200
ListWidgetResponse[]
Field
Type
cssClass
string
· nullable
htmlContent
string
· nullable
id
string(uuid)
name
string
· nullable
placement
string
· nullable
sortOrder
integer
style
string
· nullable
304
Empty body.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
Base URL https://api.erp.fluit.cloud/ecom.
The response example is generated from the schema: the shape is right, the values are made up.
GET
/catalog/product-feed
Product feed rows
Returns feed-ready product rows (identifiers, prices, availability, Google product category) for building Google Shopping and Meta catalog feeds. Page size is clamped to 1-1000.
Supports ETag
Query parameters
Field
Type
page
integer
pageSize
integer
Responses
200
PagedResult_ProductFeedRowResponse
Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage.
Paginated
Field
Type
Description
additionalImageUrls
string[]
· nullable
allowPreOrder
boolean
brand
string
· nullable
countryOfOrigin
string
· nullable
currency
string
· nullable
depthCm
decimal
· nullable
description
string
· nullable
googleProductCategory
string
· nullable
grade
string
· nullable
gtin
string
· nullable
heightCm
decimal
· nullable
id
string(uuid)
isOnSale
boolean
itemGroupId
string
· nullable
itemNumber
string
· nullable
mainImageUrl
string
· nullable
mpn
string
· nullable
price
decimal
· nullable
priceIncludingVat
decimal
· nullable
priceValidFrom
string(date)
· nullable
priceValidTo
string(date)
· nullable
productType
string
· nullable
regularPrice
decimal
· nullable
regularPriceIncludingVat
decimal
· nullable
salesStartDate
string(date)
· nullable
seoSlug
string
· nullable
stockStatus
enum
InStock
LowStock
OutOfStock
BackOrder
taxPercent
decimal
title
string
· nullable
weightKg
decimal
· nullable
widthCm
decimal
· nullable
304
Empty body.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
Base URL https://api.erp.fluit.cloud/ecom.
The response example is generated from the schema: the shape is right, the values are made up.
GET
/catalog/products
List products
Returns a paginated list of products with optional filtering by category and search term. Pass ids=guid,guid to fetch a hand-picked set; without an explicit sort they are returned in the order given. Only includes products active on the current channel.
Supports ETag
Query parameters
Field
Type
category
string
search
string
page
integer
pageSize
integer
sort
string
ids
string
Responses
200
PagedResult_ProductSummaryResponse
Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage.
Paginated
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
Base URL https://api.erp.fluit.cloud/ecom.
The response example is generated from the schema: the shape is right, the values are made up.
GET
/catalog/stock
Get stock status for items
Returns aggregated stock status for a batch of items. Returns nothing when the storefront hides stock, or when it hides stock from visitors who are not logged in and the request carries no customer session.
Show the full description
Maximum 100 item ids per request; ids that cannot be parsed are skipped. With GUIDs the URL runs out before that limit does — use POST /ecom/catalog/stock for longer lists.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
Base URL https://api.erp.fluit.cloud/ecom.
The response example is generated from the schema: the shape is right, the values are made up.
POST
/catalog/stock
Get stock status for items (ids in body)
Identical to GET /ecom/catalog/stock — same handler, same response body — but takes the item ids in a JSON body, for id lists long enough to strain the URL. Both variants enforce the same limit of 100 ids per request.
Show the full description
Returns nothing when the storefront hides stock, or when it hides stock from visitors who are not logged in and the request carries no customer session.
Body
required
Field
Type
Description
itemIds
string(uuid)[]
· nullable
Artikel-id:n att slå upp. Dubbletter tas bort; ordningen saknar betydelse.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
Base URL https://api.erp.fluit.cloud/ecom.
The response example is generated from the schema: the shape is right, the values are made up.
GET
/products/{itemId}/widgets
Get matching product widgets for a product
Returns active HTML widgets that match the given product based on category, supplier, item group, price range, etc.
Supports ETag
Path parameters
Field
Type
itemId
Required
string(uuid)
Responses
200
ProductWidgetResponse[]
Field
Type
cssClass
string
· nullable
htmlContent
string
· nullable
id
string(uuid)
name
string
· nullable
placement
string
· nullable
sortOrder
integer
style
string
· nullable
304
Empty body.
429
Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
Base URL https://api.erp.fluit.cloud/ecom.
The response example is generated from the schema: the shape is right, the values are made up.
Schemas
The objects this group's calls refer to. The field tables above go one level deep and link here rather than repeating the same schema on every endpoint.