CMS pages: the navigable list and a page by slug, with its sections. Used for terms, about, delivery information and anything else the tenant edits without a deploy.
5 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
/custom-blocks/preview/{token}
Get a custom block preview rendered by the block editor
Admin preview only: returns the rendered HTML and scoped CSS of an unsaved custom block draft. Requires a valid admin preview token for the channel in X-Admin-Preview. Tokens expire after 30 minutes.
Sökvägsparametrar
Fält
Typ
token
Krävs
string
Svar
200
EcomCustomBlockPreviewResponse
Fält
Typ
blockKey
string
· nullable
css
string
· nullable
html
string
· nullable
useShell
boolean
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.
Bas-URL https://api.erp.fluit.cloud/ecom.
Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.
POST
/forms/{formToken}/submissions
Submit a form shown on a page
Submits the answers to a form that a page section carries (section type Form; the section's form has the token, the fields and the consent text). Send the answers as 'data': a JSON string of an object keyed by field id.
Visa hela beskrivningen
File fields need multipart/form-data, with the files as parts and the other properties as fields of the same name. 'formLoadedAtUnixMs' is required — when the form was shown — and so is consentGiven=true when the form has consent text. A submission that looks automated gets the same 200 as a real one and is dropped; the response never tells a bot it was caught. What happens next — a deal or a ticket, notification emails, a receipt — is set on the form in Fluit, not by the storefront.
Sökvägsparametrar
Fält
Typ
formToken
Krävs
string(uuid)
Body
krävs
Fält
Typ
Beskrivning
captchaToken
string
· nullable
consentGiven
boolean
Besökaren kryssade i formulärets samtyckesruta.
data
string
· nullable
Svaren: en JSON-sträng med ett objekt där fältets id är nyckeln.
formLoadedAtUnixMs
integer
· nullable
När formuläret visades, i millisekunder sedan epoken.
honeypot
string
· nullable
Ett dolt fält som ska lämnas tomt.
sourceUrl
string
· nullable
Sidan besökaren skickade från. Sparas som källa på inskicket.
utmCampaign
string
· nullable
utmMedium
string
· nullable
utmSource
string
· nullable
Svar
200
SubmitFormResponse
Fält
Typ
Beskrivning
received
boolean
Alltid true — även när inskicket sorterats bort som automatiserat.
Bas-URL https://api.erp.fluit.cloud/ecom.
Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.
GET
/pages
Get published content pages for navigation
Returns every published page in the channel as a flat list, in the tenant's own sort order. Each entry carries its storefront path (pages live at the root, nested under their parent: /about, /services/tyres; the home page is /), its parentPageId and whether it is hidden from search engines.
Visa hela beskrivningen
The menu itself comes from the session's navigation, not from this list. Read the page body with GET /ecom/pages/resolve?path= or GET /ecom/pages/{slug}.
Stödjer ETag
Svar
200
ContentPageNavResponse[]
Fält
Typ
Beskrivning
noIndex
boolean
Sidan ska inte indexeras och hör inte hemma i en sitemap.
pageType
string
· nullable
`Page`, `Home`, `BlogPost` eller `NewsPost`.
parentPageId
string(uuid)
· nullable
path
string
· nullable
Sidans adress i butiken, t.ex. `/tjanster/dackbyte`; startsidan är `/`.
showInNavigation
boolean
slug
string
· nullable
sortOrder
integer
title
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.
Bas-URL https://api.erp.fluit.cloud/ecom.
Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.
GET
/pages/{slug}
Get a published content page by slug
Returns a published page with its SEO fields and its sections in display order. Sections are typed — text, image, testimonial, feature cards, forms, FAQ — and a storefront renders each kind its own way, so treat an unfamiliar section type as something to skip rather than fail on.
Visa hela beskrivningen
Section collections are already expanded and forms carry their fields. An unpublished or missing page both return 404; the two are deliberately indistinguishable.
Titel i sökresultat och flik; tom betyder sidtiteln följd av kanalens namn.
slug
string
· nullable
tags
string[]
· nullable
title
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.
Bas-URL https://api.erp.fluit.cloud/ecom.
Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.
GET
/pages/resolve
Resolve a storefront path to a content page
Looks up the published page for a storefront path such as /about or /services/tyres; / is the channel's home page. The last segment identifies the page (slugs are unique per channel), so a stale path still finds it: compare the response's canonicalPath with the requested path and redirect permanently when they differ.
Visa hela beskrivningen
That covers pages that moved under another parent and the old /pages/{slug} addresses. The first segment of a page path is never one of the storefront's own routes — see reservedSlugs in the session for the list.
Titel i sökresultat och flik; tom betyder sidtiteln följd av kanalens namn.
slug
string
· nullable
tags
string[]
· nullable
title
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.
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.
ContentPageBreadcrumb
ContentPageBreadcrumbResponse
Fält
Typ
path
string
· nullable
title
string
· nullable
ContentPageSection
ContentPageSectionResponse
En sektion i ett sidsvar. Samma form för startsidan och innehållssidorna.
Fält
Typ
Beskrivning
alignment
string
· nullable
Rubrikdelens justering: `Left` eller `Center`.
anchor
string
· nullable
HTML-id för länkar direkt till sektionen (`#ankare`).
En `ProductSpotlight`-sektion: en artikel presenterad stort.
`layout` är `SideBySide`, `Banner` eller `Row`, `mediaPosition``Left` eller `Right`, och `documents``None`, `Selected` eller
`Category`. Vid `Selected` listas `documentIds`, vid `Category` artikelns
alla dokument i `documentCategory`; båda finns i produktsvarets `documents`.
showProductCount
boolean
Visa antalet produkter under kategorins namn.
sortOrder
integer
spacing
string
· nullable
Luft ovanför och under: `Normal`, `Compact` eller `Spacious`.
Bakgrund ur kanalens branding: `Default`, `Muted`, `Ink`, `Brand` eller `Accent`.
twoColumns
boolean
Bryt brödtexten i två spalter på bred skärm.
type
string
· nullable
videoUrl
string
· nullable
ContentPageSectionFeatureCard
ContentPageSectionFeatureCardResponse
Fält
Typ
Beskrivning
iconName
string
· nullable
imageAlt
string
· nullable
Alt-text för kortets bild.
imageUrl
string
· nullable
Kortets bild, när sektionen ritar kort med bild.
linkText
string
· nullable
linkUrl
string
· nullable
text
string
· nullable
title
string
· nullable
ContentPageSectionImage
ContentPageSectionImageResponse
Fält
Typ
altText
string
· nullable
caption
string
· nullable
imageUrl
string
· nullable
linkUrl
string
· nullable
ContentPageSectionTestimonial
ContentPageSectionTestimonialResponse
Fält
Typ
author
string
· nullable
avatarUrl
string
· nullable
quote
string
· nullable
rating
integer
· nullable
role
string
· nullable
FormField
EcomFormFieldResponse
Ett fält i ett formulär. `fieldType` är `Text`, `Email`, `Phone`,
`Number`, `TextArea`, `Select`, `Checkbox` eller `File`.
Svaret skickas med fältets `id` som nyckel.
Fält
Typ
fieldType
string
· nullable
id
string(uuid)
isRequired
boolean
label
string
· nullable
mapTo
string
· nullable
options
string[]
· nullable
placeholder
string
· nullable
SectionButton
EcomSectionButtonResponse
Fält
Typ
label
string
· nullable
openInNewTab
boolean
url
string
· nullable
variant
string
· nullable
SectionContact
EcomSectionContactResponse
Fält
Typ
directionsUrl
string
· nullable
mapImageUrl
string
· nullable
showAddress
boolean
showEmail
boolean
showOpeningHours
boolean
showPhone
boolean
SectionCustom
EcomSectionCustomResponse
Ett eget block, ritat på servern.
Fält
Typ
Beskrivning
blockKey
string
· nullable
Blockets nyckel. HTML:en ska ligga i ett element med `data-block="{blockKey}"`, som CSS:en är scopad till.
blockVersion
integer
Blocktypens publicerade version. Noll när en förhandsvisning ritar ett block som aldrig
publicerats; i en förhandsvisning är innehållet blockets utkast, som är nyare än versionen.
css
string
· nullable
Blockets CSS, där varje regel börjar med `[data-block="{blockKey}"]`. Samma för alla
sektioner med samma block och version — lägg den en gång per sida.
fields
object
· nullable
Fälten som data, nycklat på fältens nycklar, för den som vill rita blocket själv.
html
string
· nullable
Blockets HTML, redan tvättad på servern. Tvätta den ändå innan den ritas.
useShell
boolean
Om blocket ritas i standardomslaget, med sektionens `eyebrow`, `title`,
`subtitle`, `buttons`, `tone` och `spacing`. Utan omslaget ritar
HTML:en allt själv.
SectionEmbed
EcomSectionEmbedResponse
En `Embed`-sektion: en extern sida i en ram. `url` är alltid en absolut
https-adress, `title` ramens tillgängliga namn och `height` höjden i pixlar.
En `ProductSpotlight`-sektion: en artikel presenterad stort.
`layout` är `SideBySide`, `Banner` eller `Row`, `mediaPosition``Left` eller `Right`, och `documents``None`, `Selected` eller
`Category`. Vid `Selected` listas `documentIds`, vid `Category` artikelns
alla dokument i `documentCategory`; båda finns i produktsvarets `documents`.