This is a html view of the json schema please take the json schema as reference DOWNLOAD THE JSON SCHEMA

Sales Order

Type: object

In Pilot A sales order is a document that provides the details of a customer's order and the terms of the transaction.

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

identifier is required if eventHeader.type is EVENT

Type: object

Type: const
Specific value: "EVENT"
Type: object

The following properties are required:

  • identifier

Type: object

Contains information about the sales order event, including the source, version, type and scopes.

Type: enum (of string)

The application source of this event

Must be one of:

  • "SPARK"
  • "OPCO"
  • "MARKETPLACE"
  • "SALES_ORDER_AUTOMATION"

Type: enum (of string)

The version of the json format event

Must be one of:

  • "v1"

Type: enum (of string)

The type of the event.

Must be one of:

  • "COMMAND"
  • "EVENT"

Example:

"COMMAND"

Type: array of string

Represents the scopes of the event. Each string in the array is a scope that the event pertains to. This field is used to specify which parts of the sales order the event is related to.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: string

The scopes of the sales order event, where possible values are:
- SALES_ORDER_HEADER
- SALES_ORDER_LINES this scope includes all line items in the sales order overriding the whole persisted object
- SALES_ORDER_LINES_PARTIAL This scope includes all line items that will be updated or deleted. Since SALES_ORDER_LINES supersedes this scope, it doesn’t make sense to send both.
- PAYMENT_METHODS

Must be one of:

  • "SALES_ORDER_HEADER"
  • "SALES_ORDER_LINES"
  • "PAYMENT_METHODS"
  • "SALES_ORDER_LINES_PARTIAL"

Type: object

The object holding the request information.


Example:

{
    "id": "1234567",
    "target": "SPARK"
}

Type: string

The unique identifier of the request provided by the slave system on the COMMAND message, and then also returned by the master into the EVENT message. It is used to correlate the EVENT message to the COMMAND message on the slave system source of a change request. It can be the technical id on the slave system, like the sparkOrderId when spark captures the sales order. This can be ignored by the other slave systems

Must be at least 1 characters long


Example:

"1234567"

Type: enum (of string)

The target system that the message is intended for from the master POV. In case the message is sent by a slave system the value of this field must be the same as source field. The same value will be returned by the master system in response message (COMMAND or EVENT).

Must be one of:

  • "SPARK"
  • "OPCO"
  • "MARKETPLACE"
  • "SALES_ORDER_AUTOMATION"

Example:

"SPARK"

Type: array of string

Optional list of the consumers to ignore the message.

Must contain a minimum of 1 items

All items must be unique

No Additional Items

Each item of this array must be:

Type: string

Must be at least 1 characters long

Type: object

Contains the unique identifier for the sales order. It should be present in all events except for the creation COMMAND message.

Type: string

This is identical to opCoOrderId
The sales order unique and immutable identifier.

Must be at least 1 characters long

Type: array

List of errors that occurred when the master is processing a request of changes. this will be sent back to the slave system in case of failure, via a COMMAND type message. In addition the master is expected a payload 'salesOrderHeader' or/and 'salesOrderLines' or/and 'payments' that the slave can use to correct his current state.

No Additional Items

Each item of this array must be:

Error

Type: object

The object holding the errors when master is processing a request of changes. this will be sent back to the slave system in case of failure, via a COMMAND type message. The message field should be a multilingual object that may be used to display to end users (Customer or Associate).


Example:

{
    "code": "TECHNICAL_FAILURE",
    "message": {
        "en-GB": "Contact abc@corporate.fr is unknown",
        "fr-FR": "Le contact abc@corporate.fr est inconnu"
    }
}

Type: enum (of string)

The error code

Must be one of:

  • "TECHNICAL_FAILURE"

Example:

"TECHNICAL_FAILURE"

Multilingual Object

Type: object

The error message


Example:

{
    "en-GB": "Contact abc@corporate.fr is unknown",
    "fr-FR": "Le contact abc@corporate.fr est inconnu"
}

Each additional property must conform to the following schema

Type: string

Type: object

Contains information about the sales order, including the account IDs, status, creation and modification dates.

Type: string

Represents the customer account id used as the soldTo in the sales Order

Must be at least 1 characters long

Type: string

Optional field, needed by OpCo organised with a regional model or commercial organisation. It can be used to filter or route based on the orgId.

Must be at least 1 characters long


Examples:

"org123"
"SNE"

Type: string

The parent order id generated by the spark plateform, used to group spark orders associated to the same customer order. This is specially used when an order contains marketplace products, in this case the sales order is split into one order by seller plus an other one for opco products.


Example:

"315627244210393088"

SalesChannel

Type: enum (of string)

The sales channel where the sales order is placed

Must be one of:

  • "ESHOP"
  • "MOBILE_APP"
  • "SYSTEM_TO_SYSTEM"
  • "STORE"
  • "BY_PHONE"
  • "DIGITAL_JOB_CENTER"
  • "SCAN_IN_STORE"
  • "SALES_ORDER_AUTOMATION"

Example:

"ESHOP"

Type: enum (of string)

This is the fixed list of possible status. No other status accepted

  • OPENED : The sales order is created and not yet validated.
  • ACCEPTED : The sales order is validated by the OPCO.
  • PARTIALLY_ACCEPTED : The sales order is partially validated by the OPCO, some line item are rejected or cancelled.
  • CANCELLED : The sales order is cancelled by the customer or the OPCO.
  • REJECTED : The sales order is rejected by the OPCO.
  • INVOICED : The sales order is invoiced by the OPCO to the customer.

Must be one of:

  • "OPENED"
  • "ACCEPTED"
  • "PARTIALLY_ACCEPTED"
  • "CANCELLED"
  • "REJECTED"
  • "INVOICED"
  • "PARTIALLY_INVOICED"

Type: array

List of documents attached to the sales order.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

A document attached to the sales order.

DocumentType

Type: enum (of string)

The type of the document supported on the sales order.

Must be one of:

  • "INVOICE"

Example:

"INVOICE"

Type: string

The id of the document

Must be at least 1 characters long


Example:

"4999569661752721026"

Type: stringFormat: date-time

Date on which the document has been created, in ISO 8601 format.

Must be at least 1 characters long


Example:

"2017-07-21T08:30:22.804Z"

Type: enum (of string) Default: "OPCO"

System/component where the document is to be sourced from.

Must be one of:

  • "OPCO"
  • "MARKETPLACE"

Examples:

"MARKETPLACE"
"OPCO"

Type: string

The actual file name that will be shown to the user

Must be at least 1 characters long


Examples:

"Note de crédit"
"Creditnota"

Type: string

The file extension of the document

Must match regular expression: ^\.[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)*$

Must be at least 1 characters long


Examples:

".pdf"
".csv"
".txt"

Type: array of string

Optional list of logistic order IDs to link this document (typically an invoice) to one or more logistic orders

No Additional Items

Each item of this array must be:


Example:

[
    "LO-92389013"
]

Type: stringFormat: date-time

Date of creation of the sales order document

Must be at least 1 characters long

Type: stringFormat: date-time

Date of last modification of the sales order document, when the sales order is created this date is the same as the placedOn date

Must be at least 1 characters long

LogisticDetails

Type: object

The sales order logistic details.

Type: object

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

if deliveryType is PICK_UP then the facilityId is required

Type: const
Specific value: "PICK_UP"
Type: object

The following properties are required:

  • facilityId
Type: object

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

if deliveryType is DELIVERY then the deliveryAddress is required

Type: const
Specific value: "DELIVERY"
Type: object

The following properties are required:

  • deliveryAddress

Type: enum (of string)

Type of delivery :

  • PICK UP : opco facility as the pick up destination ( branch, locker )

  • DELIVERY : client address as delivery destination

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Type: string

Unique identifier of the locker related to the 'facilityId' where the customer want pick up his order. The facilityId still the place where the order will be prepared


Example:

"395"

Type: string

Unique identifier of the facility used when delivery type is 'PICK_UP'.


Example:

"395"

Type: string

The id of the CDC from where this cart should be delivered. Needed to compute the right stock into PLP/PDP ....In case of multi CDC, the OpCo may have dynamic computation of the CDC and not only a static relation between branch and CDC.


Example:

"2Z1"

Type: object

The address used for delivery when logistic method is 'DELIVERY'

Address

Type: object

An address.

Type: string

OpCo internal system's unique identifier for the address.

Must be at least 1 characters long


Example:

"237564557868778"

Type: string

The first line of the address. Should contain Street name, no, street type. Usually the whole address can fit on one line

Must be at least 1 characters long


Example:

"235 Donaghy Ave"

Type: string

The second line of the address. Should complete the address with other details (e.g. floor number)

Must be at least 1 characters long

Type: string

The third line of the address. Should complete the address with other information. e.g. Apartment no

Must be at least 1 characters long

Type: string

The postal code

Must be at least 1 characters long


Example:

"V7P 1E2"

Type: string

The city in which the street address is, and which is in the adminDevison(region)

Must be at least 1 characters long


Example:

"North Vancouver"

Type: string

The region in which the locality is, and which is in the country.


Example:

"BC"

Type: string

The department in which the locality is, and which is in the country.

Must be at least 1 characters long


Example:

"BC"

Type: string

The ISO 3166-1 alpha-3 of the country

Must be at least 1 characters long


Example:

"CAN"

DeliveryAddress

Type: object

Represents additional fields of the delivery address

Type: string

Extra description about the address

Must be at least 1 characters long


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name

Must be at least 1 characters long


Example:

"Easy Electric"

Type: string

Address contact's first name

Must be at least 1 characters long


Example:

"John"

Type: string

Address contact's last name

Must be at least 1 characters long


Example:

"Doe"

Type: string

In Pilot Address contact's middle name

Must be at least 1 characters long


Example:

"William"

Type: string

Address contact's Phone number (The phone number of the person receiving the shipment)

Must be at least 1 characters long


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer

Must be at least 1 characters long


Example:

"Reference 123"

Example:

{
    "addressLine1": "chaussee Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2",
    "companyName": "Easy Electric",
    "contactFirstName": "John",
    "contactLastName": "Doe",
    "contactPhoneNumber": "+333746573829",
    "deliveryIndication": "Please leave the parcel next the front door.",
    "customerReference": "Ref 364361"
}

LogisticOptionOrLogisticScenario

Type: object

The logistic option chosen by the customer during the checkout flow.

Type: string

The code of the logistic option or logistic scenario.


Example:

"STANDARD"

Type: string

The title of the logistic option or logistic scenario to be seen to the end user during the checkout.


Example:

"STANDARD delivery"

Type: string

The description of the logistic option or logistic scenario to be seen to the end user during the checkout.


Example:

"choose this option if you want a fast delivery"

Price

Type: object

The cost of this logistic option or logistic scenario displayed to the end user during the checkout.


Example:

{
    "amount": 0,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

LogisticOptionOrLogisticScenario

Type: object

The logistic scenario chosen by the customer during the checkout flow.

Type: string

The code of the logistic option or logistic scenario.


Example:

"STANDARD"

Type: string

The title of the logistic option or logistic scenario to be seen to the end user during the checkout.


Example:

"STANDARD delivery"

Type: string

The description of the logistic option or logistic scenario to be seen to the end user during the checkout.


Example:

"choose this option if you want a fast delivery"

Price

Type: object

The cost of this logistic option or logistic scenario displayed to the end user during the checkout.


Example:

{
    "amount": 0,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: object

Contains information about the price of the sales order.

Price

Type: object

Total price of the logistic scenario including promotions, surcharges, shipping cost and taxes (vat)


Example:

{
    "amount": 0,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Total price of the sales order including promotions, shipping cost and taxes where surcharges is true


Example:

{
    "amount": 0,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

The total amount of all the items of the order after applying promotions,shipping cost and coupons, without taxes.


Example:

{
    "amount": 13800,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: array

The total amount of each tax, grouped by (type, percentage) to cover the case of different percentages for the same taxe type.

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains the tax informations with both percentage or exact amount as preferable.

Type: object

A tax with a fixed amount.

No Additional Properties

Type: object

A tax represented by a percentage.

No Additional Properties

Type: object

A tax with a code, fixed amount, rate. Used to describe a marketplace tax.

No Additional Properties

Price

Type: object

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: string

Type of tax which is applicable to the underlying product.


Example:

"VAT"

Type: boolean Default: false

This flag determines if the tax is a surcharge to be added to netPrice/promotionalNetPrice before applying Tax. The Tax computation happens on top of ((netPrice or promotionalNetPrice)+surcharges)


Example:

true

Type: number

The percentage of the net price


Example:

20.0

Type: string

A tax code which identifies the tax applied to this item. It can be used to carry more details than the high level tax type information.


Examples:

"VAT_5_5"
"VAT_10"
"VAT_20"

Type: boolean Default: false

This flag determines if the tax applies to shipping costs.
Example: option and scenario costs.


Example:

[
    {
        "type": "VAT",
        "isSurcharge": false,
        "taxAmount": {
            "amount": 12000,
            "scale": 4,
            "currency": "EUR"
        },
        "percentage": 20
    },
    {
        "type": "VAT",
        "isSurcharge": false,
        "taxAmount": {
            "amount": 100,
            "scale": 4,
            "currency": "EUR"
        },
        "percentage": 5.5
    },
    {
        "type": "ECOTAXE",
        "isSurcharge": true,
        "taxAmount": {
            "amount": 260,
            "scale": 2,
            "currency": "EUR"
        }
    }
]

Type: array

List of coupons applied to the sales order.

No Additional Items

Each item of this array must be:

Coupon

Type: object

Type: string

The coupon code.

Must be at least 1 characters long

Price

Type: object

The negavitve amount of the discount

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: array

The list of contributors that contribute on the creation of the cart or the sales order (The creator of the cart, the validator of the cart ...). That can be contact or an associate

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

Example:

[
    {
        "fullName": "John Smith",
        "email": "john.smith@mycompany.com",
        "creator": true
    },
    {
        "fullName": "John Validator",
        "email": "john.validator@mycompany.com"
    }
]

Type: string

The full name of a contributor.


Example:

"John Smith"

Type: string

The email of a contributor. this is the identifier of the user on spark


Example:

"john.smith@mycompany.com"

Type: boolean Default: "false"

A boolean that when is true means that the current contributor is the creator of the cart from where this sales order is created.


Example:

"false"

Type: boolean Default: "false"

A boolean that when is true means that the current contributor has placed the sales order (transformed the cart to an order).


Example:

"false"

Type: boolean Default: "false"

A boolean that when is true means that the current contributor has validated the cart during the approval workflow.


Example:

"false"

Type: boolean Default: "false"

A boolean that when is true means that the current contributor is an associate doing the action on behalf of the end user.


Example:

"false"

Address

Type: object

The billing address


Example:

{
    "opCoAddressId": "13543678",
    "addressLine1": "chaussee Verlinden 22",
    "addressLine2": "1st floor",
    "addressLine3": "Apparment 2",
    "postalCode": "0287",
    "city": "Bruges",
    "region": "Frandre",
    "department": "N/A",
    "country": "BEL"
}

Type: string

OpCo internal system's unique identifier for the address.

Must be at least 1 characters long


Example:

"237564557868778"

Type: string

The first line of the address. Should contain Street name, no, street type. Usually the whole address can fit on one line

Must be at least 1 characters long


Example:

"235 Donaghy Ave"

Type: string

The second line of the address. Should complete the address with other details (e.g. floor number)

Must be at least 1 characters long

Type: string

The third line of the address. Should complete the address with other information. e.g. Apartment no

Must be at least 1 characters long

Type: string

The postal code

Must be at least 1 characters long


Example:

"V7P 1E2"

Type: string

The city in which the street address is, and which is in the adminDevison(region)

Must be at least 1 characters long


Example:

"North Vancouver"

Type: string

The region in which the locality is, and which is in the country.


Example:

"BC"

Type: string

The department in which the locality is, and which is in the country.

Must be at least 1 characters long


Example:

"BC"

Type: string

The ISO 3166-1 alpha-3 of the country

Must be at least 1 characters long


Example:

"CAN"

Type: array

List of special price agreements activated in this sales order

No Additional Items

Each item of this array must be:

SpecialPriceAgreement

Type: object

A special price agreement associated to an order or a price

Type: string

The special price agreement identifier in the OpCo back-end system


Example:

"SPA-984"

Type: string

The title of the special price agreement


Example:

"Special price agreement 984"

Example:

[
    {
        "id": "SPA-876",
        "title": "Special price agreement 876"
    },
    {
        "id": "SPA-547",
        "title": "Special price agreement 547"
    }
]

Type: string

The IETF BCP 47 language tag of the locale (language and country) as used by the customer on spark front-end for this sales order.


Example:

"fr-FR"

Type: object

Additional information for the sales order.

Type: string

Order reference for the customer (ex: customer purchase order id).


Example:

"XDFG334322"

Cart

Type: object

The cart used to place this sales order

Type: string

The Cart or the open order identifier at opco backend system level


Example:

"1234"

Type: string

The Cart or the open order identifier at spark level. When known it should always be present throughout the sales order lifecycle. This is mandatory on online orders for abandoned cart feature.


Example:

"1234"

Type: string

The name of the cart used to place this sales order


Example:

"Site 1 Cart"

Project

Type: object

[DEPRECATED] The project associated to the sales order

Type: string

The identifier of the project

Type: string

The name of the project to display to the customer

Quote

Type: object

The quote associated to the sales order

Type: string

The identifier of the quote


Examples:

"4999569661752721026"
"4999569661_ORG1"

Type: string

The quote code provided by the OpCo for the Customer. If this field is provided, spark will display it to the customer instead of the quoteId


Examples:

"49995666"
"4999569661"

Type: string

The name of the Quote.

Type: string

The version of this quote. Used by some opco system to select the right version of the quote.


Example:

"1"

Type: enum (of string) Default: "STANDARD"

The type of the quote. STANDARD for normal quotes, BLANKET for quote representing blanket orders. Default value if not present is STANDARD.

Must be one of:

  • "STANDARD"
  • "BLANKET"

Example:

"STANDARD"

Type: string

Contact first name for this sales order. This field is added by the customer to override the same field into delivery address.


Example:

"Robert"

Type: string

Contact last name for this sales order. This field is added by the customer to override the same field into delivery address.


Example:

"Fox"

Type: string

In Pilot Contact middle name for this sales order. This field is added by the customer to override the same field into delivery address.


Example:

"William"

Type: string

Contact phone number for this sales order. This field is added by the customer to override the same field into delivery address.


Example:

"+3333333333"

Type: string

Contact email for this sales order.


Example:

"john.doe@sonepar.com"

Type: boolean

Choice of showing or not the price on the logistics note.


Example:

false

Type: array of string

An optional emails list that will be used as additional recipients to send the confirmation email of the sales order

No Additional Items

Each item of this array must be:

Type: array

The notes related to the sales order.

No Additional Items

Each item of this array must be:

Note

Type: object

Object representing a note

Type: boolean

Choice of showing or not the note on the invoice.


Example:

true

Type: boolean

Choice of showing or not the note on the logistics notes.


Example:

false

Type: string

Note added to cart


Example:

"Morning delivery preference"

Example:

[
    {
        "noteOnInvoice": true,
        "noteOnLogisticsNotes": false,
        "noteText": "Morning delivery preference"
    }
]

Type: array

Additional order information filled by the customer when placing the sales order or added by the OpCo system during the sales order processing.

No Additional Items

Each item of this array must be:

AdditionalReference

Type: object

Object representing an additional reference.

Type: string

Name of the additional reference


Example:

"warehouseName"

Type: string

Value of the additional reference filled by the customer


Example:

"P570629"

Example:

[
    {
        "name": "warehouseName",
        "value": "Z.I. Fourviere"
    }
]

Type: object

This property if present acts as a flag to identify an order as a marketplace one. It contains all marketplace specific order properties.

Type: string

Identifier of the purchase order to be sent by the OpCo to the Seller.
It is not to be confused with the customer purchaseOrder defined as part of the additional order information, which is an an optional identifier of the sales order as referenced by the customer.

Type: object

Contains seller information

Type: string

OpCo SellerId, as provided operator internal id for this seller.

Type: string

Seller name

Type: array

An array of sales line items part of this sales order. This scope overrides all the existing line items of the sales order, delta mode is not supported here, for updates and deletes use salesOrderLinesPartial

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

SalesOrderLine

Type: object

A sales order line.

Type: string

The unique identifier of the sales order line.

Must be at least 1 characters long

Product

Type: object

A minimal product data to be able to display the product even in the case the product is deleted.

Type: string

A unique identifier of the product.
- In case of promotion lineItem this should contain the id of the promotion.


Example:

"9554961192345"

Type: string

global trade identifier number e.g EAN, UPC etc


Example:

"4012196097579"

Type: string

This is the local product id could be specific to opcos, most cases it is same as manufacturer id but could be different as well


Examples:

"732D16"
"9554961192345"

Type: string

This is the equivalent of manufacturer PID and used for search and identifying the product


Example:

"1360167"

Type: string

manufacturer type description identifier, represents the references


Example:

"2037 12-20 LGR"

Type: string

the customer ref for the product, Supported by all special chars respecting the pattern

Must match regular expression: [a-zA-Z0-9_.+@() /$"=#,;'£\\:°*&%-]+

Type: string

Short description of the product.

For PRODUCT lineItems, it is sourced from the product.identifier.productTitle field.


Example:

"LIGHT 274498 Metal Halide Lamp"

Type: string

Brand name.

For PRODUCT lineItems, it is sourced from the product.identifier.brandName field.


Example:

"SASS"

Type: integer

The product ordered quantity.


Example:

10

Type: string

The identifier of the quote line item into the opco side for the case the sales order is created from a quote. It can be an alpha numeric.


Examples:

"4999569661752721026"
"ITEM1"

Type: enum (of string) Default: "PRODUCT"

The type of the line item, default is PRODUCT.
- PRODUCT when the line item is a product known by spark - OFFLINE_PRODUCT when the line item is a product unknown by spark
- PROMOTION when the line item is a cart promotion
- SERVICE when the line item is an extra cost or an additional service

Must be one of:

  • "PRODUCT"
  • "OFFLINE_PRODUCT"
  • "PROMOTION"
  • "SERVICE"

Example:

"PRODUCT"

Type: array

The split of the quantity of the line item in different statuses.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

SalesOrderLineQuantityStatus

Type: object

The sales order line quantity in a specific status.


Examples:

{
    "status": "ACCEPTED",
    "quantity": 10,
    "isDateChosenByCustomer": true,
    "expectedDeliveryDate": "2023-10-15T08:30:22.804Z",
    "expectedLatestDeliveryDate": "2023-10-20T08:30:22.804Z"
}
{
    "status": "BACK_ORDERED",
    "quantity": 5
}

Type: enum (of string)

The status of the line item quantity.

Must be one of:

  • "OPENED"
  • "ACCEPTED"
  • "CANCELLED"
  • "BACK_ORDERED"
  • "REJECTED"

Type: integer

The quantity of the status.


Example:

10

Type: boolean Default: false

Flag to indicate if the date is chosen by the customer


Example:

true

Type: stringFormat: date-time

The expected delivery date of this line item quantity.


Example:

"2017-07-21T08:30:22.804Z"

Type: stringFormat: date-time

Used only on Marketplace context The expected latest delivery date and time of this line item quantity.


Example:

"2017-07-21T08:30:22.804Z"

Example:

[
    {
        "ACCEPTED": {
            "quantity": 10,
            "isDateChosenByCustomer": true,
            "expectedDeliveryDate": "2017-07-21T08:30:22.804Z"
        }
    },
    {
        "BACK_ORDERED": {
            "quantity": 5
        }
    },
    {
        "CANCELLED": {
            "quantity": 5
        }
    }
]

PromotionDetails

Type: object

Details of the promotion applied to this line item


Example:

{
    "title": "Achete 3 articles et 2 gartuit",
    "alternateProductId": "767867",
    "campaignId": "234"
}

Type: string

A readable description explaining the promotions eligibility received from opco, Send the title according to chosen language


Example:

"achetez 3 articles et obtenez 10% de réduction"

Type: string

Campaign id to which this promotion is associated to relative to the standard product id


Example:

"7575785"

Type: string

The alternate product id (Since promotions in cebeo is handled by maintaining 2 different id for normal and promotional product), might not be required by other opco


Example:

"9898989"

Prices

Type: object

Contains the detail of prices related to the current product and line item

Price

Type: object

This is the product unit price that the customer will pay to the OPCO, without taxes, before applying promotion.


Example:

{
    "amount": 1000,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

PriceContext

Type: object

Details about the type of this price


Example:

{
    "type": "SPECIAL_PRICE_AGREEMENT",
    "id": "SPA-876",
    "title": "Special price agreement 876"
}

Type: string

An identifier of the contract or project related to this price


Examples:

"SPA-984"
"PROJECT-7463"

Type: string

A short title for this price


Examples:

"Special price agreement 984"
"Contract schneider"

Type: enum (of string)

The type of this price

Must be one of:

  • "SPECIAL_PRICE_AGREEMENT"
  • "PROJECT"
  • "STANDARD"
  • "MARKETPLACE"

Examples:

"SPECIAL_PRICE_AGREEMENT"
"MARKETPLACE"

Type: number

Percentage of discount on net price, If we have this value then promotionalNetPrice is needed also


Example:

10.0

Price

Type: object

Precomputed promotional price on top of netPrice, This is the case when promotional percentage is not present and the promotional price is directly computed and available to show


Example:

{
    "amount": 200,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Precomputed quote price on top of netPrice. This is the case when the cart is created from a quote and the OPCO give a preferential price for the product.


Example:

{
    "amount": 900,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: array

List of taxes to be applied to net price or promotional net price in case of promotion

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains the tax informations with both percentage or exact amount as preferable.

Type: object

A tax with a fixed amount.

No Additional Properties

Type: object

A tax represented by a percentage.

No Additional Properties

Type: object

A tax with a code, fixed amount, rate. Used to describe a marketplace tax.

No Additional Properties

Price

Type: object

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: string

Type of tax which is applicable to the underlying product.


Example:

"VAT"

Type: boolean Default: false

This flag determines if the tax is a surcharge to be added to netPrice/promotionalNetPrice before applying Tax. The Tax computation happens on top of ((netPrice or promotionalNetPrice)+surcharges)


Example:

true

Type: number

The percentage of the net price


Example:

20.0

Type: string

A tax code which identifies the tax applied to this item. It can be used to carry more details than the high level tax type information.


Examples:

"VAT_5_5"
"VAT_10"
"VAT_20"

Type: boolean Default: false

This flag determines if the tax applies to shipping costs.
Example: option and scenario costs.


Example:

[
    {
        "type": "VAT",
        "isSurcharge": false,
        "percentage": 20.0
    }
]

Price

Type: object

This is the line item price that the customer will pay to the OPCO, without taxes, after applying promotion. Equals (unitPrice * quantity) for items without promotion or (discountedUnitPrice * quantity) for items with promotion


Example:

{
    "amount": 1800,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

This is the shipping cost for this line item, provided when known. The logistic scenario cost should be equal to the sum of all lineItems shipping cost from all (non canceled) shipping group.


Example:

{
    "amount": 200,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Item taxes

Type: array

This is the list of taxes applicable to this lineItem, amounts are total taxes amounts for this lineItem. It includes surchages (isSurchage:true), taxes on the (itemPrice + surchages), taxes on shippingCosts (isShipping:true).

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains the tax informations with both percentage or exact amount as preferable.

Type: object

A tax with a fixed amount.

No Additional Properties

Type: object

A tax represented by a percentage.

No Additional Properties

Type: object

A tax with a code, fixed amount, rate. Used to describe a marketplace tax.

No Additional Properties

Price

Type: object

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: string

Type of tax which is applicable to the underlying product.


Example:

"VAT"

Type: boolean Default: false

This flag determines if the tax is a surcharge to be added to netPrice/promotionalNetPrice before applying Tax. The Tax computation happens on top of ((netPrice or promotionalNetPrice)+surcharges)


Example:

true

Type: number

The percentage of the net price


Example:

20.0

Type: string

A tax code which identifies the tax applied to this item. It can be used to carry more details than the high level tax type information.


Examples:

"VAT_5_5"
"VAT_10"
"VAT_20"

Type: boolean Default: false

This flag determines if the tax applies to shipping costs.
Example: option and scenario costs.


Example:

[
    {
        "type": "VAT",
        "code": "tax-fra-55",
        "taxAmount": {
            "amount": 550,
            "scale": 2,
            "currency": "EUR"
        },
        "percentage": 5.5
    },
    {
        "type": "ECOTAXE1",
        "isSurcharge": true,
        "taxAmount": {
            "amount": 1500,
            "scale": 2,
            "currency": "EUR"
        }
    },
    {
        "type": "ECOTAXE2",
        "isSurcharge": true,
        "taxAmount": {
            "amount": 500,
            "scale": 2,
            "currency": "EUR"
        }
    },
    {
        "type": "VAT",
        "code": "tax-fra-20",
        "isShipping": true,
        "taxAmount": {
            "amount": 20,
            "scale": 2,
            "currency": "EUR"
        },
        "percentage": 20
    }
]

Type: string

The comment is added to line item by the customer during the sales order placement. It is used by the customer to provide any information to be received by their own team when the sales order is delivered.


Example:

"Please place this item on 3rd floor"

Type: array of string

A list of lineItem ids related to the current line item.
Can be used in case of PROMOTION lineItem, to refer to PRODUCT lineItem impacted by this promotion.

No Additional Items

Each item of this array must be:

Type: string
Must match regular expression: ^[0-9]+$

Example:

[
    "96122268053639168",
    "96121848778428416"
]

Type: object

Contains marketplace properties specific to this lineItems, once set these are assumed to be immutable.

Type: string

The identifier of this lineItem in the opco purchase order

Price

Type: object

Purchase unit price (computed by the marketplace platform from the commission rate and the provided offer price)

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Purchase order line's commission fee. Equals (itemPrice + surchages) * commission_rate

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Purchase order line's commission fee on shipping. Equals line item shippingCost * commision_rate_on_shipping

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Purchase order line's price excluding shipping charges. Equals (itemPrice + surchages) - purchaseCommissionOnPrice

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Purchase order line's shipping charges. Equals line item shippingCost - purchaseCommissionOnShipping

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: array

Purchase order line's taxes. The list of taxes matches the itemTaxes but for the purchase order

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains the tax informations with both percentage or exact amount as preferable.

Price

Type: object

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: string

Type of tax which is applicable to the underlying product.


Example:

"VAT"

Type: boolean Default: false

This flag determines if the tax is a surcharge to be added to netPrice/promotionalNetPrice before applying Tax. The Tax computation happens on top of ((netPrice or promotionalNetPrice)+surcharges)


Example:

true

Type: number

The percentage of the net price


Example:

20.0

Type: string

A tax code which identifies the tax applied to this item. It can be used to carry more details than the high level tax type information.


Examples:

"VAT_5_5"
"VAT_10"
"VAT_20"

Type: boolean Default: false

This flag determines if the tax applies to shipping costs.
Example: option and scenario costs.

Type: string

The id of a cut group, groups several cutting lines


Example:

"10"

Type: string

Cutting line identifier, group of elements with the same cutting length


Example:

"1"

LogisticDetails

Type: object

The sales order line item logistic details that will override the sales order logistic details.

Type: object

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

if deliveryType is PICK_UP then the facilityId is required

Type: const
Specific value: "PICK_UP"
Type: object

The following properties are required:

  • facilityId
Type: object

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

if deliveryType is DELIVERY then the deliveryAddress is required

Type: const
Specific value: "DELIVERY"
Type: object

The following properties are required:

  • deliveryAddress

Type: enum (of string)

Type of delivery :

  • PICK UP : opco facility as the pick up destination ( branch, locker )

  • DELIVERY : client address as delivery destination

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Type: string

Unique identifier of the locker related to the 'facilityId' where the customer want pick up his order. The facilityId still the place where the order will be prepared


Example:

"395"

Type: string

Unique identifier of the facility used when delivery type is 'PICK_UP'.


Example:

"395"

Type: string

The id of the CDC from where this cart should be delivered. Needed to compute the right stock into PLP/PDP ....In case of multi CDC, the OpCo may have dynamic computation of the CDC and not only a static relation between branch and CDC.


Example:

"2Z1"

Type: object

The address used for delivery when logistic method is 'DELIVERY'

Address

Type: object

An address.

Type: string

OpCo internal system's unique identifier for the address.

Must be at least 1 characters long


Example:

"237564557868778"

Type: string

The first line of the address. Should contain Street name, no, street type. Usually the whole address can fit on one line

Must be at least 1 characters long


Example:

"235 Donaghy Ave"

Type: string

The second line of the address. Should complete the address with other details (e.g. floor number)

Must be at least 1 characters long

Type: string

The third line of the address. Should complete the address with other information. e.g. Apartment no

Must be at least 1 characters long

Type: string

The postal code

Must be at least 1 characters long


Example:

"V7P 1E2"

Type: string

The city in which the street address is, and which is in the adminDevison(region)

Must be at least 1 characters long


Example:

"North Vancouver"

Type: string

The region in which the locality is, and which is in the country.


Example:

"BC"

Type: string

The department in which the locality is, and which is in the country.

Must be at least 1 characters long


Example:

"BC"

Type: string

The ISO 3166-1 alpha-3 of the country

Must be at least 1 characters long


Example:

"CAN"

DeliveryAddress

Type: object

Represents additional fields of the delivery address

Type: string

Extra description about the address

Must be at least 1 characters long


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name

Must be at least 1 characters long


Example:

"Easy Electric"

Type: string

Address contact's first name

Must be at least 1 characters long


Example:

"John"

Type: string

Address contact's last name

Must be at least 1 characters long


Example:

"Doe"

Type: string

In Pilot Address contact's middle name

Must be at least 1 characters long


Example:

"William"

Type: string

Address contact's Phone number (The phone number of the person receiving the shipment)

Must be at least 1 characters long


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer

Must be at least 1 characters long


Example:

"Reference 123"

Example:

{
    "addressLine1": "chaussee Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2",
    "companyName": "Easy Electric",
    "contactFirstName": "John",
    "contactLastName": "Doe",
    "contactPhoneNumber": "+333746573829",
    "deliveryIndication": "Please leave the parcel next the front door.",
    "customerReference": "Ref 364361"
}

Type: array

An array of sales line items part of this sales order.
To update a line, the line must be sent with the updated values.
To delete a line, the line must be sent with the status DELETED.
Delta mode is supported, only the lines that are sent are updated, the rest are kept as is.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

SalesOrderLine

Type: object

A sales order line.

Type: string

The unique identifier of the sales order line.

Must be at least 1 characters long

Product

Type: object

A minimal product data to be able to display the product even in the case the product is deleted.

Type: string

A unique identifier of the product.
- In case of promotion lineItem this should contain the id of the promotion.


Example:

"9554961192345"

Type: string

global trade identifier number e.g EAN, UPC etc


Example:

"4012196097579"

Type: string

This is the local product id could be specific to opcos, most cases it is same as manufacturer id but could be different as well


Examples:

"732D16"
"9554961192345"

Type: string

This is the equivalent of manufacturer PID and used for search and identifying the product


Example:

"1360167"

Type: string

manufacturer type description identifier, represents the references


Example:

"2037 12-20 LGR"

Type: string

the customer ref for the product, Supported by all special chars respecting the pattern

Must match regular expression: [a-zA-Z0-9_.+@() /$"=#,;'£\\:°*&%-]+

Type: string

Short description of the product.

For PRODUCT lineItems, it is sourced from the product.identifier.productTitle field.


Example:

"LIGHT 274498 Metal Halide Lamp"

Type: string

Brand name.

For PRODUCT lineItems, it is sourced from the product.identifier.brandName field.


Example:

"SASS"

Type: integer

The product ordered quantity.


Example:

10

Type: string

The identifier of the quote line item into the opco side for the case the sales order is created from a quote. It can be an alpha numeric.


Examples:

"4999569661752721026"
"ITEM1"

Type: enum (of string) Default: "PRODUCT"

The type of the line item, default is PRODUCT.
- PRODUCT when the line item is a product known by spark - OFFLINE_PRODUCT when the line item is a product unknown by spark
- PROMOTION when the line item is a cart promotion
- SERVICE when the line item is an extra cost or an additional service

Must be one of:

  • "PRODUCT"
  • "OFFLINE_PRODUCT"
  • "PROMOTION"
  • "SERVICE"

Example:

"PRODUCT"

Type: array

The split of the quantity of the line item in different statuses.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

SalesOrderLineQuantityStatus

Type: object

The sales order line quantity in a specific status.


Examples:

{
    "status": "ACCEPTED",
    "quantity": 10,
    "isDateChosenByCustomer": true,
    "expectedDeliveryDate": "2023-10-15T08:30:22.804Z",
    "expectedLatestDeliveryDate": "2023-10-20T08:30:22.804Z"
}
{
    "status": "BACK_ORDERED",
    "quantity": 5
}

Type: enum (of string)

The status of the line item quantity.

Must be one of:

  • "OPENED"
  • "ACCEPTED"
  • "CANCELLED"
  • "BACK_ORDERED"
  • "REJECTED"

Type: boolean Default: false

Flag to indicate if the date is chosen by the customer


Example:

true

Type: stringFormat: date-time

The expected delivery date of this line item quantity.


Example:

"2017-07-21T08:30:22.804Z"

Type: stringFormat: date-time

Used only on Marketplace context The expected latest delivery date and time of this line item quantity.


Example:

"2017-07-21T08:30:22.804Z"

Example:

[
    {
        "ACCEPTED": {
            "quantity": 10,
            "isDateChosenByCustomer": true,
            "expectedDeliveryDate": "2017-07-21T08:30:22.804Z"
        }
    },
    {
        "BACK_ORDERED": {
            "quantity": 5
        }
    },
    {
        "CANCELLED": {
            "quantity": 5
        }
    }
]

PromotionDetails

Type: object

Details of the promotion applied to this line item


Example:

{
    "title": "Achete 3 articles et 2 gartuit",
    "alternateProductId": "767867",
    "campaignId": "234"
}

Type: string

A readable description explaining the promotions eligibility received from opco, Send the title according to chosen language


Example:

"achetez 3 articles et obtenez 10% de réduction"

Type: string

Campaign id to which this promotion is associated to relative to the standard product id


Example:

"7575785"

Type: string

The alternate product id (Since promotions in cebeo is handled by maintaining 2 different id for normal and promotional product), might not be required by other opco


Example:

"9898989"

Prices

Type: object

Contains the detail of prices related to the current product and line item

Price

Type: object

This is the product unit price that the customer will pay to the OPCO, without taxes, before applying promotion.


Example:

{
    "amount": 1000,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

PriceContext

Type: object

Details about the type of this price


Example:

{
    "type": "SPECIAL_PRICE_AGREEMENT",
    "id": "SPA-876",
    "title": "Special price agreement 876"
}

Type: string

An identifier of the contract or project related to this price


Examples:

"SPA-984"
"PROJECT-7463"

Type: string

A short title for this price


Examples:

"Special price agreement 984"
"Contract schneider"

Type: enum (of string)

The type of this price

Must be one of:

  • "SPECIAL_PRICE_AGREEMENT"
  • "PROJECT"
  • "STANDARD"
  • "MARKETPLACE"

Examples:

"SPECIAL_PRICE_AGREEMENT"
"MARKETPLACE"

Type: number

Percentage of discount on net price, If we have this value then promotionalNetPrice is needed also


Example:

10.0

Price

Type: object

Precomputed promotional price on top of netPrice, This is the case when promotional percentage is not present and the promotional price is directly computed and available to show


Example:

{
    "amount": 200,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Precomputed quote price on top of netPrice. This is the case when the cart is created from a quote and the OPCO give a preferential price for the product.


Example:

{
    "amount": 900,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: array

List of taxes to be applied to net price or promotional net price in case of promotion

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains the tax informations with both percentage or exact amount as preferable.

Price

Type: object

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: string

Type of tax which is applicable to the underlying product.


Example:

"VAT"

Type: boolean Default: false

This flag determines if the tax is a surcharge to be added to netPrice/promotionalNetPrice before applying Tax. The Tax computation happens on top of ((netPrice or promotionalNetPrice)+surcharges)


Example:

true

Type: number

The percentage of the net price


Example:

20.0

Type: string

A tax code which identifies the tax applied to this item. It can be used to carry more details than the high level tax type information.


Examples:

"VAT_5_5"
"VAT_10"
"VAT_20"

Type: boolean Default: false

This flag determines if the tax applies to shipping costs.
Example: option and scenario costs.


Example:

[
    {
        "type": "VAT",
        "isSurcharge": false,
        "percentage": 20.0
    }
]

Price

Type: object

This is the line item price that the customer will pay to the OPCO, without taxes, after applying promotion. Equals (unitPrice * quantity) for items without promotion or (discountedUnitPrice * quantity) for items with promotion


Example:

{
    "amount": 1800,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

This is the shipping cost for this line item, provided when known. The logistic scenario cost should be equal to the sum of all lineItems shipping cost from all (non canceled) shipping group.


Example:

{
    "amount": 200,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Item taxes

Type: array

This is the list of taxes applicable to this lineItem, amounts are total taxes amounts for this lineItem. It includes surchages (isSurchage:true), taxes on the (itemPrice + surchages), taxes on shippingCosts (isShipping:true).

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains the tax informations with both percentage or exact amount as preferable.

Price

Type: object

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: string

Type of tax which is applicable to the underlying product.


Example:

"VAT"

Type: boolean Default: false

This flag determines if the tax is a surcharge to be added to netPrice/promotionalNetPrice before applying Tax. The Tax computation happens on top of ((netPrice or promotionalNetPrice)+surcharges)


Example:

true

Type: number

The percentage of the net price


Example:

20.0

Type: string

A tax code which identifies the tax applied to this item. It can be used to carry more details than the high level tax type information.


Examples:

"VAT_5_5"
"VAT_10"
"VAT_20"

Type: boolean Default: false

This flag determines if the tax applies to shipping costs.
Example: option and scenario costs.


Example:

[
    {
        "type": "VAT",
        "code": "tax-fra-55",
        "taxAmount": {
            "amount": 550,
            "scale": 2,
            "currency": "EUR"
        },
        "percentage": 5.5
    },
    {
        "type": "ECOTAXE1",
        "isSurcharge": true,
        "taxAmount": {
            "amount": 1500,
            "scale": 2,
            "currency": "EUR"
        }
    },
    {
        "type": "ECOTAXE2",
        "isSurcharge": true,
        "taxAmount": {
            "amount": 500,
            "scale": 2,
            "currency": "EUR"
        }
    },
    {
        "type": "VAT",
        "code": "tax-fra-20",
        "isShipping": true,
        "taxAmount": {
            "amount": 20,
            "scale": 2,
            "currency": "EUR"
        },
        "percentage": 20
    }
]

Type: string

The comment is added to line item by the customer during the sales order placement. It is used by the customer to provide any information to be received by their own team when the sales order is delivered.


Example:

"Please place this item on 3rd floor"

Type: array of string

A list of lineItem ids related to the current line item.
Can be used in case of PROMOTION lineItem, to refer to PRODUCT lineItem impacted by this promotion.

No Additional Items

Each item of this array must be:


Example:

[
    "96122268053639168",
    "96121848778428416"
]

Type: object

Contains marketplace properties specific to this lineItems, once set these are assumed to be immutable.

Type: string

The identifier of this lineItem in the opco purchase order

Price

Type: object

Purchase unit price (computed by the marketplace platform from the commission rate and the provided offer price)

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Purchase order line's commission fee. Equals (itemPrice + surchages) * commission_rate

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Purchase order line's commission fee on shipping. Equals line item shippingCost * commision_rate_on_shipping

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Purchase order line's price excluding shipping charges. Equals (itemPrice + surchages) - purchaseCommissionOnPrice

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Price

Type: object

Purchase order line's shipping charges. Equals line item shippingCost - purchaseCommissionOnShipping

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: array

Purchase order line's taxes. The list of taxes matches the itemTaxes but for the purchase order

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains the tax informations with both percentage or exact amount as preferable.

Price

Type: object

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: string

Type of tax which is applicable to the underlying product.


Example:

"VAT"

Type: boolean Default: false

This flag determines if the tax is a surcharge to be added to netPrice/promotionalNetPrice before applying Tax. The Tax computation happens on top of ((netPrice or promotionalNetPrice)+surcharges)


Example:

true

Type: string

A tax code which identifies the tax applied to this item. It can be used to carry more details than the high level tax type information.


Examples:

"VAT_5_5"
"VAT_10"
"VAT_20"

Type: boolean Default: false

This flag determines if the tax applies to shipping costs.
Example: option and scenario costs.

Type: string

The id of a cut group, groups several cutting lines


Example:

"10"

Type: string

Cutting line identifier, group of elements with the same cutting length


Example:

"1"

LogisticDetails

Type: object

The sales order line item logistic details that will override the sales order logistic details.

Type: object

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

if deliveryType is PICK_UP then the facilityId is required

Type: object

The following properties are required:

  • facilityId
Type: object

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

if deliveryType is DELIVERY then the deliveryAddress is required

Type: object

The following properties are required:

  • deliveryAddress

Type: enum (of string)

Type of delivery :

  • PICK UP : opco facility as the pick up destination ( branch, locker )

  • DELIVERY : client address as delivery destination

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Type: string

Unique identifier of the locker related to the 'facilityId' where the customer want pick up his order. The facilityId still the place where the order will be prepared


Example:

"395"

Type: string

Unique identifier of the facility used when delivery type is 'PICK_UP'.


Example:

"395"

Type: string

The id of the CDC from where this cart should be delivered. Needed to compute the right stock into PLP/PDP ....In case of multi CDC, the OpCo may have dynamic computation of the CDC and not only a static relation between branch and CDC.


Example:

"2Z1"

Type: object

The address used for delivery when logistic method is 'DELIVERY'

Address

Type: object

An address.

Type: string

OpCo internal system's unique identifier for the address.

Must be at least 1 characters long


Example:

"237564557868778"

Type: string

The first line of the address. Should contain Street name, no, street type. Usually the whole address can fit on one line

Must be at least 1 characters long


Example:

"235 Donaghy Ave"

Type: string

The second line of the address. Should complete the address with other details (e.g. floor number)

Must be at least 1 characters long

Type: string

The third line of the address. Should complete the address with other information. e.g. Apartment no

Must be at least 1 characters long

Type: string

The postal code

Must be at least 1 characters long


Example:

"V7P 1E2"

Type: string

The city in which the street address is, and which is in the adminDevison(region)

Must be at least 1 characters long


Example:

"North Vancouver"

Type: string

The region in which the locality is, and which is in the country.


Example:

"BC"

Type: string

The department in which the locality is, and which is in the country.

Must be at least 1 characters long


Example:

"BC"

Type: string

The ISO 3166-1 alpha-3 of the country

Must be at least 1 characters long


Example:

"CAN"

DeliveryAddress

Type: object

Represents additional fields of the delivery address

Type: string

Extra description about the address

Must be at least 1 characters long


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name

Must be at least 1 characters long


Example:

"Easy Electric"

Type: string

Address contact's first name

Must be at least 1 characters long


Example:

"John"

Type: string

Address contact's last name

Must be at least 1 characters long


Example:

"Doe"

Type: string

In Pilot Address contact's middle name

Must be at least 1 characters long


Example:

"William"

Type: string

Address contact's Phone number (The phone number of the person receiving the shipment)

Must be at least 1 characters long


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer

Must be at least 1 characters long


Example:

"Reference 123"

Example:

{
    "addressLine1": "chaussee Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2",
    "companyName": "Easy Electric",
    "contactFirstName": "John",
    "contactLastName": "Doe",
    "contactPhoneNumber": "+333746573829",
    "deliveryIndication": "Please leave the parcel next the front door.",
    "customerReference": "Ref 364361"
}
Type: object

Type: enum (of string)

Delete action for the order line when processed in partial updates.

Must be one of:

  • "DELETE"

Example:

"DELETE"

Type: array

The list payment methods that the customer is supposed to pay this sales order with.
The full list should be sent always, delta mode is not supported.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

PayWith

Type: object

the list of payment methods that the customer is expected to pay with

Type: enum (of string)

The payment method used for the payment.

Must be one of:

  • "CASH"
  • "CHEQUE"
  • "CREDIT_DEBIT_CARD"
  • "CREDIT_LINE"
  • "PCB_CARD"

Example:

"CREDIT_LINE"

Type: string

The transaction payment id


Example:

"PAY0001"

Price

Type: object

The amount of the payment


Example:

{
    "amount": 1800,
    "scale": 2,
    "currency": "EUR"
}

Type: integer

The actual unscaled amount


Example:

205987

Type: integer

The scale to be applied on the unscaled amount


Example:

2

Type: string

The currency code following the ISO 4217 standard 3 letter in which the prices are being displayed

Must be at least 3 characters long

Must be at most 3 characters long


Example:

"EUR"

Type: stringFormat: date-time

Date on which the payment transaction has been created


Example:

"2017-07-21T08:30:22.804Z"