Hoppa till innehållet

Cart

The cart hangs off the session, so there is no cart id to pass around. Anonymous sessions have carts too, and the cart survives signing in.

5 calls GET DELETE POST PATCH Base URL https://api.erp.fluit.cloud/ecom

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

GET /cart

Get shopping cart

Returns the current shopping cart contents with product details.

Responses

200 EcomCartResponse
Field Type
expiresAt string(date-time)
id string(uuid)
isTaxEnabled boolean
items CartItem[] · nullable
subTotal decimal
taxAmount decimal
taxPercent decimal
totalIncludingTax decimal
totalItems integer
uniqueItemCount integer
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.

Standard errors: 401 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/ecom/cart" \
  -H "Authorization: Bearer $SESSION_TOKEN" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"
Response 200
{
  "expiresAt": "2026-06-11T09:24:13.418",
  "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "isTaxEnabled": true,
  "items": [
    {
      "addedAt": "2026-06-11T09:24:13.418",
      "imageUrl": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "itemId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "itemNumber": "WIDGET-A",
      "lineTotal": "299.00",
      "lineTotalIncludingTax": "299.00",
      "name": "Widget A",
      "note": "string",
      "quantity": 42,
      "slug": "string",
      "stockStatus": "InStock",
      "taxAmount": "299.00",
      "unitPrice": "299.00"
    }
  ],
  "subTotal": "299.00",
  "taxAmount": "299.00",
  "taxPercent": "12.50",
  "totalIncludingTax": "299.00",
  "totalItems": 42,
  "uniqueItemCount": 42
}

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

DELETE /cart

Clear shopping cart

Removes all items from the shopping cart.

Responses

204 Empty body.
429 Rate limit exceeded. Wait the number of seconds given in Retry-After. The body is problem-shaped application/json, not application/problem+json. This API sends no X-RateLimit-* headers — the quota is discovered here.
  • Retry-After — Seconds to wait before retrying.

Standard errors: 401 404 Errors

Examples

curl
curl -X DELETE "https://api.erp.fluit.cloud/ecom/cart" \
  -H "Authorization: Bearer $SESSION_TOKEN" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"

Base URL https://api.erp.fluit.cloud/ecom.

POST /cart/items

Add item to cart

Adds an item to the shopping cart or increases quantity if already present.

Body required

Field Type
itemId string(uuid)
note string · nullable
quantity integer

Responses

200 AddToCartResponse
Field Type
cartId string(uuid)
totalItems integer
uniqueItemCount integer
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.

Standard errors: 400 401 Errors

Examples

curl
curl -X POST "https://api.erp.fluit.cloud/ecom/cart/items" \
  -H "Authorization: Bearer $SESSION_TOKEN" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web" \
  -H "Content-Type: application/json" \
  -d @body.json
Response 200
{
  "cartId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "totalItems": 42,
  "uniqueItemCount": 42
}

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

PATCH /cart/items/{itemId}

Update cart item quantity

Updates the quantity of an item in the shopping cart.

Path parameters

Field Type
itemId Required string(uuid)

Body required

Field Type
quantity integer

Responses

200 UpdateCartItemQuantityResponse
Field Type
cartId string(uuid)
totalItems integer
uniqueItemCount integer
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.

Standard errors: 400 401 404 Errors

Examples

curl
curl -X PATCH "https://api.erp.fluit.cloud/ecom/cart/items/{itemId}" \
  -H "Authorization: Bearer $SESSION_TOKEN" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web" \
  -H "Content-Type: application/json" \
  -d @body.json
Response 200
{
  "cartId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "totalItems": 42,
  "uniqueItemCount": 42
}

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

DELETE /cart/items/{itemId}

Remove item from cart

Removes an item from the shopping cart.

Path parameters

Field Type
itemId Required string(uuid)

Responses

200 RemoveFromCartResponse
Field Type
cartId string(uuid)
totalItems integer
uniqueItemCount integer
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.

Standard errors: 401 404 Errors

Examples

curl
curl -X DELETE "https://api.erp.fluit.cloud/ecom/cart/items/{itemId}" \
  -H "Authorization: Bearer $SESSION_TOKEN" \
  -H "X-Tenant-Id: $FLUIT_TENANT_ID" \
  -H "X-Channel: web"
Response 200
{
  "cartId": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "totalItems": 42,
  "uniqueItemCount": 42
}

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

Schemas

The objects this group's calls refer to. The field tables above go one level deep and link here rather than repeating the same schema on every endpoint.

CartItem

EcomCartItemResponse
Field Type Description
addedAt string(date-time)
imageUrl string · nullable
itemId string(uuid)
itemNumber string · nullable
lineTotal decimal
lineTotalIncludingTax decimal
name string · nullable
note string · nullable
quantity integer
slug string · nullable
stockStatus enum InStock LowStock OutOfStock BackOrder
taxAmount decimal
unitPrice decimal