Skip to content

Remove every line from your cart

DELETE
/api/v1/scent/cart/items
curl --request DELETE \
--url https://api-omni.linra.net/api/v1/scent/cart/items \
--header 'Authorization: Bearer <token>'
customerRef
string
<= 128 characters

Optional per-customer cart selector (max 128 chars) — omit for the bare partner-level cart.

The now-empty cart.

Media typeapplication/json
object
state
required
string
payload
required
details
object
payload
required
object
id
string format: uuid
partnerId
string format: uuid
customerRef
string
nullable
status
string
Allowed values: Open CheckedOut Abandoned
items
Array<object>
object
variantId
string format: uuid
quantity
integer
sku
string
sizeMl
integer
listPrice
number format: decimal
baseCurrency
string
lineGoodsVatAmount
number format: decimal
lineTotalWithVat
number format: decimal
rrp
number format: decimal
nullable
listPriceDisplay
number
nullable
lineGoodsVatAmountDisplay
number
nullable
lineTotalWithVatDisplay
number
nullable
rrpDisplay
number
nullable
availability
string
Allowed values: Available Limited Unavailable
availableQuantity
integer
nullable
insufficientForQuantity
boolean
lineCommission
number
nullable
lineCommissionVatAmount
number
nullable
lineNetAfterCommission
number
nullable
lineCommissionDisplay
number
nullable
lineCommissionVatAmountDisplay
number
nullable
lineNetAfterCommissionDisplay
number
nullable
marketing

Additive, purely presentational marketing data — never affects what you pay or what settlement computes. Appears ONLY when your account has the marketing-block feature enabled (ask your account manager if you don’t see it); when it’s off, the marketing key is entirely absent from the response, not merely present with empty fields.

object
currentPrice

The catalog’s current resolved price for this variant — for display alongside compareAtPrice, not necessarily identical to the partner-specific price shown elsewhere in this response.

number format: decimal
compareAtPrice

A “was” price to show as a strike-through, populated ONLY when there is a genuine reason to show one (a real historical price drop, or an account-level override) — never a fake or stale discount. Null means show no strike-through at all.

number format: decimal
nullable
discountPercent

Derived from currentPrice vs compareAtPrice. Null exactly when compareAtPrice is null. Currency-free (a ratio) — no display-currency equivalent.

number format: decimal
nullable
badges
Array<string>
Allowed values: LIMITED BACK_IN_STOCK NEW_ARRIVAL BEST_SELLER SAMPLE_AVAILABLE
currentPriceDisplay
number
nullable
compareAtPriceDisplay
number
nullable
pricedAt
string format: date-time
chargedWithVat
number format: decimal
commissionWithVat
number format: decimal
netAfterCommission
number format: decimal
displayCurrency
string
nullable
rate
number
nullable
chargedWithVatDisplay
number
nullable
commissionWithVatDisplay
number
nullable
netAfterCommissionDisplay
number
nullable
Example
{
"state": "SUCCESS",
"payload": {
"status": "Open",
"items": [
{
"baseCurrency": "SAR",
"availability": "Available",
"marketing": {
"badges": [
"LIMITED"
]
}
}
]
}
}

Too many requests — see the Rate limits guide. Retry after the Retry-After header (seconds).

Media typeapplication/json

The envelope every /api/v1 ERROR response uses. state carries the machine-readable error code (see the Errors guide).

object
state
required
string
payload
required

Always null on an error response.

object
details
object
Example
{
"state": "NOT_FOUND_ORDER",
"payload": null
}
Retry-After
integer

Seconds to wait before retrying.