Hoppa till innehållet

Katalog

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.

18 anrop GET POST Bas-URL https://api.erp.fluit.cloud/ecom

Autentisering, felkoder, rate limits, idempotens och paginering gäller alla anrop och står samlade under Kom igång.

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.

Sökvägsparametrar

Fält Typ
tenantId Krävs string(uuid)
id Krävs string(uuid)

Frågeparametrar

Fält Typ
w integer

Svar

200 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Standardfel: 400 404 Felhantering

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/assets/{tenantId}/{id}" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"

Bas-URL https://api.erp.fluit.cloud/ecom.

GET /assets/{tenantId}/{id}/download

Get product document

Serves a public product document (datasheet, manual, firmware). No authentication required. Tenant resolved from URL. PDFs are served inline, everything else as a download.

Sökvägsparametrar

Fält Typ
tenantId Krävs string(uuid)
id Krävs string(uuid)

Svar

200 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Standardfel: 404 Felhantering

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/assets/{tenantId}/{id}/download" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"

Bas-URL https://api.erp.fluit.cloud/ecom.

GET /catalog/brands

Get brands (suppliers) by id

Returns display data for the suppliers referenced by a Brands section.

Stödjer ETag

Frågeparametrar

Fält Typ
ids string

Svar

200 BrandsResponse
Fält Typ
brands Brand[] · nullable
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/brands" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"
Svar 200
{
  "brands": [
    {
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "name": "Fluit",
      "website": "string"
    }
  ]
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

GET /catalog/categories

Get category tree

Returns the hierarchical category tree for navigation.

Stödjer ETag

Frågeparametrar

Fält Typ
parentId string
ids string

Headers

Fält Typ Beskrivning
X-Language string Language for translated content, as an ISO 639-1 code ("sv", "en"). Omitting it answers in the channel's default language, and so does a language the channel does not publish — this never fails the request. The channel decides which languages exist; read them from the session response.

Svar

200 CategoriesResponse
Fält Typ
categories Category[] · nullable
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/categories" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web" \
  -H "X-Language: …"
Svar 200
{
  "categories": [
    {
      "bannerHeadline": "string",
      "bannerImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "bannerSubtitle": "string",
      "children": [
        null
      ],
      "code": "string",
      "description": "string",
      "iconName": "Hand tools",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "imageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "metaDescription": "string",
      "metaTitle": "string",
      "name": "Hand tools",
      "parentId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "productCount": 42,
      "slug": "string",
      "sortOrder": 42
    }
  ]
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

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.

Stödjer ETag

Frågeparametrar

Fält Typ
category string
search string

Headers

Fält Typ Beskrivning
X-Language string Language for translated content, as an ISO 639-1 code ("sv", "en"). Omitting it answers in the channel's default language, and so does a language the channel does not publish — this never fails the request. The channel decides which languages exist; read them from the session response.

Svar

200 CatalogFiltersResponse
Fält Typ
filters FilterGroup[] · nullable
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/filters" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web" \
  -H "X-Language: …"
Svar 200
{
  "filters": [
    {
      "code": "string",
      "dataType": "string",
      "name": "Retail",
      "sortOrder": 42,
      "unit": "st",
      "values": [
        {
          "count": 42,
          "label": "string",
          "value": "string"
        }
      ]
    }
  ]
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

GET /catalog/list-widgets

Get product list page widgets

Returns active ProductList_Banner and ProductList_Sidebar widgets matching the current channel and optional category.

Stödjer ETag

Frågeparametrar

Fält Typ
categoryCode string

Svar

200 ListWidgetResponse[]
Fält Typ
cssClass string · nullable
htmlContent string · nullable
id string(uuid)
name string · nullable
placement string · nullable
sortOrder integer
style string · nullable
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Standardfel: 404 Felhantering

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/list-widgets" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"
Svar 200
[
  {
    "cssClass": "string",
    "htmlContent": "string",
    "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
    "name": "Acme AB",
    "placement": "string",
    "sortOrder": 42,
    "style": "string"
  }
]

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

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.

Stödjer ETag

Frågeparametrar

Fält Typ
page integer
pageSize integer

Svar

200 PagedResult_ProductFeedRowResponse

Paginerat svar: raderna nedan ligger i items[], omgivna av totalCount, page, pageSize, totalPages, hasPreviousPage och hasNextPage. Paginerad

Fält Typ Beskrivning
additionalImageUrls string[] · nullable
allowPreOrder boolean
availability enum InStock OutOfStock BackOrder PreOrder
availabilityDate string(date) · nullable
brand string · nullable
condition enum New Refurbished Used
countryOfOrigin string · nullable
currency string · nullable
depthCm decimal · nullable
description string · nullable
feedBrand string · nullable
feedDescription string · nullable
feedId string · nullable
feedMpn string · nullable
feedPrice decimal · nullable
feedProductType string · nullable
feedSalePrice decimal · nullable
feedTitle string · nullable
googleProductCategory string · nullable
grade string · nullable
gtin string · nullable
heightCm decimal · nullable
id string(uuid)
identifierExists boolean
ineligibleReason enum DefectiveGrade MissingTitle MissingSlug MissingImage MissingPrice UnknownGrossPrice
isEligible boolean
isOnSale boolean
itemGroupId string · nullable
itemNumber string · nullable
mainImageUrl string · nullable
mpn string · nullable
normalizedGtin string · nullable
price decimal · nullable
priceIncludingVat decimal · nullable
priceValidFrom string(date) · nullable
priceValidTo string(date) · nullable
productPath string · nullable
productType string · nullable
regularPrice decimal · nullable
regularPriceIncludingVat decimal · nullable
salePriceEffectiveFrom string(date) · nullable
salePriceEffectiveTo string(date) · 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 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/product-feed" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"
Svar 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "additionalImageUrls": [
        "https://cdn.fluit.cloud/assets/widget-a-front.jpg"
      ],
      "allowPreOrder": true,
      "availability": "InStock",
      "availabilityDate": "2026-06-11",
      "brand": "string",
      "condition": "New",
      "countryOfOrigin": "string",
      "currency": "string",
      "depthCm": "299.00",
      "description": "string",
      "feedBrand": "string",
      "feedDescription": "string",
      "feedId": "string",
      "feedMpn": "string",
      "feedPrice": "299.00",
      "feedProductType": "string",
      "feedSalePrice": "299.00",
      "feedTitle": "string",
      "googleProductCategory": "string",
      "grade": "string",
      "gtin": "string",
      "heightCm": "299.00",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "identifierExists": true,
      "ineligibleReason": "DefectiveGrade",
      "isEligible": true,
      "isOnSale": true,
      "itemGroupId": "string",
      "itemNumber": "WIDGET-A",
      "mainImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "mpn": "string",
      "normalizedGtin": "string",
      "price": "299.00",
      "priceIncludingVat": "299.00",
      "priceValidFrom": "2026-06-11",
      "priceValidTo": "2026-06-11",
      "productPath": "string",
      "productType": "string",
      "regularPrice": "299.00",
      "regularPriceIncludingVat": "299.00",
      "salePriceEffectiveFrom": "2026-06-11",
      "salePriceEffectiveTo": "2026-06-11",
      "salesStartDate": "2026-06-11",
      "seoSlug": "string",
      "stockStatus": "InStock",
      "taxPercent": "12.50",
      "title": "string",
      "weightKg": "1.250",
      "widthCm": "299.00"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

GET /catalog/products

List products

Returns a paginated list of products with optional filtering by category, product tag (tag=slug) and search term. Pass ids=guid,guid to fetch a hand-picked set; without an explicit sort they are returned in the order given.

Visa hela beskrivningen

With a category, sort=category returns the products in the order they were assigned to that category; products only in a subcategory follow, in the default order. Pass onSale=true to list only products that are reduced right now: priced by a campaign price list or a public discount rule below the item's regular price, for an anonymous visitor in the channel's currency (customer-specific prices never count). Only includes products active on the current channel.

Stödjer ETag

Frågeparametrar

Fält Typ
category string
search string
page integer
pageSize integer
sort string
ids string
tag string
onSale boolean

Headers

Fält Typ Beskrivning
X-Language string Language for translated content, as an ISO 639-1 code ("sv", "en"). Omitting it answers in the channel's default language, and so does a language the channel does not publish — this never fails the request. The channel decides which languages exist; read them from the session response.

Svar

200 PagedResult_ProductSummaryResponse

Paginerat svar: raderna nedan ligger i items[], omgivna av totalCount, page, pageSize, totalPages, hasPreviousPage och hasNextPage. Paginerad

Fält Typ Beskrivning
brand string · nullable
brandSlug string · nullable
hasPriceRange boolean
id string(uuid)
incoming IncomingStock
isConfigurable boolean
isOnSale boolean
isPhasingOut boolean
isVariantMaster boolean
itemNumber string · nullable
keySpecs ProductKeySpec[] · nullable
listPrice decimal · nullable
listPriceIncludingVat decimal · nullable
lowestPrice30Days decimal · nullable
lowestPrice30DaysIncludingVat decimal · nullable
mainImageUrl string · nullable
matchedVariantId string(uuid) · nullable
matchedVariantSlug string · nullable
mpn string · nullable
name string · nullable
priceAfterTaxReduction decimal · nullable
regularPrice decimal · nullable
regularPriceIncludingVat decimal · nullable
secondImageUrl string · nullable
seoSlug string · nullable
stockStatus enum InStock LowStock OutOfStock BackOrder
taxPercent decimal
taxReductionName string · nullable
updatedAt string(date-time) · nullable
variantSwatchTotal integer
variantSwatches VariantSwatch[] · nullable
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/products" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web" \
  -H "X-Language: …"
Svar 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "brand": "string",
      "brandSlug": "string",
      "hasPriceRange": true,
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "incoming": {
        "expectedDate": "2026-06-11",
        "isConfirmed": true,
        "quantity": 42
      },
      "isConfigurable": true,
      "isOnSale": true,
      "isPhasingOut": true,
      "isVariantMaster": true,
      "itemNumber": "WIDGET-A",
      "keySpecs": [
        {
          "code": "string",
          "label": "string",
          "unit": "st",
          "value": "string"
        }
      ],
      "listPrice": "299.00",
      "listPriceIncludingVat": "299.00",
      "lowestPrice30Days": "299.00",
      "lowestPrice30DaysIncludingVat": "299.00",
      "mainImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "matchedVariantId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "matchedVariantSlug": "string",
      "mpn": "string",
      "name": "Widget A",
      "priceAfterTaxReduction": "299.00",
      "regularPrice": "299.00",
      "regularPriceIncludingVat": "299.00",
      "secondImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "seoSlug": "string",
      "stockStatus": "InStock",
      "taxPercent": "12.50",
      "taxReductionName": "Widget A",
      "updatedAt": "2026-06-11T09:24:13.418",
      "variantSwatchTotal": 42,
      "variantSwatches": [
        {
          "colorHex": "string",
          "value": "string",
          "valueId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44"
        }
      ]
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

GET /catalog/products/{idOrSlug}

Get product details

Returns complete product information including stock status, images, and attributes. Only shows products active on the current channel.

Visa hela beskrivningen

A variant (looked up by slug, item number or id) returns its variant master with `selectedVariantId` set to the variant. `canonicalSlug` is the page's canonical slug: the master's, except in channels that list variants as products of their own. A client that received the response on another slug should redirect to `/products/{canonicalSlug}?variant={variant seoSlug}`. `defaultVariantId` is the first purchasable variant in axis order.

Stödjer ETag

Sökvägsparametrar

Fält Typ
idOrSlug Krävs string

Headers

Fält Typ Beskrivning
X-Language string Language for translated content, as an ISO 639-1 code ("sv", "en"). Omitting it answers in the channel's default language, and so does a language the channel does not publish — this never fails the request. The channel decides which languages exist; read them from the session response.

Svar

200 ProductDetailResponse
Fält Typ Beskrivning
accessories ProductSummary[] · nullable
aggregatedAvailableQuantity integer · nullable
allowPreOrder boolean
attributes ProductAttribute[] · nullable
averageRating decimal · nullable
brand string · nullable
brandLogoUrl string · nullable
brandSlug string · nullable
breadcrumbs Breadcrumb[] · nullable
canonicalSlug string · nullable
crossReferences ProductCrossReference[] · nullable
crossSellProducts ProductSummary[] · nullable
currency string · nullable
defaultVariantId string(uuid) · nullable
description string · nullable
discountEndsAt string(date) · nullable
documents ProductDocument[] · nullable
grade string · nullable
gradedAlternatives GradedAlternative[] · nullable
gtin string · nullable
height decimal · nullable
id string(uuid)
images ProductImage[] · nullable
incoming IncomingStock
isConfigurable boolean
isMadeToOrder boolean
isOnSale boolean
isPhasingOut boolean
itemNumber string · nullable
leadTimeDays integer · nullable
length decimal · nullable
listPrice decimal · nullable
listPriceIncludingVat decimal · nullable
lowestPrice30Days decimal · nullable
lowestPrice30DaysIncludingVat decimal · nullable
madeToOrderText string · nullable
mainImageUrl string · nullable
metaDescription string · nullable
metaTitle string · nullable
mpn string · nullable
name string · nullable
priceAfterTaxReduction decimal · nullable
priceValidUntil string(date) · nullable
primaryCategory CategorySummary
regularPrice decimal · nullable
regularPriceIncludingVat decimal · nullable
relatedProducts ProductSummary[] · nullable
reviewCount integer
salesStartDate string(date) · nullable
selectedVariantId string(uuid) · nullable
seoSlug string · nullable
shortDescription string · nullable
stock WarehouseStock[] · nullable
stockDisplayMode string · nullable
stockStatus enum InStock LowStock OutOfStock BackOrder
tags TagSummary[] · nullable
taxPercent decimal
taxReductionName string · nullable
unit string · nullable
variantAttributes VariantAttribute[] · nullable
variants Variant[] · nullable
variantsHaveOwnPages boolean
weight decimal · nullable
width decimal · nullable
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Standardfel: 404 Felhantering

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/products/{idOrSlug}" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web" \
  -H "X-Language: …"
Svar 200
{
  "accessories": [
    {
      "brand": "string",
      "brandSlug": "string",
      "hasPriceRange": true,
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "incoming": {
        "expectedDate": "2026-06-11",
        "isConfirmed": true,
        "quantity": 42
      },
      "isConfigurable": true,
      "isOnSale": true,
      "isPhasingOut": true,
      "isVariantMaster": true,
      "itemNumber": "WIDGET-A",
      "keySpecs": [
        {
          "code": "string",
          "label": "string",
          "unit": "st",
          "value": "string"
        }
      ],
      "listPrice": "299.00",
      "listPriceIncludingVat": "299.00",
      "lowestPrice30Days": "299.00",
      "lowestPrice30DaysIncludingVat": "299.00",
      "mainImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "matchedVariantId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "matchedVariantSlug": "string",
      "mpn": "string",
      "name": "Widget A",
      "priceAfterTaxReduction": "299.00",
      "regularPrice": "299.00",
      "regularPriceIncludingVat": "299.00",
      "secondImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "seoSlug": "string",
      "stockStatus": "InStock",
      "taxPercent": "12.50",
      "taxReductionName": "Widget A",
      "updatedAt": "2026-06-11T09:24:13.418",
      "variantSwatchTotal": 42,
      "variantSwatches": [
        {
          "colorHex": "string",
          "value": "string",
          "valueId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44"
        }
      ]
    }
  ],
  "aggregatedAvailableQuantity": 42,
  "allowPreOrder": true,
  "attributes": [
    {
      "code": "string",
      "colorCode": "STD",
      "dataType": "Text",
      "name": "Widget A",
      "showInCompare": true,
      "unit": "st",
      "value": "string"
    }
  ],
  "averageRating": "299.00",
  "brand": "string",
  "brandLogoUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
  "brandSlug": "string",
  "breadcrumbs": [
    {
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "level": 42,
      "name": "Acme AB",
      "slug": "string"
    }
  ],
  "canonicalSlug": "string",
  "crossReferences": [
    {
      "isPrimary": true,
      "referenceNumber": "ABC-001",
      "source": "string",
      "type": "string"
    }
  ],
  "crossSellProducts": [
    {
      "brand": "string",
      "brandSlug": "string",
      "hasPriceRange": true,
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "incoming": {
        "expectedDate": "2026-06-11",
        "isConfirmed": true,
        "quantity": 42
      },
      "isConfigurable": true,
      "isOnSale": true,
      "isPhasingOut": true,
      "isVariantMaster": true,
      "itemNumber": "WIDGET-A",
      "keySpecs": [
        {
          "code": "string",
          "label": "string",
          "unit": "st",
          "value": "string"
        }
      ],
      "listPrice": "299.00",
      "listPriceIncludingVat": "299.00",
      "lowestPrice30Days": "299.00",
      "lowestPrice30DaysIncludingVat": "299.00",
      "mainImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "matchedVariantId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "matchedVariantSlug": "string",
      "mpn": "string",
      "name": "Widget A",
      "priceAfterTaxReduction": "299.00",
      "regularPrice": "299.00",
      "regularPriceIncludingVat": "299.00",
      "secondImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "seoSlug": "string",
      "stockStatus": "InStock",
      "taxPercent": "12.50",
      "taxReductionName": "Widget A",
      "updatedAt": "2026-06-11T09:24:13.418",
      "variantSwatchTotal": 42,
      "variantSwatches": [
        {
          "colorHex": "string",
          "value": "string",
          "valueId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44"
        }
      ]
    }
  ],
  "currency": "string",
  "defaultVariantId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "description": "string",
  "discountEndsAt": "2026-06-11",
  "documents": [
    {
      "category": "string",
      "categoryName": "Hand tools",
      "categorySortOrder": 42,
      "contentType": "image/jpeg",
      "description": "string",
      "fileSize": 42,
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "languageCode": "STD",
      "name": "Widget A",
      "sortOrder": 42,
      "url": "https://cdn.fluit.cloud/assets/widget-a-front.jpg"
    }
  ],
  "grade": "string",
  "gradedAlternatives": [
    {
      "grade": "string",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "isCurrent": true,
      "itemNumber": "WIDGET-A",
      "listPrice": "299.00",
      "listPriceIncludingVat": "299.00",
      "name": "Acme AB",
      "seoSlug": "string",
      "stockStatus": "InStock",
      "taxPercent": "12.50"
    }
  ],
  "gtin": "string",
  "height": "299.00",
  "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "images": [
    {
      "altText": "string",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "isPrimary": true,
      "sortOrder": 42,
      "url": "https://cdn.fluit.cloud/assets/widget-a-front.jpg"
    }
  ],
  "incoming": {
    "expectedDate": "2026-06-11",
    "isConfirmed": true,
    "quantity": 42
  },
  "isConfigurable": true,
  "isMadeToOrder": true,
  "isOnSale": true,
  "isPhasingOut": true,
  "itemNumber": "WIDGET-A",
  "leadTimeDays": 42,
  "length": "299.00",
  "listPrice": "299.00",
  "listPriceIncludingVat": "299.00",
  "lowestPrice30Days": "299.00",
  "lowestPrice30DaysIncludingVat": "299.00",
  "madeToOrderText": "string",
  "mainImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
  "metaDescription": "string",
  "metaTitle": "string",
  "mpn": "string",
  "name": "Widget A",
  "priceAfterTaxReduction": "299.00",
  "priceValidUntil": "2026-06-11",
  "primaryCategory": {
    "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
    "name": "Hand tools",
    "slug": "string"
  },
  "regularPrice": "299.00",
  "regularPriceIncludingVat": "299.00",
  "relatedProducts": [
    {
      "brand": "string",
      "brandSlug": "string",
      "hasPriceRange": true,
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "incoming": {
        "expectedDate": "2026-06-11",
        "isConfirmed": true,
        "quantity": 42
      },
      "isConfigurable": true,
      "isOnSale": true,
      "isPhasingOut": true,
      "isVariantMaster": true,
      "itemNumber": "WIDGET-A",
      "keySpecs": [
        {
          "code": "string",
          "label": "string",
          "unit": "st",
          "value": "string"
        }
      ],
      "listPrice": "299.00",
      "listPriceIncludingVat": "299.00",
      "lowestPrice30Days": "299.00",
      "lowestPrice30DaysIncludingVat": "299.00",
      "mainImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "matchedVariantId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "matchedVariantSlug": "string",
      "mpn": "string",
      "name": "Widget A",
      "priceAfterTaxReduction": "299.00",
      "regularPrice": "299.00",
      "regularPriceIncludingVat": "299.00",
      "secondImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "seoSlug": "string",
      "stockStatus": "InStock",
      "taxPercent": "12.50",
      "taxReductionName": "Widget A",
      "updatedAt": "2026-06-11T09:24:13.418",
      "variantSwatchTotal": 42,
      "variantSwatches": [
        {
          "colorHex": "string",
          "value": "string",
          "valueId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44"
        }
      ]
    }
  ],
  "reviewCount": 42,
  "salesStartDate": "2026-06-11",
  "selectedVariantId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "seoSlug": "string",
  "shortDescription": "string",
  "stock": [
    {
      "availableQuantity": 42,
      "isAvailableForPickup": true,
      "leadTime": "string",
      "sortOrder": 42,
      "status": "InStock",
      "warehouseCode": "MAIN",
      "warehouseId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "warehouseName": "Main warehouse"
    }
  ],
  "stockDisplayMode": "string",
  "stockStatus": "InStock",
  "tags": [
    {
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "name": "Acme AB",
      "slug": "string"
    }
  ],
  "taxPercent": "12.50",
  "taxReductionName": "Widget A",
  "unit": "st",
  "variantAttributes": [
    {
      "displayType": "Buttons",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "name": "Acme AB",
      "sortOrder": 42,
      "values": [
        {
          "colorHex": "string",
          "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
          "sortOrder": 42,
          "value": "string"
        }
      ]
    }
  ],
  "variants": [
    {
      "documents": [
        {
          "category": "string",
          "categoryName": "Hand tools",
          "categorySortOrder": 42,
          "contentType": "image/jpeg",
          "description": "string",
          "fileSize": 42,
          "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
          "languageCode": "STD",
          "name": "Widget A",
          "sortOrder": 42,
          "url": "https://cdn.fluit.cloud/assets/widget-a-front.jpg"
        }
      ],
      "gtin": "string",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "images": [
        {
          "altText": "string",
          "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
          "isPrimary": true,
          "sortOrder": 42,
          "url": "https://cdn.fluit.cloud/assets/widget-a-front.jpg"
        }
      ],
      "incoming": {
        "expectedDate": "2026-06-11",
        "isConfirmed": true,
        "quantity": 42
      },
      "isConfigurable": true,
      "isOnSale": true,
      "isPurchasable": true,
      "itemNumber": "WIDGET-A",
      "listPrice": "299.00",
      "listPriceIncludingVat": "299.00",
      "lowestPrice30Days": "299.00",
      "lowestPrice30DaysIncludingVat": "299.00",
      "mainImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "name": "Acme AB",
      "regularPrice": "299.00",
      "regularPriceIncludingVat": "299.00",
      "seoSlug": "string",
      "stockStatus": "InStock",
      "taxPercent": "12.50",
      "values": [
        {
          "attributeId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
          "valueId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44"
        }
      ]
    }
  ],
  "variantsHaveOwnPages": true,
  "weight": "1.250",
  "width": "299.00"
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

GET /catalog/products/{idOrSlug}/configuration

Get the configuration schema for a product

Returns what the shopper has to choose before a made-to-order product can be added to the cart: the fields, grouped for display, and the options for each field with their price impact and an image when one is set.

Visa hela beskrivningen

Fields without a group come first in a single unnamed group, so a product that was never grouped renders as a flat list. Calculated fields are left out — they are derived from the others. Pair this with POST .../configuration/price to price the choices as they are made. 404 when the product is not published on the channel, has no configurable features, or requires an on-site measurement: those products are sold through quote and order, not self-service, and are deliberately indistinguishable from a product that does not exist.

Stödjer ETag

Sökvägsparametrar

Fält Typ
idOrSlug Krävs string

Svar

200 ProductConfigurationSchemaResponse
Fält Typ
currencyCode string · nullable
groups ConfigurationGroupDto[] · nullable
itemId string(uuid)
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Standardfel: 404 Felhantering

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/products/{idOrSlug}/configuration" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"
Svar 200
{
  "currencyCode": "SEK",
  "groups": [
    {
      "fields": [
        {
          "code": "string",
          "defaultValue": "string",
          "displayStyle": "string",
          "hasMoreSelectableItems": true,
          "helpText": "string",
          "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
          "isRequired": true,
          "maxValue": "299.00",
          "minValue": "299.00",
          "name": "Acme AB",
          "options": [
            {}
          ],
          "selectableItems": [
            {}
          ],
          "selectableItemsCategoryId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
          "showWhen": "string",
          "step": "299.00",
          "swatchSize": "string",
          "type": "string",
          "unit": "st"
        }
      ],
      "name": "Retail"
    }
  ],
  "itemId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44"
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

POST /catalog/products/{idOrSlug}/configuration/price

Price a product configuration

Prices a set of choices without saving anything, so a storefront can show the price updating as the shopper chooses. POST rather than GET because the choices do not fit a query string; the call has no side effects and is never cached.

Visa hela beskrivningen

Returns the unit and total price together with isValid, which is false while a required field is missing or a value falls outside its range — the errors name the field so they can be shown next to the right input. The breakdown into base price and configuration surcharge is deliberately not part of this response: it describes how the merchant prices, not what the shopper pays.

Sökvägsparametrar

Fält Typ
idOrSlug Krävs string

Body krävs

Fält Typ Beskrivning
quantity integer Antal att prissätta. Minst 1.
selections ConfigurationSelection[] · nullable Valen så långt de är gjorda. Ofullständiga val är förväntade.

Svar

200 ProductConfigurationPriceResponse
Fält Typ
currencyCode string · nullable
errors ConfigurationFieldErrorDto[] · nullable
isValid boolean
totalPrice decimal · nullable
unitPrice decimal · nullable
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.
  • Retry-After — Seconds to wait before retrying.

Standardfel: 400 404 Felhantering

Exempel

curl
curl -X POST "https://api.erp.fluit.cloud/ecom/catalog/products/{idOrSlug}/configuration/price" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web" \
  -H "Content-Type: application/json" \
  -d @body.json
Svar 200
{
  "currencyCode": "SEK",
  "errors": [
    {
      "code": "string",
      "fieldId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "message": "string"
    }
  ],
  "isValid": true,
  "totalPrice": "299.00",
  "unitPrice": "299.00"
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

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.

Visa hela beskrivningen

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.

Frågeparametrar

Fält Typ
itemIds Krävs string

Svar

200 StockResponse
Fält Typ
stock ItemStock[] · nullable
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.
  • Retry-After — Seconds to wait before retrying.

Standardfel: 400 404 Felhantering

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/stock" \
  -H "Authorization: Bearer $SESSION_TOKEN" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"
Svar 200
{
  "stock": [
    {
      "availableQuantity": 42,
      "incoming": {
        "expectedDate": "2026-06-11",
        "isConfirmed": true,
        "quantity": 42
      },
      "itemId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "stockStatus": "InStock"
    }
  ]
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

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.

Visa hela beskrivningen

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 krävs

Fält Typ Beskrivning
itemIds string(uuid)[] · nullable Artikel-id:n att slå upp. Dubbletter tas bort; ordningen saknar betydelse.

Svar

200 StockResponse
Fält Typ
stock ItemStock[] · nullable
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.
  • Retry-After — Seconds to wait before retrying.

Standardfel: 400 404 Felhantering

Exempel

curl
curl -X POST "https://api.erp.fluit.cloud/ecom/catalog/stock" \
  -H "Authorization: Bearer $SESSION_TOKEN" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web" \
  -H "Content-Type: application/json" \
  -d @body.json
Svar 200
{
  "stock": [
    {
      "availableQuantity": 42,
      "incoming": {
        "expectedDate": "2026-06-11",
        "isConfirmed": true,
        "quantity": 42
      },
      "itemId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "stockStatus": "InStock"
    }
  ]
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

GET /catalog/suggest

Search suggestions

Type-ahead suggestions for the storefront search field: matching products, term completions and categories.

Stödjer ETag

Frågeparametrar

Fält Typ
q string
limit integer

Headers

Fält Typ Beskrivning
X-Language string Language for translated content, as an ISO 639-1 code ("sv", "en"). Omitting it answers in the channel's default language, and so does a language the channel does not publish — this never fails the request. The channel decides which languages exist; read them from the session response.

Svar

200 SearchSuggestionsResponse
Fält Typ
categories SuggestedCategory[] · nullable
didYouMean string · nullable
products ProductSummary[] · nullable
query string · nullable
terms string[] · nullable
totalCount integer
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/suggest" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web" \
  -H "X-Language: …"
Svar 200
{
  "categories": [
    {
      "code": "string",
      "name": "Hand tools"
    }
  ],
  "didYouMean": "string",
  "products": [
    {
      "brand": "string",
      "brandSlug": "string",
      "hasPriceRange": true,
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "incoming": {
        "expectedDate": "2026-06-11",
        "isConfirmed": true,
        "quantity": 42
      },
      "isConfigurable": true,
      "isOnSale": true,
      "isPhasingOut": true,
      "isVariantMaster": true,
      "itemNumber": "WIDGET-A",
      "keySpecs": [
        {
          "code": "string",
          "label": "string",
          "unit": "st",
          "value": "string"
        }
      ],
      "listPrice": "299.00",
      "listPriceIncludingVat": "299.00",
      "lowestPrice30Days": "299.00",
      "lowestPrice30DaysIncludingVat": "299.00",
      "mainImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "matchedVariantId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "matchedVariantSlug": "string",
      "mpn": "string",
      "name": "Widget A",
      "priceAfterTaxReduction": "299.00",
      "regularPrice": "299.00",
      "regularPriceIncludingVat": "299.00",
      "secondImageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "seoSlug": "string",
      "stockStatus": "InStock",
      "taxPercent": "12.50",
      "taxReductionName": "Widget A",
      "updatedAt": "2026-06-11T09:24:13.418",
      "variantSwatchTotal": 42,
      "variantSwatches": [
        {
          "colorHex": "string",
          "value": "string",
          "valueId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44"
        }
      ]
    }
  ],
  "query": "string",
  "terms": [
    "string"
  ],
  "totalCount": 137
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

GET /catalog/tags

List product tags

Returns the product tags that have at least one product listed in the current channel, with the number of products per tag, sorted by name. Each tag is a landing page: list its products with GET /ecom/catalog/products?tag={slug}.

Visa hela beskrivningen

Pass slug to look up a single tag — an empty list means no such tag page exists in this channel. Tags are shared by all channels, but the counts and the selection are channel-specific.

Stödjer ETag

Frågeparametrar

Fält Typ
slug string

Svar

200 TagsResponse
Fält Typ
tags Tag[] · nullable
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/catalog/tags" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"
Svar 200
{
  "tags": [
    {
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "name": "Acme AB",
      "productCount": 42,
      "slug": "string"
    }
  ]
}

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

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.

Stödjer ETag

Sökvägsparametrar

Fält Typ
itemId Krävs string(uuid)

Svar

200 ProductWidgetResponse[]
Fält Typ
cssClass string · nullable
htmlContent string · nullable
id string(uuid)
name string · nullable
placement string · nullable
sortOrder integer
style string · nullable
304 Tom 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.
  • Retry-After — Seconds to wait before retrying.

Standardfel: 404 Felhantering

Exempel

curl
curl "https://api.erp.fluit.cloud/ecom/products/{itemId}/widgets" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"
Svar 200
[
  {
    "cssClass": "string",
    "htmlContent": "string",
    "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
    "name": "Widget A",
    "placement": "string",
    "sortOrder": 42,
    "style": "string"
  }
]

Bas-URL https://api.erp.fluit.cloud/ecom. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

Scheman

Objekten som gruppens anrop refererar till. Fälttabellerna ovan går ett steg djupt och länkar hit i stället för att upprepa samma schema på varje endpoint.

Brand

BrandResponse
Fält Typ
id string(uuid)
name string · nullable
website string · nullable

Breadcrumb

BreadcrumbResponse
Fält Typ
id string(uuid)
level integer
name string · nullable
slug string · nullable

Category

CategoryResponse
Fält Typ
bannerHeadline string · nullable
bannerImageUrl string · nullable
bannerSubtitle string · nullable
children Category[] · nullable
code string · nullable
description string · nullable
iconName string · nullable
id string(uuid)
imageUrl string · nullable
metaDescription string · nullable
metaTitle string · nullable
name string · nullable
parentId string(uuid) · nullable
productCount integer
slug string · nullable
sortOrder integer

CategorySummary

CategorySummaryResponse
Fält Typ
id string(uuid)
name string · nullable
slug string · nullable

ConfigurationFieldDto

ConfigurationFieldDto
Fält Typ
code string · nullable
defaultValue string · nullable
displayStyle string · nullable
hasMoreSelectableItems boolean
helpText string · nullable
id string(uuid)
isRequired boolean
maxValue decimal · nullable
minValue decimal · nullable
name string · nullable
options ConfigurationOptionDto[] · nullable
selectableItems ConfigurationItemDto[] · nullable
selectableItemsCategoryId string(uuid) · nullable
showWhen string · nullable
step decimal · nullable
swatchSize string · nullable
type string · nullable
unit string · nullable

ConfigurationFieldErrorDto

ConfigurationFieldErrorDto
Fält Typ
code string · nullable
fieldId string(uuid)
message string · nullable

ConfigurationItemDto

ConfigurationItemDto
Fält Typ
imageUrl string · nullable
itemId string(uuid)
itemNumber string · nullable
name string · nullable

ConfigurationOptionDto

ConfigurationOptionDto
Fält Typ
code string · nullable
id string(uuid)
imageUrl string · nullable
isDefault boolean
name string · nullable
priceImpact decimal · nullable

ConfigurationSelection

ConfigurationSelectionInput
Fält Typ
boolean boolean · nullable
fieldId string(uuid)
number decimal · nullable
optionId string(uuid) · nullable
selectedItemId string(uuid) · nullable
text string · nullable

FilterGroup

FilterGroupResponse
Fält Typ
code string · nullable
dataType string · nullable
name string · nullable
sortOrder integer
unit string · nullable
values FilterValue[] · nullable

FilterValue

FilterValueResponse
Fält Typ
count integer
label string · nullable
value string · nullable

GradedAlternative

GradedAlternativeResponse
Fält Typ Beskrivning
grade string · nullable
id string(uuid)
isCurrent boolean
itemNumber string · nullable
listPrice decimal · nullable
listPriceIncludingVat decimal · nullable
name string · nullable
seoSlug string · nullable
stockStatus enum InStock LowStock OutOfStock BackOrder
taxPercent decimal

IncomingStock

IncomingStockResponse
Fält Typ
expectedDate string(date)
isConfirmed boolean
quantity integer · nullable

ItemStock

ItemStockResponse
Fält Typ Beskrivning
availableQuantity integer · nullable
incoming IncomingStock
itemId string(uuid)
stockStatus enum InStock LowStock OutOfStock BackOrder

PagedResult<ProductSummary>

PagedResult_ProductSummaryResponse
Fält Typ
hasNextPage boolean
hasPreviousPage boolean
items ProductSummary[] · nullable
page integer
pageSize integer
totalCount integer
totalPages integer

ProductAttribute

ProductAttributeResponse
Fält Typ Beskrivning
code string · nullable
colorCode string · nullable
dataType enum Text WholeNumber DecimalNumber Boolean Date Url Html Color
name string · nullable
showInCompare boolean
unit string · nullable
value string · nullable

ProductCrossReference

ProductCrossReferenceResponse
Fält Typ
isPrimary boolean
referenceNumber string · nullable
source string · nullable
type string · nullable

ProductDocument

ProductDocumentResponse
Fält Typ
category string · nullable
categoryName string · nullable
categorySortOrder integer
contentType string · nullable
description string · nullable
fileSize integer
id string(uuid)
languageCode string · nullable
name string · nullable
sortOrder integer
url string · nullable

ProductImage

ProductImageResponse
Fält Typ
altText string · nullable
id string(uuid)
isPrimary boolean
sortOrder integer
url string · nullable

ProductKeySpec

ProductKeySpecResponse
Fält Typ
code string · nullable
label string · nullable
unit string · nullable
value string · nullable

ProductSummary

ProductSummaryResponse
Fält Typ Beskrivning
brand string · nullable
brandSlug string · nullable
hasPriceRange boolean
id string(uuid)
incoming IncomingStock
isConfigurable boolean
isOnSale boolean
isPhasingOut boolean
isVariantMaster boolean
itemNumber string · nullable
keySpecs ProductKeySpec[] · nullable
listPrice decimal · nullable
listPriceIncludingVat decimal · nullable
lowestPrice30Days decimal · nullable
lowestPrice30DaysIncludingVat decimal · nullable
mainImageUrl string · nullable
matchedVariantId string(uuid) · nullable
matchedVariantSlug string · nullable
mpn string · nullable
name string · nullable
priceAfterTaxReduction decimal · nullable
regularPrice decimal · nullable
regularPriceIncludingVat decimal · nullable
secondImageUrl string · nullable
seoSlug string · nullable
stockStatus enum InStock LowStock OutOfStock BackOrder
taxPercent decimal
taxReductionName string · nullable
updatedAt string(date-time) · nullable
variantSwatchTotal integer
variantSwatches VariantSwatch[] · nullable

SearchCategoryMatch

SearchCategoryMatch
Fält Typ
code string · nullable
name string · nullable
productCount integer

SuggestedCategory

SuggestedCategory
Fält Typ
code string · nullable
name string · nullable

Tag

TagResponse
Fält Typ
id string(uuid)
name string · nullable
productCount integer
slug string · nullable

TagSummary

TagSummaryResponse
Fält Typ
id string(uuid)
name string · nullable
slug string · nullable

Variant

VariantResponse
Fält Typ Beskrivning
documents ProductDocument[] · nullable
gtin string · nullable
id string(uuid)
images ProductImage[] · nullable
incoming IncomingStock
isConfigurable boolean
isOnSale boolean
isPurchasable boolean
itemNumber string · nullable
listPrice decimal · nullable
listPriceIncludingVat decimal · nullable
lowestPrice30Days decimal · nullable
lowestPrice30DaysIncludingVat decimal · nullable
mainImageUrl string · nullable
name string · nullable
regularPrice decimal · nullable
regularPriceIncludingVat decimal · nullable
seoSlug string · nullable
stockStatus enum InStock LowStock OutOfStock BackOrder
taxPercent decimal
values VariantValueRef[] · nullable

VariantAttribute

VariantAttributeResponse
Fält Typ Beskrivning
displayType enum Buttons Swatch Dropdown
id string(uuid)
name string · nullable
sortOrder integer
values VariantAttributeValue[] · nullable

VariantAttributeValue

VariantAttributeValueResponse
Fält Typ
colorHex string · nullable
id string(uuid)
sortOrder integer
value string · nullable

VariantSwatch

VariantSwatchResponse
Fält Typ
colorHex string · nullable
value string · nullable
valueId string(uuid)

VariantValueRef

VariantValueRef
Fält Typ
attributeId string(uuid)
valueId string(uuid)

WarehouseStock

WarehouseStockResponse
Fält Typ Beskrivning
availableQuantity integer · nullable
isAvailableForPickup boolean
leadTime string · nullable
sortOrder integer
status enum InStock LowStock OutOfStock BackOrder
warehouseCode string · nullable
warehouseId string(uuid)
warehouseName string · nullable