ORDER-223 - Synchronise a commercial order

Overview

Recalculates the lines of a commercial order against the current catalog, and writes the result.

This is not a dry run: the order is modified in place. The response carries warnings only, never the resulting lines: read them back with ORDER-561.

The sections below describe the standard mode. Tenants running Real-Time Pricing differ on several points, listed in the last section.

What is rewritten on each synchronised line

Every value comes from the offer price the line already points to, and from its offer, product variant and product:

  • price block: unit price of the price tier matching the line quantity (the discounted price when one is set), from the offer price, which also gives the item per pack. Currency, packing type, quantity per item and minimum and maximum order quantities come from the offer. Product and shipping tax rates and codes come from the offer custom fields carrying the tax roles. Amounts excluding and including taxes, tax amounts and totals are recomputed with the tax calculation mode and rounding of the logistic order;
  • product snapshot, from the product: SKU, external ID, names, descriptions, brand, unit, tags, attributes, classification category and the finest navigation category;
  • variant snapshot, from the product variant: SKU, external ID, names, descriptions, EAN, MPN and attributes;
  • offer custom field snapshot: the values of the active custom fields of the offer.

What is rewritten on the order

On the commercial order: the synchronisation timestamp.

On each logistic order: the totals, the line count and the product count, recomputed from its lines. Shipping fees are recomputed only when the shipping matrix is active.

What is never changed

  • the set of lines: no line is added or removed, and each line keeps its offer price, even when another price now applies to the account;
  • the line quantity;
  • the line custom fields, kept as they are, including the value of a custom field deactivated since;
  • the order status, the customer user and customer account snapshots, the supplier and the addresses.

What the warnings cover

The warnings report a subset of what changes, not all of it:

  • a value diff for the unit price (F_W_026), the currency (F_W_027) and the tax fields (F_W_028);
  • a change of the shipping fees of a logistic order (F_W_026, with the logistic order as id);
  • an active mandatory line custom field without any value (F_W_025, not blocking). The line is synchronised anyway and its custom fields are left unchanged.

    Every other price field (amounts excluding taxes, tax amounts, totals, packing information and order quantity bounds) and every snapshot is recalculated without any warning. An empty response therefore does not mean that nothing changed.

Lines that are not synchronised

A line carrying a blocking warning is left untouched: not corrected, not deleted, not partially written. The other lines of the same order are synchronised normally.

The request fails with 400 only when no line survives: OR0038 when every blocking warning is F_W_022 (stock), OR0039 when every blocking warning is F_W_020 (item per pack), OR0034 otherwise.

The commercial order must be editable and not validated, and must come from an order-based checkout.

User scoping

Only dj-client: ACCOUNT is allowed (customer users).

Store scoping

The store context is resolved from dj-store (when provided) or from the tenant default store.

dj-store-view may further refine the store view context when applicable.

Visibility

Access and visibility rules apply to the order and its content, including ownership/permissions and catalog visibility (eligible catalog views).

Real-Time Pricing tenants

When the tenant runs with Real-Time Pricing, the lines are sent to an external pricing system, whose response replaces the catalog data on these points:

  • the set of lines comes from the pricing system: a line may be added (F_W_031) or removed (F_W_032). Logistic orders left without any line are deleted;
  • the quantity of each line comes from the pricing system, and a change is reported with F_W_029;
  • prices and stock come from the pricing system instead of the offer price;
  • the line custom fields returned by the pricing system overwrite the stored values, without any warning. The custom fields it does not return are kept. An invalid value is reported with F_W_025;
  • minimum, maximum and pack constraints are not enforced;
  • offer, offer stock, product and supplier status, and account eligibility are not checked. Catalog view visibility still applies.

Errors

This endpoint may return authentication, authorisation (permissions), validation, not found or conflict errors.

Standard Djust error codes apply.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Unique commercial order ID (REFERENCE only).
Business IDs or EXTERNAL_IDs are not supported for this path.

Headers
string
enum
required

Specifies the client type making the request.

  • OPERATOR: Platform operator user.

  • ACCOUNT: Customer account user.

  • SUPPLIER: Supplier managing orders.

Allowed:
string
required

API key required for authentication. Must be valid and linked to the requesting user.

string

(Optional) Store ID in multi-store environments.

string

(Optional) Store view ID in multi-store environments.

string

(Optional) Customer account ID in multi-account customer user.

Responses

401

Unauthorized (invalid or missing API key).

403

Forbidden. The caller is not allowed to synchronise this order.

404

Not found. The commercial order id does not exist.

409

Conflict. The order cannot be synchronised in its current state (e.g., already validated).

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json