When to use this. A style is the core product unit in Delogue PLM: it carries the design
brief, BOM, files, sample requests, and supplier assignment for one product. Use these endpoints
to create styles, manage their lifecycle (unpublished → published → delivered), update header
fields and custom fields, read a style’s sizes, and synchronise your collection with downstream
systems.
The workflow
A style moves through a predictable lifecycle. The API mirrors that journey step by step.1
Create the style
POST /api/styles with a brand, season, and style number. The style starts as unpublished,
an internal draft not yet visible to the supplier. GET /api/styles/{styleId} reads one
style back in the same shape as an entry in the GET /api/styles list.2
Assign colours and fields
Update the style with
PUT /api/styles/{styleId} to add colour variants (styleColors),
custom field values (customFields), and a supplier assignment. Use PUT /api/styles (bulk)
to update many styles in one request.3
Publish to the supplier
Change
state to published via PUT /api/styles/{styleId}. The supplier can now see the
style. Note: once published a style cannot revert to unpublished.4
Advance to delivered
When the style ships, set
state to delivered.DELETE /api/styles/{styleId}. Only an
unpublished style can be deleted: the call rejects a style in any other state with 400. The
style is soft-deleted and returned in the response; if it was the primary style for its style
number, the sibling with the highest id sharing that style number becomes the primary.
Walkthrough
Create a new style filed under a brand and season. The request body is an array: one or many styles are created in a single all-or-nothing transaction.id: it is the
stable key for all subsequent style operations.
Field reference
The fields that matter most when creating or updating a style:PUT /api/styles/{styleId} (single) and PUT /api/styles (bulk) are full replaces with
the same field semantics: every writable field is written as sent, and omitting a required
field (name, brand, season, state) returns 400. For the categories, styleColors
and properties collections, sending [], sending null or omitting the field all clear
it: restate any collection you want to keep. customFields is the one deliberate
exception: omitting it (or sending null) leaves all custom fields untouched, so mandatory
style-level values are not wiped by a request that did not restate them. Within
customFields, style-level values are full-replace (customFields: [] clears them all),
while per-colour values are upserted per colour: only the colours you list are set or
cleared, and unlisted colours keep their values even on a full PUT. For partial updates,
use PATCH /api/styles/{styleId} instead.Sizes
A style’s sizes come from the size range on its measurement chart.GET /api/styles/{styleId}/size-range returns that size range (id, name, customId, and the
chart’s unit, such as cm), or data: null when the style has no size range yet.
GET /api/styles/{styleId}/sizes returns the sizes themselves (only the active ones when the
chart is set to hide inactive sizes) and an empty list when the style has no size range or no
sizes.
Roles & permissions
Managing styles requires thestyles permission on a designer (brand) account:
typically CompanyAdmin or CompanyUser. Supplier accounts can read published styles assigned
to them but cannot create or delete styles.
When things go wrong
Errors use the standard envelope (status: "error", a code, and error.details[]). See
Errors & responses for the full list of codes and how to resolve them.
Common cases:
- 400
validation_error.required_field:brandorseasonwas omitted on create. - 400
validation_error.duplicate: thecustomIdis already in use within the organisation. - 400
validation_error.invalid_state_transition: the requestedstatechange is not allowed (e.g. attempting to revertpublishedtounpublished). - 400
business_rule_error:DELETEon a style that is no longerunpublished. - 403: the
idin the path belongs to another organisation. - 404: no style with the
idin the path exists.GET /api/styles/{styleId}also returns 404 for a style in your organisation that sits in a season you cannot access. - 409: a
testoperation in aPATCHdocument failed, or the patch tried to change the style’sid. - 422: a
PATCHoperation cannot be applied to the style.
What to call next
Seasons
Every style requires a season. Create or look up seasons before creating styles.
Style categories
Tag styles with categories for filtering and collection reporting.
Style items
Add materials, trims, and fabrics to a style as style items.
Style custom fields
Extend style data with organisation-specific custom fields.
Sample requests
Request and track development samples against a style.
Style files
Attach and organise a style’s files and file folders.
Style SKUs
Read and manage a style’s colour/size SKU matrix.
Style prices
Look up a style’s negotiated and calculated prices.
Size ranges
Set up the size ranges behind a style’s sizes.
Measurement charts
Read a style’s measurement chart, its lines, and files.
Supplier facilities
See which supplier facilities a style is produced at.