Hoppa till innehållet

Channels

Sales channels — webshops, B2B portals, marketplaces and apps — and which items are published on each, with the channel-specific texts, SEO and ordering. Channels are addressed by channelCode, publications by the pair (itemNumber, channelCode). Publishing is opt-in: an item is only part of a channel's assortment once a publication exists. A channel here carries commercial terms only — currency, warehouse, price list, order type. How the storefront looks (branding, menus, content pages) is not part of this contract.

8 calls GET POST PATCH DELETE Base URL https://api.erp.fluit.cloud/preview

Authentication, error codes, rate limits, idempotency and pagination apply to every call and are documented once under Getting started.

GET /channels

List sales channels

Returns the sales channels the tenant sells through — webshops, B2B portals, marketplaces and apps — with the commercial terms that apply in each: currency, default warehouse, price list and order type.

Show the full description

Sorted by channel code. Filters combine with AND. Enum filters are matched case-insensitively and an unknown value returns 400. A channel carries no presentation — branding, menus and content pages are not part of this contract. What an item looks like in a channel is under GET /preview/channels/{channelCode}/items.

channels:read Paginated

Query parameters

Field Type Description
search string Matches channel code and name, case-insensitively and on partial words.
isActive boolean Filters on whether the channel is active.
type enum Filters on the kind of channel. B2C B2B Marketplace App
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicChannelResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
allowGuestPrices Required boolean Whether prices are shown to visitors who are not logged in.
channelCode Required string · nullable Stable channel code, e.g. `webshop-se`. The business key used in URLs.
createdDate Required string(date-time) When the channel was created (UTC).
currencyCode string · nullable Default currency as ISO 4217, e.g. `SEK`.
defaultLanguage Required string · nullable Default language as ISO 639-1, e.g. `sv`. Drives order confirmations and documents.
defaultPriceListCode string · nullable Code of the price list applied in this channel, when one is configured.
defaultWarehouseCode string · nullable Code of the warehouse orders in this channel are fulfilled from by default.
isActive Required boolean Whether the channel is active and may be sold through.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable When the channel was last changed (UTC), or null if never changed since creation.
name Required string · nullable Display name, e.g. "Webshop Sverige".
orderTypeCode string · nullable Code of the order type orders in this channel are created with.
type Required enum Sales channel kinds exposed via the Public API. Mirrors `Domain.SalesOrders.SalesChannelType` name-for-name and value-for-value so the query projections can cast directly — a cast is translatable to SQL where a switch over a helper method is not. `PublicChannelEnumParityTests` fails the build if the two ever drift apart, which is what stops a new domain value from silently serialising as a bare number. B2C B2B Marketplace App
400 ProblemDetails The type filter got a value outside its list.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/channels"
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "allowGuestPrices": true,
      "channelCode": "STD",
      "createdDate": "2026-06-11T09:24:13.418",
      "currencyCode": "SEK",
      "defaultLanguage": "string",
      "defaultPriceListCode": "STD",
      "defaultWarehouseCode": "MAIN",
      "isActive": true,
      "links": {
        "self": "string"
      },
      "modifiedDate": "2026-06-11T09:24:13.418",
      "name": "Acme AB",
      "orderTypeCode": "STD",
      "type": "B2C"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /channels/{channelCode}

Get a sales channel by code

Returns the commercial terms that apply when something is sold through this channel: currency, default warehouse, price list and order type. Responses carry a weak ETag; pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.

channels:read Supports ETag

Path parameters

Field Type Description
channelCode Required string Code of the channel to read, e.g. webshop-se.

Responses

200 PublicChannelResponse
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
Field Type Description
allowGuestPrices Required boolean Whether prices are shown to visitors who are not logged in.
channelCode Required string · nullable Stable channel code, e.g. `webshop-se`. The business key used in URLs.
createdDate Required string(date-time) When the channel was created (UTC).
currencyCode string · nullable Default currency as ISO 4217, e.g. `SEK`.
defaultLanguage Required string · nullable Default language as ISO 639-1, e.g. `sv`. Drives order confirmations and documents.
defaultPriceListCode string · nullable Code of the price list applied in this channel, when one is configured.
defaultWarehouseCode string · nullable Code of the warehouse orders in this channel are fulfilled from by default.
isActive Required boolean Whether the channel is active and may be sold through.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable When the channel was last changed (UTC), or null if never changed since creation.
name Required string · nullable Display name, e.g. "Webshop Sverige".
orderTypeCode string · nullable Code of the order type orders in this channel are created with.
type Required enum Sales channel kinds exposed via the Public API. Mirrors `Domain.SalesOrders.SalesChannelType` name-for-name and value-for-value so the query projections can cast directly — a cast is translatable to SQL where a switch over a helper method is not. `PublicChannelEnumParityTests` fails the build if the two ever drift apart, which is what stops a new domain value from silently serialising as a bare number. B2C B2B Marketplace App
304 Empty body.
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
404 ProblemDetails No channel with that code.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/channels/{channelCode}"
Response 200
{
  "allowGuestPrices": true,
  "channelCode": "STD",
  "createdDate": "2026-06-11T09:24:13.418",
  "currencyCode": "SEK",
  "defaultLanguage": "string",
  "defaultPriceListCode": "STD",
  "defaultWarehouseCode": "MAIN",
  "isActive": true,
  "links": {
    "self": "string"
  },
  "modifiedDate": "2026-06-11T09:24:13.418",
  "name": "Acme AB",
  "orderTypeCode": "STD",
  "type": "B2C"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /channels/{channelCode}/items

List the items published on a channel

The channel's assortment: which items are published, in which order, with the channel-specific texts and SEO that override the item's own. This is the read a storefront builds its catalogue from.

Show the full description

Sorted by sort order, then item number and channel code. publishDate and unpublishDate are returned as stored and are not applied by this endpoint — a scheduled publication appears here before it goes live, so filter on them if you are rendering a live catalogue. Delta sync: ?modifiedSince= (ISO 8601 UTC datetime) returns records created or changed at or after that instant, and is the intended way to run an incremental sync. A change anywhere inside the record counts: editing a line moves the parent's modifiedDate too, so no change can hide below the resource level. Newly created publications are included even though they have no modifiedDate yet.

Path parameters

Field Type Description
channelCode Required string Code of the channel whose published items to list.

Query parameters

Field Type Description
isActive boolean Filters on whether the publication is active.
isFeatured boolean Filters on whether the item is featured in the channel.
modifiedSince string(date-time) Returns only records created or changed at or after this instant (ISO 8601 UTC datetime). A change anywhere inside the record counts, including on its lines.
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicItemChannelResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
allowBackorder boolean · nullable Backorder override, or null to inherit from the item and then the channel.
channelCode Required string · nullable The channel it is published on.
createdDate Required string(date-time) When the publication was created (UTC).
description string · nullable Channel-specific long description, or null to use the item's own.
displayCategoryCode string · nullable Code of the category the item is displayed under here, or null to use its primary category.
isActive Required boolean Whether the publication is active. False hides the item without deleting the record.
isFeatured Required boolean Whether the item is featured in this channel.
itemNumber Required string · nullable The published item.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
metaDescription string · nullable SEO meta description for this channel, or null to fall back.
metaTitle string · nullable SEO meta title for this channel, or null to fall back.
modifiedDate string(date-time) · nullable When the publication was last changed (UTC), or null if never changed.
name string · nullable Channel-specific name, or null to use the item's own.
publishDate string(date-time) · nullable When the item becomes visible, or null for immediately.
shortDescription string · nullable Channel-specific short description, or null to use the item's own.
showStock Required boolean Whether stock is shown for this item in this channel.
slug string · nullable URL slug in this channel. Changing it creates a 301 redirect from the old one.
sortOrder Required integer Sort order within the channel.
stockDisplayMode enum How stock is presented for a published item. Mirrors `Domain.Ecom.StockDisplayMode` — see PublicApi.Preview.Channels.Queries.PublicSalesChannelType for why. ExactQuantity InStockOutOfStock LeadTime Hidden
unpublishDate string(date-time) · nullable When the item stops being visible, or null for never.
404 ProblemDetails No channel with that code.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/channels/{channelCode}/items"
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "allowBackorder": true,
      "channelCode": "STD",
      "createdDate": "2026-06-11T09:24:13.418",
      "description": "string",
      "displayCategoryCode": "STD",
      "isActive": true,
      "isFeatured": true,
      "itemNumber": "WIDGET-A",
      "links": {
        "self": "string"
      },
      "metaDescription": "string",
      "metaTitle": "string",
      "modifiedDate": "2026-06-11T09:24:13.418",
      "name": "Widget A",
      "publishDate": "2026-06-11T09:24:13.418",
      "shortDescription": "string",
      "showStock": true,
      "slug": "string",
      "sortOrder": 42,
      "stockDisplayMode": "ExactQuantity",
      "unpublishDate": "2026-06-11T09:24:13.418"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /items/{itemNumber}/channels

List the channels an item is published on

Publishing is opt-in: an item is only visible in a channel once a publication exists, so an empty list means the item is not for sale anywhere. Sorted by sort order, then item number and channel code.

Show the full description

Every content field is null when the channel uses the item's own value, so "not set" stays distinguishable from "set to the same text". Delta sync: ?modifiedSince= (ISO 8601 UTC datetime) returns records created or changed at or after that instant, and is the intended way to run an incremental sync. A change anywhere inside the record counts: editing a line moves the parent's modifiedDate too, so no change can hide below the resource level. Newly created publications are included even though they have no modifiedDate yet.

Path parameters

Field Type Description
itemNumber Required string Item number of the item whose publications to list.

Query parameters

Field Type Description
isActive boolean Filters on whether the publication is active.
isFeatured boolean Filters on whether the item is featured in the channel.
modifiedSince string(date-time) Returns only records created or changed at or after this instant (ISO 8601 UTC datetime). A change anywhere inside the record counts, including on its lines.
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicItemChannelResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
allowBackorder boolean · nullable Backorder override, or null to inherit from the item and then the channel.
channelCode Required string · nullable The channel it is published on.
createdDate Required string(date-time) When the publication was created (UTC).
description string · nullable Channel-specific long description, or null to use the item's own.
displayCategoryCode string · nullable Code of the category the item is displayed under here, or null to use its primary category.
isActive Required boolean Whether the publication is active. False hides the item without deleting the record.
isFeatured Required boolean Whether the item is featured in this channel.
itemNumber Required string · nullable The published item.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
metaDescription string · nullable SEO meta description for this channel, or null to fall back.
metaTitle string · nullable SEO meta title for this channel, or null to fall back.
modifiedDate string(date-time) · nullable When the publication was last changed (UTC), or null if never changed.
name string · nullable Channel-specific name, or null to use the item's own.
publishDate string(date-time) · nullable When the item becomes visible, or null for immediately.
shortDescription string · nullable Channel-specific short description, or null to use the item's own.
showStock Required boolean Whether stock is shown for this item in this channel.
slug string · nullable URL slug in this channel. Changing it creates a 301 redirect from the old one.
sortOrder Required integer Sort order within the channel.
stockDisplayMode enum How stock is presented for a published item. Mirrors `Domain.Ecom.StockDisplayMode` — see PublicApi.Preview.Channels.Queries.PublicSalesChannelType for why. ExactQuantity InStockOutOfStock LeadTime Hidden
unpublishDate string(date-time) · nullable When the item stops being visible, or null for never.
404 ProblemDetails No item with that item number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/items/{itemNumber}/channels"
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "allowBackorder": true,
      "channelCode": "STD",
      "createdDate": "2026-06-11T09:24:13.418",
      "description": "string",
      "displayCategoryCode": "STD",
      "isActive": true,
      "isFeatured": true,
      "itemNumber": "WIDGET-A",
      "links": {
        "self": "string"
      },
      "metaDescription": "string",
      "metaTitle": "string",
      "modifiedDate": "2026-06-11T09:24:13.418",
      "name": "Widget A",
      "publishDate": "2026-06-11T09:24:13.418",
      "shortDescription": "string",
      "showStock": true,
      "slug": "string",
      "sortOrder": 42,
      "stockDisplayMode": "ExactQuantity",
      "unpublishDate": "2026-06-11T09:24:13.418"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

POST /items/{itemNumber}/channels

Publish an item on a channel

Publishing is opt-in: an item is only visible in a channel once this record exists. Every content field is an override — omit it and the channel uses the item's own value.

Show the full description

An item can only be published once per channel; publishing it again returns 409. Omitting the slug generates a unique one from the item's name; supplying one that another item in the channel already uses returns 409. The response body is the same representation as GET /preview/items/{itemNumber}/channels/{channelCode}; the canonical URL is returned in the Location header and in links.self.

Path parameters

Field Type Description
itemNumber Required string Item number of the item to publish.

Body required

Field Type Description
allowBackorder boolean · nullable Backorder override. Omit to inherit from the item, then the channel.
channelCode Required string Code of the channel to publish on. Required.
description string · nullable Channel-specific long description. Omit to use the item's own.
isActive boolean Whether the publication is live. Defaults to true.
isFeatured boolean Whether the item is featured here. Defaults to false.
metaDescription string · nullable SEO meta description for this channel.
metaTitle string · nullable SEO meta title for this channel.
name string · nullable Channel-specific name. Omit to use the item's own.
publishDate string(date-time) · nullable When the item becomes visible. Omit to publish immediately.
shortDescription string · nullable Channel-specific short description. Omit to use the item's own.
showStock boolean Whether stock is shown for this item here. Defaults to true.
slug string · nullable URL slug in this channel. Generated from the name if omitted.
sortOrder integer Sort order within the channel. Defaults to 0.
stockDisplayMode enum How stock is presented for a published item. Mirrors `Domain.Ecom.StockDisplayMode` — see PublicApi.Preview.Channels.Queries.PublicSalesChannelType for why. ExactQuantity InStockOutOfStock LeadTime Hidden
unpublishDate string(date-time) · nullable When the item stops being visible. Omit for never.

Responses

201 PublicItemChannelResponse
  • Location — URL of the newly created resource.
Field Type Description
allowBackorder boolean · nullable Backorder override, or null to inherit from the item and then the channel.
channelCode Required string · nullable The channel it is published on.
createdDate Required string(date-time) When the publication was created (UTC).
description string · nullable Channel-specific long description, or null to use the item's own.
displayCategoryCode string · nullable Code of the category the item is displayed under here, or null to use its primary category.
isActive Required boolean Whether the publication is active. False hides the item without deleting the record.
isFeatured Required boolean Whether the item is featured in this channel.
itemNumber Required string · nullable The published item.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
metaDescription string · nullable SEO meta description for this channel, or null to fall back.
metaTitle string · nullable SEO meta title for this channel, or null to fall back.
modifiedDate string(date-time) · nullable When the publication was last changed (UTC), or null if never changed.
name string · nullable Channel-specific name, or null to use the item's own.
publishDate string(date-time) · nullable When the item becomes visible, or null for immediately.
shortDescription string · nullable Channel-specific short description, or null to use the item's own.
showStock Required boolean Whether stock is shown for this item in this channel.
slug string · nullable URL slug in this channel. Changing it creates a 301 redirect from the old one.
sortOrder Required integer Sort order within the channel.
stockDisplayMode enum How stock is presented for a published item. Mirrors `Domain.Ecom.StockDisplayMode` — see PublicApi.Preview.Channels.Queries.PublicSalesChannelType for why. ExactQuantity InStockOutOfStock LeadTime Hidden
unpublishDate string(date-time) · nullable When the item stops being visible, or null for never.
400 ProblemDetails No channel with that code, or a field failed validation.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No item with that item number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
409 ProblemDetails ItemChannel.AlreadyExists — the item is already published on that channel; patch the existing publication instead. ItemChannel.SlugNotUnique — another item in the channel already uses that slug.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl -X POST "https://api.erp.fluit.cloud/preview/items/{itemNumber}/channels" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @body.json
Full — channel-specific content, SEO and scheduling
{
  "channelCode": "webshop-se",
  "isActive": true,
  "isFeatured": true,
  "metaDescription": "Proffswidget med 5 års garanti. Fri frakt över 500 kr.",
  "metaTitle": "Widget Pro 3000 | Köp online",
  "name": "Widget Pro 3000 – proffsmodell",
  "publishDate": "2026-09-15T00:00:00+02:00",
  "shortDescription": "Vår mest sålda widget.",
  "showStock": true,
  "slug": "widget-pro-3000",
  "sortOrder": 10,
  "stockDisplayMode": "InStockOutOfStock"
}
Minimal — publish with the item's own content
{
  "channelCode": "webshop-se"
}
Response 201
{
  "allowBackorder": true,
  "channelCode": "STD",
  "createdDate": "2026-06-11T09:24:13.418",
  "description": "string",
  "displayCategoryCode": "STD",
  "isActive": true,
  "isFeatured": true,
  "itemNumber": "WIDGET-A",
  "links": {
    "self": "string"
  },
  "metaDescription": "string",
  "metaTitle": "string",
  "modifiedDate": "2026-06-11T09:24:13.418",
  "name": "Widget A",
  "publishDate": "2026-06-11T09:24:13.418",
  "shortDescription": "string",
  "showStock": true,
  "slug": "string",
  "sortOrder": 42,
  "stockDisplayMode": "ExactQuantity",
  "unpublishDate": "2026-06-11T09:24:13.418"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /items/{itemNumber}/channels/{channelCode}

Get an item's publication on a channel

Returns the channel-specific content, SEO, stock display and scheduling for one item in one channel. Every content field is null when the channel uses the item's own value. Responses carry a weak ETag; pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.

channels:read Supports ETag

Path parameters

Field Type Description
itemNumber Required string Item number of the published item.
channelCode Required string Code of the channel it is published on.

Responses

200 PublicItemChannelResponse
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
Field Type Description
allowBackorder boolean · nullable Backorder override, or null to inherit from the item and then the channel.
channelCode Required string · nullable The channel it is published on.
createdDate Required string(date-time) When the publication was created (UTC).
description string · nullable Channel-specific long description, or null to use the item's own.
displayCategoryCode string · nullable Code of the category the item is displayed under here, or null to use its primary category.
isActive Required boolean Whether the publication is active. False hides the item without deleting the record.
isFeatured Required boolean Whether the item is featured in this channel.
itemNumber Required string · nullable The published item.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
metaDescription string · nullable SEO meta description for this channel, or null to fall back.
metaTitle string · nullable SEO meta title for this channel, or null to fall back.
modifiedDate string(date-time) · nullable When the publication was last changed (UTC), or null if never changed.
name string · nullable Channel-specific name, or null to use the item's own.
publishDate string(date-time) · nullable When the item becomes visible, or null for immediately.
shortDescription string · nullable Channel-specific short description, or null to use the item's own.
showStock Required boolean Whether stock is shown for this item in this channel.
slug string · nullable URL slug in this channel. Changing it creates a 301 redirect from the old one.
sortOrder Required integer Sort order within the channel.
stockDisplayMode enum How stock is presented for a published item. Mirrors `Domain.Ecom.StockDisplayMode` — see PublicApi.Preview.Channels.Queries.PublicSalesChannelType for why. ExactQuantity InStockOutOfStock LeadTime Hidden
unpublishDate string(date-time) · nullable When the item stops being visible, or null for never.
304 Empty body.
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
404 ProblemDetails No item with that item number, no channel with that code, or the item is not published on that channel. The three are separate errors and the problem detail says which.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/items/{itemNumber}/channels/{channelCode}"
Response 200
{
  "allowBackorder": true,
  "channelCode": "STD",
  "createdDate": "2026-06-11T09:24:13.418",
  "description": "string",
  "displayCategoryCode": "STD",
  "isActive": true,
  "isFeatured": true,
  "itemNumber": "WIDGET-A",
  "links": {
    "self": "string"
  },
  "metaDescription": "string",
  "metaTitle": "string",
  "modifiedDate": "2026-06-11T09:24:13.418",
  "name": "Widget A",
  "publishDate": "2026-06-11T09:24:13.418",
  "shortDescription": "string",
  "showStock": true,
  "slug": "string",
  "sortOrder": 42,
  "stockDisplayMode": "ExactQuantity",
  "unpublishDate": "2026-06-11T09:24:13.418"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

PATCH /items/{itemNumber}/channels/{channelCode}

Update an item's publication on a channel

Partially updates one publication. Only provided fields are updated (JSON Merge Patch semantics). Omitted fields are left unchanged. Pass null to clear a nullable field — which for the content fields means falling back to the item's own value. isActive, showStock, sortOrder and isFeatured cannot be set to null.

Show the full description

Unknown fields are rejected with 400, naming the field and listing the ones this endpoint accepts. Changing the slug changes the product's public URL and automatically creates a 301 redirect from the old one, so incoming links and their ranking are preserved. itemNumber and channelCode cannot be changed — they are the resource's address; moving a publication to another channel is a delete and a create.

channels:write

Path parameters

Field Type Description
itemNumber Required string Item number of the published item.
channelCode Required string Code of the channel it is published on.

Body required

Field Type Description
allowBackorder boolean · nullable Backorder override. Pass `null` to inherit from the item, then the channel.
description string · nullable Channel-specific long description. Pass `null` to fall back.
displayCategoryCode string · nullable Category the item is displayed under here. Pass `null` to use its primary category.
isActive boolean · nullable Whether the publication is live.
isFeatured boolean · nullable Whether the item is featured here.
metaDescription string · nullable SEO meta description. Pass `null` to clear.
metaTitle string · nullable SEO meta title. Pass `null` to clear.
name string · nullable Channel-specific name. Pass `null` to fall back to the item's own.
publishDate string(date-time) · nullable When the item becomes visible. Pass `null` for immediately.
shortDescription string · nullable Channel-specific short description. Pass `null` to fall back.
showStock boolean · nullable Whether stock is shown for this item here.
slug string · nullable URL slug in this channel. Changing it creates a 301 redirect from the old one.
sortOrder integer · nullable Sort order within the channel.
stockDisplayMode enum How stock is presented for a published item. Mirrors `Domain.Ecom.StockDisplayMode` — see PublicApi.Preview.Channels.Queries.PublicSalesChannelType for why. ExactQuantity InStockOutOfStock LeadTime Hidden
unpublishDate string(date-time) · nullable When the item stops being visible. Pass `null` for never.

Responses

204 Empty body.
400 ProblemDetails The body is not a JSON object, contains a field this endpoint does not have, a field present in it failed validation, displayCategoryCode names a category that does not exist, or one of isActive, showStock, sortOrder and isFeatured was sent as null.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No item with that item number, no channel with that code, or the item is not published on that channel.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
409 ProblemDetails ItemChannel.SlugNotUnique — another item in the channel already uses that slug.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl -X PATCH "https://api.erp.fluit.cloud/preview/items/{itemNumber}/channels/{channelCode}" \
  -H "Content-Type: application/json" \
  -d @body.json
Response 400
{
  "detail": "string",
  "instance": "string",
  "status": 42,
  "title": "string",
  "type": "string"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

DELETE /items/{itemNumber}/channels/{channelCode}

Unpublish an item from a channel

Removes the publication, so the item is no longer part of the channel's assortment. This discards the channel-specific content, SEO and slug along with it — to take an item out of the shop while keeping that work, patch isActive to false instead.

channels:write

Path parameters

Field Type Description
itemNumber Required string Item number of the published item.
channelCode Required string Code of the channel to remove it from.

Responses

204 Empty body.
404 ProblemDetails No item with that item number, no channel with that code, or the item is not published on that channel.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl -X DELETE "https://api.erp.fluit.cloud/preview/items/{itemNumber}/channels/{channelCode}"
Response 404
{
  "detail": "string",
  "instance": "string",
  "status": 42,
  "title": "string",
  "type": "string"
}

Base URL https://api.erp.fluit.cloud/preview. 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.