Skip to main content
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.
A draft you no longer need can be removed with 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.
The response wraps the created styles in the standard envelope. Hold onto each 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.
Breaking change: GET /api/styles filter. The ReadyForExport query parameter is now a boolean (true/false) instead of an array of integers. Pass ReadyForExport=true to return only styles marked ready for export. Integrations that previously sent an integer list must switch to the boolean form.

Roles & permissions

Managing styles requires the styles 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: brand or season was omitted on create.
  • 400 validation_error.duplicate: the customId is already in use within the organisation.
  • 400 validation_error.invalid_state_transition: the requested state change is not allowed (e.g. attempting to revert published to unpublished).
  • 400 business_rule_error: DELETE on a style that is no longer unpublished.
  • 403: the id in the path belongs to another organisation.
  • 404: no style with the id in 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 test operation in a PATCH document failed, or the patch tried to change the style’s id.
  • 422: a PATCH operation 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.