Orders
Order API exposes endpoints for creating, updating and searching orders. Additionally, endpoints for processing orders and managing order shipments are available.
Fields
An order resource contains the fields below:
- fields available when creating an order via the API are marked in the Create via POST column.
- a smaller subset of these fields is updatable using the API, these are marked in the Update via Patch column.
Name | Description | Type | Get order (GET) | Create order (POST) | Update order (PATCH) |
---|---|---|---|---|---|
id | order id | integer | x | ||
shop | shop identifier | JSON object | x | ||
status | order status | string | x | x | x |
channelId | channel id | integer | x | x | |
shopId | shop id | integer | x | ||
source | external system | string | x | x | |
sourceId | external system unique id | string | x | x | |
userId | customer user id of | integer | x | ||
debtorId | customer debtor Id | string | x | x | |
firstName | customer first name | string | x | x | |
middleName | customer middle name | string | x | x | |
lastName | customer last name | string | x | x | |
email | customer email | string | x | x | |
type | order type | enum dropshipment stock purchase quotation | x | ||
remarks | order remarks | string | x | x | |
reference | order reference (e.g. po number) | string | x | x | |
extraInfo | order extra info | string | x | x | |
language | locale in which the order was created (e.g. EN-US) | string ISO 639-1 | x | x | x |
date | order date | date | x | x | |
orderSource | order was create via which medium (webshop / backoffice / API) | string | x | x | x |
externalId (deprecated) | external order id | string | x | x | |
itemCount | total number of orderItems | integer | x | ||
exportDate | order export date | date | x | x | |
exportStatus | order export status | enum EXPORTED FAILED | x | x | |
exportMessage | order export message (e.g. a success or failed message) | string | x | x | |
merchantCost | costs calculated by a marketplace (e.g. Amazon) | integer | x | x | |
accountingId | identifier for accounting purposes | string | x | x | |
trackTraceCode | Track and trace codes of the order | string | x | ||
paymentData | JSON object (paymentData) | x | |||
total | object containing various calculation of summed items | JSON object (total) | x | x | |
postageData | JSON object (postageData) | x | x | x | |
clientData | user / contact or customer object | JSON object | x | x | |
invoiceData | invoice address | JSON object | x | x | |
shippingData | shipment address | JSON object | x | x | |
items | order items | array (items) | x |
Payment data
Name | Description | Type | Get order (GET) | Create order (POST) | Update order (PATCH) |
---|---|---|---|---|---|
payMethod | method of payment, e.g. creditcard, on account, direct debit. The value should match the paymethod configured in the Propeller backoffice | string | x | x | |
grossAmount | cost of the payment excluding VAT (e.g. creditcard transaction costs) | integer | x | x | |
netAmount | cost of payment including VAT | integer | x | ||
payStatus | status of the payment | string | x | x | |
payStatusDate | date of payment processing | date | x | ||
transactionId | Identifier of the transaction, often this is an id returned by the payment service provider | string | x | x |
Total
Name | Description | Type | Get order (GET) | Create order (POST) | Update order (PATCH) |
---|---|---|---|---|---|
discountPercentage | discount percentage on the total order amount | integer | x | x | |
discountValue | discount amount on the total order amount | integer | x | x | |
totalNet | total order amount including VAT | integer | x | ||
totalGross | total order amount excluding VAT | integer | x | ||
tax | total VAT amounts per Tax percentage of the combined order items | JSON object | x |
Postage data
Name | Description | Type | Get order (GET) | Create order (POST) | Update order (PATCH) |
---|---|---|---|---|---|
requestDate | order requested delivery date | date | x | x | x |
shippingMethod | method of shipment, e.g. regular, dropshipment, pickup, etc. The value should match the shippingmethods configured in the Propeller backoffice | string | x | x | |
postageTaxCode | postage/shipping costs tax code | enum H = High L = Low N = None | x | ||
postageTaxPercentage | postage/shipping cost tax percentage | integer | x | ||
postage | postage/shipping costs excluding VAT | integer | x | x | |
postageNet | postage/shipping costs including VAT | integer | x | ||
partialDeliveryAllowed | is partial delivery of the order allowed | enum Y = Yes N = No | x | x | |
carrier | string | x | |||
pickUpLocationId | integer | x |
Client data
Name | Description | Type | Get order (GET) | Create order (POST) | Update order (PATCH) |
---|---|---|---|---|---|
user resource | all fields related to a user / contact / customer resource | user | x | ||
contact | a reference by lookup key to an existing contact resource | JSON object | x | ||
customer | a reference by lookup key to an existing customer resource | JSON object | x | ||
user | a reference by lookup key to an existing user resource | JSON object | x |
Invoice data
Name | Description | Type | Get order (GET) | Create order (POST) | Update order (PATCH) |
---|---|---|---|---|---|
address | invoice address | JSON object (address) | x | x |
Shipping data
Name | Description | Type | Get order (GET) | Create order (POST) | Update order (PATCH) |
---|---|---|---|---|---|
address | shipping address | JSON object (address) | x | x |
Items
Name | Description | Type | Get order (GET) | Create order (POST) | Update order (PATCH) |
---|---|---|---|---|---|
type | orderItem type | enum product | x | x | |
product resource | all fields related to a product resource | product | x | ||
childItems | product child items | array[products] | x | ||
name | orderItem name | string | x | ||
quantity | orderItem quantity | integer | x | ||
price | orderItem price | number | x | ||
originalPrice | product default price | number | x | ||
notes | orderItem notes | string | x | ||
sku | product sku used for product lookup | string | x | ||
supplier | product supplier used for product lookup | string | x | ||
supplierCode | product suppliercode used for product lookup | string | x | ||
source | product source used for product lookup | string | x | ||
sourceId | product sourceId used for product lookup | string | x | ||
turnoverGroup | identifier for accounting purposes | string | x | ||
discountAmount | sum of all item incentives applied by business rules | number | x | ||
discountAmountTotal | discountAmount * quantity | number | x | ||
discountPercentage | discountAmount percentage of the item price | number | x | ||
discountAmountNet | discountAmount + tax | number | x | ||
discountAmountTotalNet | discountAmount * quantity + tax | number | x |
Order Lookup keys
identifier | Description | Type |
---|---|---|
id | Propellor order id | integer |
sourceId | External system unique id. sourceId should be combined with source | string |
externalId (deprecated) | id of an external system which is stored as externalId in the Propellor order | string |
Expanding resources
Query parameter | Description |
---|---|
orderItems | Expand orderItems in the response payload |
orderItems .product | Expand product details as part of the orderItems in the response payload |
sources | Expand sources in the response payload |
Order Errors
This section describes error codes specific for the Order
resource.
Code | Error Type | Status Code | Message | Reason |
---|---|---|---|---|
15001 | OrderNotFound | 404 | Order does not exist | Order with such lookup key not found |
15002 | OrderNotProcessed | 400 | Order not processed | Order was not processed successfully |
15003 | ParentOrderNotFound | 404 | Parent order does not exist | Parent order with such lookup key not found. This error is typical when working with order sub-resources (e.g. addresses) |
90006 | AddressNotFound | 404 | Address does not exist | Order address does not exist |
15004 | OrderExists | 400 | Order already exists | When creating / updating an order the sourceId / source combination already exists in Propeller. |
📄️ Get Shipments
Use this endpoint to retrieve a list of all order shipments.
📄️ Create Shipment
Create a `shipment` which marks `orderItems` as delivered and adds track and trace information to the `order`.
📄️ Get Addresses by type
Use this endpoint to retrieve a list of all order addresses. Addresses can be filtered by type.
📄️ Get Order Address by Id
Use this endpoint to retrieve details for an order address. The address is identified by `id`.
📄 ️ Update Order Address
Use this endpoint to update an order address. The address is identified by `id`.
📄️ Order by lookup key
Retrieve order details by a specific lookupKey / lookupId combination
📄️ Order by lookup key
Update order headers details. This request does not support updating orderitems. An order `address` can be updated using the [order address endpoints](/rest-sonar/addresses).
📄️ Create Order
Use this endpoint to create an order.
📄️ Search Orders
Retrieve a list of orders by using the search fields below
📄️ Process order by lookup key
Process an order by a specific lookupKey / lookupId combination.
📄️ Order PDF by lookup key
Generate a base64 encoded version of the order confirmation pdf based on the Propeller order confirmation template