Fluent Commerce Logo
Docs
Sign In

v4.1 Deprecated REST APIs Overview

Topic

Author:

Fluent Commerce

Changed on:

11 Feb 2025

Overview

  • This section provides documentation for deprecated APIs in maintenance mode.
  • These APIs are no longer supported.
  • See our GraphQL API for more advanced API access to Domain data!


Article REST API (Deprecated)

Author:

Fluent Commerce

Changed on:

26 Nov 2024

Overview

An Article can be created when a fulfillment is fulfilled, or when a dispatch occurs. The Article represents the physical parcel that contains the customer order items. The Article is the entity received by the customer.

Key points

  • Article Entity Relationship
  • Article Properties
  • What you can do with Article


Description

An Article represents the physical parcel that transports customer order items and can be created when a fulfilment is fulfilled, or when a dispatch occurs.

Entity Relationship

No alt provided

Article Properties

Below are the properties available in the Article object which can be updated and retrieved through the APIs in this document.

1. orderId 

Type: Long

1{"orderId" : ""}

Language: json

Name: OrderId

Description:

[Warning: empty required content area]

Order id of the order

2. orderRef 

Type: String

1{"orderRef" : ""}

Language: json

Name: orderRef

Description:

[Warning: empty required content area]

Retailer order reference of article

3. orderType

Type: String

1{"orderType" : ""}

Language: json

Name: orderType

Description:

[Warning: empty required content area]

Order type of article

4. articleConsignments

Type: Array

1{"articleConsignments" : [Array]}

Language: json

Name: articleConsignments

Description:

[Warning: empty required content area]

An array of articles and their associated consignment details. Details article and consignment explained below.

5. article

Type: Array

1{ "orderId" : 312412313 }
2
3{ "orderType" : "HD" }
4
5{ "customerFirstName" : "Simon" }
6
7{ "customerLastName" : "Smith" }
8
9{ "fulfilmentId" : 3242342 }
10
11{ "fulfilmentRef" : "112333-GF" }
12
13{ "articleId" : 53524121 }
14
15{ "articleRef" : "8347534905" }
16
17{ "storageAreaRef" : "12123" }
18
19{ "status" : "CREATED" }
20
21{ "items" : [array] }

Language: java

Name: article

Description:

[Warning: empty required content area]

Array of articles related to the order will be included here. Each article object has field as explained below.

  • orderId (Long, Compulsory): Order id of the order
  • orderType (String, Optional): Type of the Order. HD | CC
  • customerFirstName (String, Optional): The first name of the customer
  • customerLastName (String, Optional): The last name of the customer
  • fulfilmentId (Long, Optional): The fulfillment id associated to the article
  • fulfilmentRef (String, Optional): The fulfillment reference associated to the article
  • articleId (Long, Compulsory): The article id
  • articleRef (String, Optional): The article reference
  • storageAreaRef (String, Optional): The storage area reference of the article
  • status (String, Optional): The status of the article.
  • items [Array]: The array of order items within the article, as explained below
6. items

Type: Array

1{ "articleItemId" : 53524121 }
2
3{ "articleItemRef" : "8347534905" }
4
5{ "fulfilmentItemId" : 767886878 }
6
7{ "fulfilmentItemRef" : "6356564_CF" }
8
9{ "orderItemId" : 6876886 }
10
11{ "orderItemRef" : "57658768" }
12
13{ "articleFilledQty" : 2 }
14
15{ "skuRef" : "7987986989" }
16
17{ "productRef" : "6687578" }
18
19{ "barcode" : "676888886" }

Language: java

Name: items

Description:

[Warning: empty required content area]

Array of article item objects

  • articleItemId (String, Optional): The article item id
  • articleItemRef (String, Optional): The article item reference if any
  • fulfilmentItemId (Long, Optional): The associated fulfillment item id
  • fulfilmentItemRef (String, Optional): The associated fulfillment item Reference
  • orderItemId (Long, Optional): The associated order item id
  • orderItemRef (String, Optional): The associated order item Reference
  • articleFilledQty (String, Optional): The number of units of this article item within the article
  • skuRef (String, Optional): The associated SKU reference against this article item id
  • productRef (String, Optional): The associated product reference
  • barcode (String, Optional): EAN,UPC,MPN,ISBN for SKU. This field only populated if values exist. Values created based on retailer settings.
7. consignment

Type: Object

Description: The object containing the details of the consignment for this article, referred to as Consignment Response.

1{ "carrierId" : 1 }
2
3{ "carrierName" : "Australia Post" }
4
5{ "consignmentId" : 1131231231 }
6
7{ "consignmentRef" : "23423423324" }
8
9{ "status" : "BOOKED" }
10
11{ "labelUrl" : "http://www.labelurl.com/url/2312342" }
12
13{ "reason" : "Consignment booked" }

Language: java

Name: Consignment

Description:

[Warning: empty required content area]

Consignment array will provide the consignments related to order

  • carrierId (String, Optional): The id of the carrier used
  • carrierName (String, Optional): The name of the carrier
  • consignmentId (String, Optional): The consignment id generated by Fluent Commerce
  • consignmentRef (String, Optional): The consignment reference provided by the carrier on booking
  • status (String, Optional): The status of the consignment.
  • labelUrl (String, Optional): The URL of the consignment note saved in Fluent Commerce
  • reason (String, Optional): Consignment reason
8. query

Type: String

1{ "query" : "" }

Language: java

Name: query

Description:

[Warning: empty required content area]

The barcode associated to the article. The user can pass in an order reference, fulfillment id, fulfillment reference, article id or article reference.

9. shippedOn

Type: DateTime

1{ "shippedOn" : "2016-01-21 04:22:07" }

Language: java

Name: shippiedOn

Description:

[Warning: empty required content area]

The time the article was updated.

This field is relevant for displaying the date and time to determine when an article moved from created to awaiting_arrival (i.e. when the article shipped from the DC)

10. locationRef

Type: String

1{ "locationRef" : "3025" }

Language: java

Name: locationRef

Description:

[Warning: empty required content area]

Location external reference of logged in user i.e. Store number.

What you can do with Article

Create a new Article 

Create new article API is used to add retailer created articles to the Fluent Commerce system. This API is heavily used in Ship To Store (STS) solution where the pick & pack process occurs in retailer warehouse using their WMS. Once an article is created in Fluent Commerce system, it can be used to track in store click and collect processes such as arrival and customer collection.

`POST`
:
`/api/v4.1/order/{orderId}/fulfilment/{fulfilmentId}/article`

Request and response

Request Parameters and sample

Article response

1FulfilmentArticleRequest {
2    articleRef (string, optional),
3    attributes (Array[Attribute], optional),
4    consignment (ConsignmentRequest, optional),
5    items (ArticleItemRequest, optional),
6    type (string, optional),
7    attributes (Array[Attribute], optional)
8}
9
10ConsignmentRequest {
11    carrierId (string, optional),
12    carrierName (string, optional),
13    consignmentId (integer, optional),
14    consignmentReason (string, optional),
15    consignmentRef (string, optional),
16    labelUrl (string, optional),
17    orderSummaryUrl (string, optional),
18    retailerId (string, optional),
19    shipmentId (string, optional),
20    status (string, optional)
21}
22
23ArticleItemRequest {
24    skuRef (string, optional),
25    quantity (Integer, optional)
26}
27
28Attribute {
29    name (string, optional),
30    type (string, optional) = ['STRING', 'INTEGER'],
31    value (string, optional)
32}

Language: java

Name: Article Response Example

Description:

[Warning: empty required content area]

Example response

1   {
2     "articleRef": "ARTICLE-001214",
3     "items": [
4       {
5         "quantity": "2",
6         "skuRef": "Test-1001004"
7       }
8     ],
9     "consignment": {
10       "carrierId": "22",
11       "consignmentRef": "TestRef1234567",
12       "labelUrl": "TestURL"
13     }
14    }

Language: json

Name: Example response

Description:

[Warning: empty required content area]

Response parameters and sample

Order response

1{
2 "id": 427323
3}

Language: java

Name: Order Response Example

Description:

[Warning: empty required content area]

View all Fulfilment Articles

Retrieve all Article & Consignment details associated with a Fulfilment Retrieve all Article & Consignment details associated with a Fulfilment

`GET`
`/api/v4.1/order/{orderId}/fulfilment/{fulfilmentId}/article`

Request and response

Request parameters and sample

1/api/v4.1/order/{orderId}/fulfilment/{fulfilmentId}/article

Language: javascript

Name: Request parameters and sample

Description:

[Warning: empty required content area]

Example request

1/api/v4.1/order/198816/fulfilment/81316/article

Language: java

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

Article Response

1FulfilmentArticleResponse {
2    orderId (string, optional),
3    orderRef (string, optional),
4    orderType (string, optional)
5    articleConsignments (Array[ArticleConsignment], optional),
6}
7ArticleConsignment {
8    article (ArticleResponse, optional),
9    consignment (ConsignmentResponse, optional)
10}
11ArticleResponse {
12    articleId (string, optional),
13    articleRef (string, optional),
14    customerFirstName (string, optional),
15    customerLastName (string, optional),
16    fulfilmentId (string, optional),
17    fulfilmentRef (string, optional),
18    items (Collection«ArticleItemResponse», optional),
19    orderId (string, optional),
20    orderType (string, optional),
21    status (string, optional),
22    storageAreaRef (string, optional),
23    type (string, optional),
24    items (ArticleItemResponse, optional)
25    
26}
27ArticleItemResponse {
28    articleItemId (string, optional),
29    articleItemRef (string, optional),
30    fulfilmentItemId (string, optional),
31    fulfilmentItemRef (string, optional),
32    orderItemId (string, optional),
33    orderItemRef (string, optional),
34    articleFilledQty (string, optional),
35    skuRef (string, optional),
36    productRef (string, optional),
37    barcode (string, optional)
38}
39ConsignmentResponse {
40    carrierId (string, optional),
41    carrierName (string, optional),
42    consignmentId (integer, optional),
43    consignmentRef (string, optional),
44    consignmentTracking (Collection«ConsignmentHistoryResponse», optional),
45    createdOn (string, optional),
46    labelUrl (string, optional),
47    orderSummaryUrl (string, optional),
48    reason (string, optional),
49    retailerId (string, optional),
50    status (string, optional),
51    status (ConsignmentHistoryResponse, optional)
52    
53}
54ConsignmentHistoryResponse {
55    carrierId (string, optional),
56    carrierName (string, optional),
57    consignmentId (integer, optional),
58    consignmentRef (string, optional),
59    status (string, optional),
60    labelUrl (string, optional),
61    reason (string, optional)
62    }

Language: java

Name: Article Response

Description:

[Warning: empty required content area]

Example response

1{
2"orderId": "198816",
3"orderRef": "00000004",
4"orderType": "HD",
5"articleConsignments": [
6{
7"article": {
8"orderId": "198816",
9"orderType": "HD",
10"customerFirstName": "Alex",
11"customerLastName": "A",
12"fulfilmentId": "81316",
13"fulfilmentRef": "81316",
14"articleId": "4244476",
15"articleRef": null,
16"storageAreaRef": null,
17"status": "COLLECTED",
18"items": []
19},
20"consignment": {
21"carrierId": "7",
22"carrierName": "DHL",
23"consignmentId": "1929776",
24"consignmentRef": "81316",
25"status": "ACTIVE_SENT",
26"labelUrl": null,
27"reason": null,
28"consignmentTracking": []
29}
30}
31]
32}

Language: json

Name: Example response

Description:

[Warning: empty required content area]
View all Order Articles 

Retrieve all Article & Consignment details associated with an Order

`GET`
`/api/v4.1/order/{orderId}/article`

Request and response

Request parameters and sample

`/api/v4.1/order/{orderId}/article`

Example request

`/api/v4.1/order/198816/article`

Response Parameters and sample

Article Response

1articleResponse {
2    orderId (string),
3    orderRef (string),
4    orderType (string) = 'HD', 'CC',
5    articleConsignment {
6    article (articleResponse),
7    consignment (consignmentResponse),
8}
9articleResponse {
10    fulfilmentId (string),
11    fulfilmentRef (string),
12    articleId (string),
13    articleRef (string),
14    storageAreaRef (string),
15    status (string) = 'CREATED', 'AWAITING_ARRIVAL', 'AWAITING_COLLECTION', 'COLLECTED', 'CANCELLED',
16    items (articleItemResponse),
17}
18articleItemResponse {
19    articleItemId (string),
20    articleItemRef (string),
21    fulfilmentItemId (string),
22    fulfilmentItemRef (string),
23    orderItemId (string),
24    orderItemRef (string),
25    articleFilledQty (string),
26    skuRef (string),
27    productRef (string),
28    barcode (string) = 'EAN', 'UPC', 'MPN', 'ISBN'
29}
30consignmentResponse {
31    carrierId (string),
32    carrierName (string),
33    consignmentId (integer),
34    consignmentRef (string),
35    status (string) = 'ASSIGNED', 'ACTIVE_LODGED', 'ACTIVE_SENT',
36    labelUrl (string),
37    reason (string),
38    consignmentTracking (consignmentHistoryResponse),
39}
40consignmentHistoryResponse {
41    carrierId (string),
42    carrierName (string),
43    consignmentId (integer),
44    consignmentRef (string),
45    status (string) = 'COMPLETE', 'CANCELLED',
46    labelUrl (string),
47    reason (string)
48}

Language: java

Name: Article Response

Description:

[Warning: empty required content area]

Example response

`ADD`

View Article Attributes 

Retrieve article attributes

`GET`
`/api/v4.1/article/{articleId}/attribute`

Request and response

Request parameters and sample

`/api/v4.1/article/{articleId}/attribute`

Example request 

`/api/v4.1/article/765437/attribute`

Response Parameters and sample

Article Response

1ArticleResponse {
2    articleId (long),
3    attributes (articleResponse)
4}
5
6  

Language: java

Name: Article Response

Description:

[Warning: empty required content area]
1name (string),
2value (string)

Language: java

Name: View attributes

Description:

[Warning: empty required content area]

Example response

1{
2"articleId": "16567",
3"attributes": [
4{
5"name": "articlecode_1",
6"value": "123"
7},
8{
9"name": "articlecode_2",
10"value": "124"
11},
12{
13"name": "articlecode_3",
14"value": "125"
15}
16]
17}

Language: json

Name: Example response

Description:

[Warning: empty required content area]
Search Articles

Retrieve a list of Articles matching the search criteria

`GET`
`/api/v4.1/article`

Request and response

Request parameters and sample

Article request

1URL Parameters:
2
3start (integer, optional),
4
5count (integer, optional),
6direction (string, optional) = 'INBOUND', 'OUTBOUND',
7status (string, optional) = 'CREATED', 'AWAITING_ARRIVAL', 'AWAITING_COLLECTION', 'COLLECTED', 'CANCELLED',
8consignmentStatus (string, optional) = 'ASSIGNED', 'ACTIVE_LODGED', 'ACTIVE_SENT', 'CANCELLED', 'COMPLETE',
9type (string, optional) = 'CC_PFS', 'CC_PFDC', 'HD_PFS', 'HD_PFDC',
10olderThan (string, optional),
11query (string, optional)

Language: java

Name: Article request

Description:

[Warning: empty required content area]


Response Parameters and sample

Article response

1articleResponse {
2    start (integer),
3    count (integer),
4    total (integer),
5    retailerId (string),
6    results (Array[articleSummary])
7}
8articleSummary {
9    orderId (string),
10    orderRef (string),
11    orderType (string) = 'CC', 'HD',
12    articleId (string),
13    articleRef (string),
14    shippedOn (DateTime),
15    storageAreaRef (string),
16    numberOfArticles (string),
17    consignmentStatus (string) = 'ASSIGNED', 'ACTIVE_LODGED', 'ACTIVE_SENT', 'CANCELLED', 'COMPLETE',
18    customerFirstName (string),
19    customerLastName (string)
20}

Language: java

Name: Article response

Description:

[Warning: empty required content area]

Example response

1{
2 "start": 1,
3 "count": 2,
4 "total": 49885,
5 "retailerId": "433",
6 "results": [
7 {
8 "orderId": 198836,
9 "orderRef": "SEEDAU00000514",
10 "orderType": "HD",
11 "shippedOn": "2016-01-20 03:53:23",
12 "articleId": 4243999,
13 "articleRef": null,
14 "storageAreaRef": null,
15 "numberOfArticles": 2,
16 "consignmentStatus": "ACTIVE_LODGED",
17 "customerFirstName": "Stephanie",
18 "customerLastName": "Smith"
19 },
20 {
21 "orderId": 198837,
22 "orderRef": "SEEDAU00000515",
23 "orderType": "HD",
24 "shippedOn": "2016-01-21 04:22:07",
25 "articleId": 4244000,
26 "articleRef": null,
27 "storageAreaRef": null,
28 "numberOfArticles": 1,
29 "consignmentStatus": "ACTIVE_LODGED",
30 "customerFirstName": "John",
31 "customerLastName": "Newman"
32 }
33 ]
34}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
Update Article Attributes

Add, update or remove Article attributes.

  • Add - If attribute name does not exist, API will add the new attribute to entity.
  • Update - If attribute name exists, API will update the value of attribute
  • Delete - If only attribute name is passed without value, API will remove the attribute

`PUT`
`/api/v4.1/article/{articleId}/attribute`

Request and response

Article request

1ArticleRequest {
2    attributes (Array[attributeRecord], optional),
3    
4}
5// attributeRecord
6Attribute {
7    name (string, compulsory),
8    value (string, optional)
9}

Language: java

Name: Article request

Description:

[Warning: empty required content area]

Example request

1{
2"attributes": [
3{
4"name": "articlecode_1",
5"value": "123"
6},
7{
8"name": "articlecode_2",
9"value": "124"
10},
11{
12"name": "articlecode_3",
13"value": "125"
14}
15]
16}

Language: java

Name: Example request

Description:

[Warning: empty required content area]

Response parameters and sample

Article response

1attributesResponse{
2    updatedAttributes (Array[attributeRecord]) []
3    failedAttributes (Array[attributeFailureRecord]) []
4}
5// attributeRecord
6Attribute {
7    name (string),
8    value (string)
9}
10// attributeFailureRecord
11Attribute {
12    name (string),
13    value (string),
14    error(string)
15}

Language: java

Name: Article response

Description:

[Warning: empty required content area]

** Example request**

1{
2"updatedattributes": [ {
3"name": "articlecode_1",
4"value": "123"
5},
6{
7"name": "articlecode_2",
8"value": "124"
9}],
10"failedattributes": [
11{
12"name": "articlecode_3",
13"value": "125",
14"error": "attribute not allowed for the user ID : [8977]"
15}
16]
17}

Language: json

Name: Example request

Description:

[Warning: empty required content area]
Update Article Storage Area 

Add Article to storage area location

`PUT`
`/api/v4.1/article/{articleId}/store/{storageAreaRef}`

Request and response

Request parameters and sample

Article request

1/api/v4.1/article/{articleId}/store/{storageAreaRef}
2
3articleRequest {
4
5locationRef (string, optional)
6}

Language: java

Name: Article request

Description:

[Warning: empty required content area]

Example request

1/api/v4.1/article/327658/store/Red01
2
3
4{
5 "locationRef":"3025"
6}

Language: java

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

Article response

1SuccessMessageResponse {
2
3id (object, optional),
4}

Language: java

Name: Article response

Description:

[Warning: empty required content area]

Example response

1{
2 "id":"327658"
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]
Remove Article from Storage Area 

Delete Article from storage area location

`DELETE`
`/api/v4.1/article/{articleId}/store/{storageAreaRef}`

Request and response

Request parameters and sample

Article request

1/api/v4.1/article/{articleId}/store/{storageAreaRef}
2
3articleRequest {
4
5locationRef (string, optional)
6}

Language: java

Name: Article request

Description:

[Warning: empty required content area]

Example request

1/api/v4.1/article/327658/store/Red01
2
3
4{
5 "locationRef":"3025"
6}

Language: java

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

Article response

1SuccessMessageResponse {
2    id (object, optional),
3}
4

Language: java

Name: Article response

Description:

[Warning: empty required content area]

Example response

1{
2 "id":"327658"
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]

Response on failure

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500



Batch API

Author:

Fluent Commerce

Changed on:

10 Dec 2024

Overview

A batch contains a series of records that will have the same operation applied to it. All Batches are run asynchronously so to confirm success or failure the client must request a status update for submitted batches via the GET API at a later stage. Most Batches are limited to 5,000 records.

To create a Batch, the user must first create a Job. A Job is required to store a series of batches. For more information please refer to the Job API.

Key points

  • Batch Properties
  • Category Batch
  • Inventory Batch
  • Location Batch
  • Response on Failures


Batch Properties

Below are the properties available in the Batch object which can be updated and retrieved through the APIs in this document.

1. id

Type: DateTime

Description: Unique id associated with the created batch.


2. jobId

Type: String

Description: The unique identifier associated to the Job. 

`{ "jobId" : "223" }`


3. batchId

Type: String

Description: The unique batch id.


4. start

Type: String

Description: Offset of result


5. count

Type: String

Description: The count of batches shown


6. total

Type: String

Description: Total no of batches


7. action

Type: String

Description: The type of operation that will be applied to all records in the batch. 

`{ "action": "UPSERT" }`

Possible values are:

  • UPSERT: Insert or update records. If the record already exists then update existing record.
  • CREATE: Create new records.
BATCHRECORDSTATUS
  • entityId: FluentRetail ID of category entity. This field is only available when category is created successfull.
  • entityRef: External reference of category entity.
  • responseCode:
    • 200 OK: successful
    • 404: not found (Dependent record)
    • 500: Internal server
    • 301: Unauthorised
  • message: Descriptive message related to the response code.
8. entityType

Type: String

Description: Entity type. Possible values are 'INVENTORY', 'LOCATION'.

`{ "entityType" : "INVENTORY" }`

9. entities

Type: Array

Description: An array of InventoryPost records

1{ "retailerId" : "197" }
2
3{ "inventoryId" : "56470" }
4
5 { "skuRef" : "29SPM0020X96-1-8" }
6
7 { "locationRef" : "158" }
8
9 { "qty" : "10" }
10
11 { "correctedQty" : "2" }
12
13{ "reservedQty" : "2" }
14
15retailerId (string) : The retailer identifier assigned by Fluent Commerce.
16inventoryId (string) : The unique identifier assigned by Fluent Commerce.
17skuRef (string) : The unique reference or code provided by the retailer.
18locationRef (string) : The location (i.e. store) number.
19qty (integer) : The stock on hand.
20correctedQty (integer) : Correction quantity based on stock updates.
21reservedQty (integer) : Quantity reserved due to unfulfilled orders

Language: java

Name: Example: An array of InventoryPost records

Description:

[Warning: empty required content area]
1{ "locationRef" : "DX001" }
2
3{ "alternateId" : "36137249241" }
4
5{ "status" : "ACTIVE" }
6
7{ "name" : "ABC Store" }
8
9{ "email" : "abcstore@mystore.com.au" }
10
11{ "supportPhone" : "0272432243" }
12
13{ "type" : "STORE" }
14
15{ "timeZone" : "+10" }
16
17{ "pickAndPackTimeLimit" : 2 }
18
19{ "ClickAndCollectNetworks" : [”ABC_CC”] }
20
21{ "useInventoryForHomeDelivery" : [”ABC_HD”]}
22
23{ "useInventoryForClickCollect" : [”ABC_CC”]}
24
25{ "StorageAreas" : [”locker_1","locker_2”]}
26
27{ "address" : {
28                  "LocationRef":"DX001",
29                  "companyName":"ABC Pvt Ltd", 
30                  "name":"ABC Store", 
31                  "city":"Sydney", 
32                  "country":"Australia", 
33                  "postcode":"2100",
34                  "state":"NSW", 
35                  "street":"48, Kippax St.",
36                  "longiltude":"33.8688", 
37                  "latitude":"150.72893"
38                   }}
39
40{ "openingHours" : "{
41
42                    "allHours": true, 
43                    "friEndMin": 0, 
44                    "friStartMin": 0, 
45                    "monEndMin": 0, 
46                    "monStartMin": 0, 
47                    "satEndMin": 0, 
48                    "satStartMin": 0, 
49                    "sunEndMin": 0, 
50                    "sunStartMin": 0, 
51                    "thuEndMin": 0, 
52                    "thuStartMin": 0, 
53                    "tueEndMin": 0, 
54                    "tueStartMin": 0, 
55                    "wedEndMin": 0, 
56                    "wedStartMin": 0 
57                    }} 
58{ "agentNetworks" : [”network1”] }  
59{ "attributes" : [
60
61                    {
62                    "name" : "Supplier address",
63                    "type" : "address",
64                    "value" : {"Address 1" : "46, Kipax Street",
65                    "Suburb" : "Surry Hills"
66                    "Post code" : "2010",
67                    "State" : "NSW"
68                    }
69                    },
70                    {
71                    "name" : "ECP",
72                    "type" : "string",
73                    "value" : "XCD123"
74                    }                  
75                    ] 
76}
77
78
79locationRef (String) Compulsory - The location reference from the retailer.
80alternateId (String) Optional - External ID for location.
81status (String) Compulsory - Status of the location. Allowed values are ACTIVE | INACTIVE.
82name (String) Compulsory - The name of the location.
83email (String) Compulsory - The object of customer information.
84supportPhone (String) Compulsory - The support phone number.
85type (String) Compulsory - Type of the location STORE | WAREHOUSE.
86timeZone (String) Compulsory - Time Zone associated with this location.
87pickAndPackTimeLimit (Int) Optional - Default is 3 HRS for store location. N/A For WAREHOUSE.
88clickAndCollectNetworks (Array[String]) Optional - The list of Click & Collect Network for which this Location can act as a collection point
89useInventoryForHomeDelivery (Array[String]) Optional - The list of HD Networks for which this Location can do fulfilment.
90useInventoryForClickCollect (Array[String]) Optional - The list of CC Networks for which this Location can do fulfilment.
91storageAreas [Array] Optional - List of storage Areas associated with the location.
92address Address Compulsory - The address of the location.
93
94LocationRef (String) Compulsory - The location reference from the retailer.
95companyName (String) Compulsory - Company Name.
96name (String) Optional - The name of the location.
97city (String) Optional - City name.
98country (String) Optional - Country name.
99postcode (String) Optional - Post code of the location.
100state (String) Optional - State name.
101street (String) Optional - Street name.
102latitude (String) Compulsory - Latitude.
103longitude (String) Compulsory - Longitude.
104openingHours OpeningHours Compulsory - The opening hours associated with this location.
105
106mon_start_min (integer) Compulsory - Start Time.
107mon_end_min (integer) Compulsory - End Time.
108tue_start_min (integer) Compulsory - Start Time.
109tue_end_min (integer) Compulsory - End Time.
110wed_start_min (integer) Compulsory - Start Time.
111wed_end_min (integer) Compulsory - End Time.
112thur_start_min (integer) Compulsory - Start Time.
113thur_end_min (integer) Compulsory - End Time.
114fri_start_min (integer) Compulsory - Start Time.
115fri_end_min (integer) Compulsory - End Time.
116sat_start_min (integer) Compulsory - Start Time.
117sat_end_min (integer) Compulsory - End Time.
118sun_start_min (integer) Compulsory - Start Times.
119sun_end_min (integer) Compulsory - End Time.
120allHours (boolean) Optional Indicates whether the store is 24x7
121agentNetworks [Array] Optional List of agent networks this location associated with (String array which represent agent network ids).
122
123attributes [Array] Optional - The array of attributes
124name (String) N attribute name
125type (String) N attribute type
126value (object) N Value

Language: java

Name: Example: An array of LocationPost records

Description:

[Warning: empty required content area]
10. status

Type: String

Description: The Status of the batch

1{ "status" : “RUNNING” }
2
3Possible values are: - PENDING - Batch has been entered but is not currently running. - RUNNING - Batch is being processed - COMPLETE - Batch has been processed ( with or without errors )

Language: java

Name: Status

Description:

[Warning: empty required content area]


Category Batch

Category Batch Properties
1. categoryRef
  • Type: String
  • Description: External Category reference to be referenced as the parent category.
Create a Batch

This endpoint can be used to create a new batch

POST: 

`/api/v4.1/job/{jobid}/batch`

Request object and example

1batchRequest {
2
3action (string, compulsory) = UPSERT,
4entityType (string, compulsory) = CATEGORY,
5entities (array, compulsory),
6
7    CategoryPost {
8        categoryRef (string, compulsory),
9        name (string, compulsory),
10        parentCategoryRef (string, optional),
11    }
12
13}

Language: java

Name: Request object

Description:

[Warning: empty required content area]
1{
2  "action": "UPSERT",
3  "entityType": "CATEGORY",
4  "entities": [
5    {
6      "categoryRef": "CGR-0001",
7      "name": "Category 001",
8      "parentCategoryRef": "CGR-000"
9    },
10    {
11      "categoryRef": "CGR-0002",
12      "name": "Category 002"
13    }
14  ]
15}

Language: json

Name: Example request

Description:

[Warning: empty required content area]

Response object and example

1SuccessMessageResponse {
2
3id (object, optional),
4message (string, optional),
5status (string, optional)
6}

Language: java

Name: Response object

Description:

[Warning: empty required content area]
1{
2 "id":"427323"
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]
View Details of a Batch Job

This endpoint can be used to view the status of a batch job

GET: 

`/api/v4.1/job/{jobid}/batch/{batchId}`

Request example

1/api/v4.1/job/223/batch/299

Language: java

Name: Request sample

Description:

[Warning: empty required content area]

Response object and example

1batchResponse {
2
3    batchId (string),
4    entityType (string) = 'CATEGORY', 
5    status (string) = 'PENDING', 'RUNNING', 'COMPLETE',
6    start (integer),
7    count (integer),
8    total (integer),
9    results (array[batchRecordStatus]):[
10    {
11    entityId (string),
12    entityRef (string),
13    responseCode (string) = '200', '404', '500', '401'
14    message (string)
15    }
16    ]
17    }

Language: java

Name: Response object

Description:

[Warning: empty required content area]
1{
2  "batchId": "1",
3  "entityType": "CATEGORY",
4  "status": "PENDING|RUNNING|COMPLETE",
5  "start": 1,
6  "count": 100,
7  "total": 5000,
8  "results": [
9      {
10            "responseCode": 404,
11            "entityRef": "CGR-0001",
12            "message": "Parent category \"CGR-000\" does not exist"
13      },
14      {
15            "responseCode": 200,
16            "entityId": "2",
17            "entityRef": "CGR-0002",
18            "message": "Category update successfully"
19      }
20  ],
21  "createdOn": "2017-09-20T10:00.000Z"
22}

Language: json

Name: Response Example

Description:

[Warning: empty required content area]


Inventory Batch

Create an Inventory Batch

This endpoint can be used to create a new inventory batch.

POST: 

`/api/v4.1/job/{jobid}/batch`

Request object and example

1// Request for INVENTORY
2
3batchRequest {
4
5    action (string, compulsory) = UPSERT,
6
7    entityType (string, compulsory) = INVENTORY,
8
9    entities (array, compulsory)
10}
11
12    InventoryPost {
13    retailerId (string, compulsory),
14    skuRef (string, compulsory),
15    locationRef (string, compulsory),
16    qty (integer, compulsory)
17    correctedQty (integer, optional)
18    }

Language: java

Name: Request object

Description:

[Warning: empty required content area]
1{
2    "action": "UPSERT",
3    "entityType": "INVENTORY",
4    "entities": [
5{
6    "locationRef": "158",
7    "qty": 10,
8    "correctedQty": 11,
9    "reservedQty" : 12,
10    "skuRef": "29SPM0020X96-1-8",
11    "retailerId": 197
12    }
13    ]
14}

Language: json

Name: Example request

Description:

[Warning: empty required content area]

Response object and example

1SuccessMessageResponse {
2
3id (object, optional),
4message (string, optional),
5status (string, optional)
6}

Language: java

Name: Response object

Description:

[Warning: empty required content area]
1{
2 "id":"427323"
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]
View an Inventory Batch

With Global Inventory enabled (INVENTORY_BATCH_ENHANCEMENT_ENABLED = TRUE), the status of inventory processing can be verified by retrieving the corresponding events for the job and batch entities. For each inventory batch that is submitted, a "CREATE" event is generated. When the inventory processing is complete and the inventory workflow has been executed, a corresponding "BATCH_COMPLETE" event is generated.

When Global Inventory is not enabled, follow the guides below.

Retrieve details of the Batch.

GET: 

`/api/v4.1/job/{jobid}/batch/{batchId}`

Request example

1/api/v4.1/job/223/batch/299

Language: java

Name: Request sample

Description:

[Warning: empty required content area]

Response object and example

1batchResponse {
2
3    batchId (string),
4    entityType (string) = 'INVENTORY', 
5    status (string) = 'PENDING', 'RUNNING', 'COMPLETE',
6    start (integer),
7    count (integer),
8    total (integer),
9    results (array[batchRecordStatus]):[
10    {
11    entityId (string),
12    entityRef (string),
13    responseCode (string) = '200', '404', '500', '401'
14    message (string)
15    }
16    ]
17    }

Language: java

Name: Response object

Description:

[Warning: empty required content area]
1{
2"batchId": "300",
3"entityType": "INVENTORY",
4"status": "COMPLETE",
5"start": 1,
6"count": 10,
7"total": 1,
8"results": [
9{
10"entityId": "1013187",
11"entityRef": null,
12"responseCode": 200,
13"message": "Inventory Created."
14}
15]
16}

Language: json

Name: Response Example

Description:

[Warning: empty required content area]


Location Batch

1// Request for LOCATION
2
3batchRequest {
4
5    action (string, compulsory) = UPSERT,
6
7    entityType (string, compulsory) = LOCATION,
8
9    entities (array, compulsory),
10}
11
12
13entities {
14    address (AddressDTO, optional),
15    agentNetworks (Array[string], optional),
16    alternateId (string, optional),
17    attributes (Array[Attribute], optional),
18    clickAndCollectNetworks (Array[string], optional),
19    directions (string, optional),
20    email (string, optional),
21    locationRef (string, optional),
22    name (string, optional),
23    openingHours (AgentOpening,optional),
24    pickAndPackTimeLimit (integer, optional),
25    status (string, optional) = ['ACTIVE','INACTIVE']stringEnum:"ACTIVE", "INACTIVE",
26    storageAreas (Array[string], optional),
27    supportPhone (string, optional),
28    timeZone (string, optional),
29    type (string, optional),
30    useInventoryForClickAndCollect(Array[string], optional),
31    useInventoryForHomeDelivery(Array[string], optional)}
32}
33
34
35AddressDTO {
36
37city (string, optional),
38companyName (string, optional),
39country (string, optional),
40latitude (number, optional),
41locationRef (string, optional),
42longitude (number, optional),
43name (string, optional),
44postcode (string, optional),
45state (string, optional),
46street (string, optional)
47
48}
49
50 Attribute {
51name (string, optional),
52type (string, optional),
53value (object, optional)
54
55}
56
57agentNetworks (Array[string], optional), alternateId (string, optional), attributes (Array[Attribute], optional),
58
59
60AgentOpening {
61allHours (boolean, optional),
62friEndMin (integer, optional),
63friStartMin (integer, optional),
64monEndMin (integer, optional),
65monStartMin (integer, optional),
66satEndMin (integer, optional),
67satStartMin (integer, optional),
68sunEndMin (integer, optional),
69sunStartMin (integer, optional),
70thuEndMin (integer, optional),
71thuStartMin (integer, optional),
72tueEndMin (integer, optional),
73tueStartMin (integer, optional),
74wedEndMin (integer, optional),
75wedStartMin (integer, optional)
76
77}
78

Language: java

Name: Location Request Example

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500



Category Batch API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

The Category Batch API is used to create a Category using the Fluent Commerce Batch framework.

Key points

  • Category Batch Properties
  • What you can do with the Category Batch API
  • Respose on Failures


Category Batch API

Overview

The Category Batch API is used to create a Category using the Fluent Commerce Batch framework.

Category Batch Properties

Below are the properties available in the Category Batch object which can be updated/retrieved through the APIs in this document.

1. action

Type: String

Description: The type of operation that will be applied to all records in the batch. Allowed value is UPSERT.


2. entityType

Type: String

Description: Entity type. Allowed values are CATEGORY.


3. entities

Type: Array

Description: An array of category POST records.


4. categoryRef

Type: String

Description: External Category reference to be referenced as parent category.


5. id

Type: DateTime

Description: Unique id associated to the created batch.


6. jobid

Type: String

Description: The unique job id.


7. batchId

Type: String

Description: The unique batch id.


8. start

Type: String

Description: Offset of result.


9. count

Type: DateTime

Description: The count of batches shown.


10. total

Type: String

Description: Total no of batches.


11. status

Type: String

Description: state of the batch:

  • PENDING - Batch has been entered but is not currently running
  • RUNNING - Batch is being processed
  • COMPLETE - Batch has been processed ( with or without errors ) The unique batch id.


12. results

Type: Array Description: Array of Batch Record Status.


13. BATCHRECORDSTATUS

Type: entityId

Description: Fluent Commerce ID of category entity. This field is only available when category is created successfully.


14. Type: entityRef

Type: entityRef

Description: External reference of category entity.


15. Type: responseCode

Type: responseCode

Description:

  • 2
  • 00 OK - successful,
  • 404 - not found ( Dependent record ),
  • 500 - Internal Server,
  • 401 - Unauthorized.


16. Type: message

Type: message

Description: Descriptive message related to the response code.


What you can do with the Category Batch API

Create a new Batch Job

This endpoint can be used to create a new batch

POST: 

`/api/v4.1/job/{jobid}/batch`

Request and response

Request parameters and sample

1batchRequest {
2
3    action (string, compulsory) = UPSERT,
4    entityType (string, compulsory) = CATEGORY,
5    entities (array, compulsory),
6
7
8        CategoryPost {
9            categoryRef (string, compulsory),
10            name (string, compulsory),
11            parentCategoryRef (string, optional),
12        }
13
14}

Language: java

Name: Batch request

Description:

[Warning: empty required content area]
1{
2  "action": "UPSERT",
3  "entityType": "CATEGORY",
4  "entities": [
5    {
6      "categoryRef": "CGR-0001",
7      "name": "Category 001",
8      "parentCategoryRef": "CGR-000"
9    },
10    {
11      "categoryRef": "CGR-0002",
12      "name": "Category 002"
13    }
14  ]
15}

Language: json

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

1SuccessMessageResponse {
2
3    id (object, optional),
4    message (string, optional),
5    status (string, optional)
6}

Language: java

Name: Batch response

Description:

[Warning: empty required content area]
1{
2 "id":"427323"
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]
View details of a batch job

This endpoint can be used to view the status of a batch job

GET: 

`//api/v4.1/job/{jobid}/batch/{batchId}`

Request and response

Request parameters and sample

`/api/v4.1/job/223/batch/299`

Response object and sample

Batch response

1batchResponse {
2
3    batchId (string),
4    entityType (string) = 'CATEGORY', 
5    status (string) = 'PENDING', 'RUNNING', 'COMPLETE',
6    start (integer),
7    count (integer),
8    total (integer),
9    results (array[batchRecordStatus]):
10    [{
11    entityId (string),
12    entityRef (string),
13    responseCode (string) = '200', '404', '500', '401'
14    message (string)
15    }]
16}

Language: java

Name: Batch Response Example

Description:

[Warning: empty required content area]

Example Batch task response of 2 categories

1{
2  "batchId": "1",
3  "entityType": "CATEGORY",
4  "status": "PENDING|RUNNING|COMPLETE",
5  "start": 1,
6  "count": 100,
7  "total": 5000,
8  "results": [
9      {
10            "responseCode": 404,
11            "entityRef": "CGR-0001",
12            "message": "Parent category \"CGR-000\" does not exist"
13      },
14      {
15            "responseCode": 200,
16            "entityId": "2",
17            "entityRef": "CGR-0002",
18            "message": "Category update successfully"
19      }
20  ],
21  "createdOn": "2017-09-20T10:00.000Z"
22}

Language: json

Name: Example Batch task response of 2 categories

Description:

[Warning: empty required content area]

Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500



Comment API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

A Comment provides an additional piece of information to the entity it is related to. An Order and Return can contain multiple comments associated with it.

Key points

  • Comment Properties
  • What you can do with Comment
  • Response on Failures


Comment API

Comment Properties

Below are the properties available in the Comment object which can be updated and retrieved through the APIs in this document.

1. CreatedOn

Type: DateTime

Description:

`{ "createdOn":"2016-07-19T23:36:13.015+0000" }`

Created date and time.

2. createdBy

Type: String

Description:

`{ "createdBy":"John Smith" }`

The user who created the comment.

3. entityType

Type: String

Description:

`{ "entityType":"ORDER" }`

The entity associated with the comment. Allowed values: ORDER | RETURN | CONSIGNMENT

4. entityId

Type: String

Description: { "entityId":"432567" } The unique identifier of the associated entity.

5. body

Type: String

Description:

`{ "body":"Customer called to confirm delivery date" }`

The comment created by the user.

6. retailerId

Type: String

Description:

`{ "retailerId":"197" }`

The unique identifier assigned to the retailer by Fluent Commerce.

7. commentId

Type: String

Description:

`{ "commentId":"32467" }`

The unique identifier is assigned to the comment.


What you can do with the Comment

Create a Comment

Create a Comment in the Fluent Retail system.

POST: 

`/api/v4.1/comment`

Request and response

Request parameters and sample.

1commentRequest {
2
3        entityType (string, compulsory) = ['ORDER', 'RETURN', 'CONSIGNMENT'],
4        entityId (string, compulsory),
5        body (string, compulsory),
6        retailerId (string, optional)
7        }

Language: java

Name: Category request

Description:

[Warning: empty required content area]
1{
2 "entityType":"ORDER",
3 "entityId":"432567",
4 "body":"Customer called to confirm delivery date",
5 "retailerId":"197"
6 }

Language: json

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and Sample

1SuccessMessageResponse {
2
3    commentId (string, optional),
4    message (string, optional),
5    status (string, optional)
6    }

Language: java

Name: Category response

Description:

[Warning: empty required content area]
1{
2 "commentId": 427323
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]
View Category details

Retrieve details of the Category

GET: 

`/api/v4.1/order/{orderId}/comment`

Request and response

Request parameters and sample

1commentRequest {
2    start (integer, optional),
3    count (integer, optional)
4    }

Language: java

Name: Comment request

Description:

[Warning: empty required content area]
1{
2 "start":"1",
3 "count":"10"
4 }

Language: json

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and Sample

1SuccessMessageResponse {
2    
3    start (integer, optional),
4    count (integer, optional),
5    total (integer, optional),
6    results (integer, optional):
7    [
8        {
9        commentId (string, optional),
10        body (string, optional),
11        createdBy (string, optional),
12        createdOn (Date-time, optional)
13        }
14    ]
15}

Language: java

Name: Comment Response Example

Description:

[Warning: empty required content area]


1{
2"start":1,
3"count":10,
4"total":1,
5"results":[
6{
7"commentId":62240,
8"body":"Customer called to confirm delivery date",
9"createdBy":"John Smith",
10"createdOn":"2016-07-19T23:36:13.015+0000"
11}
12]
13}

Language: json

Name: Example Response

Description:

[Warning: empty required content area]

Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500


Consignment API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

The Consignment API is responsible for retrieving and updating the status of fulfilment's managed through the Fluent Retail platform. Users can also add consignment details to articles on fulfilment's booked outside of the platform through the Consignment API.

Key points

  • Consignment Properties
  • What you can do with Consignment
  • Response on Failures

Consignment API

Consignment Properties

Below are the properties available in the Comment object which can be updated and retrieved through the APIs in this document.

1. consignmentId

Type: Long

1{ "consignmentId" : "1808656" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The unique identifier assigned by Fluent Commerce.

2. carrierId

Type: String

1{ "carrierId" : "21" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The unique identifier assigned to the carrier.

3. carrierName

Type: String

1{ "carrierName" : "Temando" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The carrier name

4. consignmentRef

Type: String

1{ "consignmentRef" : "25018856" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The external consignment reference assigned by the carrier.

5. labelUrl

Type: String

1{ "labelUrl" : "de6cb885-81d3-40ad-8ade-0177a8c58b8d.pdf" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The unique identifier assigned by Fluent Commerce.

6. status

Type: Enum

1{ "status" : "ACTIVE_SENT" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The status of the consignment

Valid values are:

  • ASSIGNED - A courier booking has been initiated. An API call has been made to the courier.
  • ACTIVE_LODGED - A consignment has been created with a courier. The booking has been confirmed.
  • ACTIVE_SENT - The consignment has been picked up by the courier.
  • COMPLETE - The shipment has been delivered.
  • FAILED - The courier booking has failed. The store associate will be required to follow in-store procedures to book the courier. Our system will not be updated once the booking has been made.
7. retailerId

Type: String

1{ "retailerId" : "197" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The retailer identifier assigned by Fluent Commerce.

8. orderSummaryUrl

Type: String

1{ "orderSummaryUrl" : NULL }

Language: json

Name: Description

Description:

[Warning: empty required content area]

Manifest url for consignment.

9. createdOn

Type: DateTime

1{ "createdOn" : "2016-11-06T23:41:12.242Z" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

Date/time when the Consignment was created.

10. shipmentId

Type: String

1{ "shipmentId" : "765403" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The unique identifier assigned to the shipment.

11. consignmentReason

Type: String

1{ "consignmentReason" : "Priority delivery" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The consignment reason property. Provided reason from 3rd party courier.


What you can do with Consignment

View Consignment Details

Retrieve details of the Consignment.

GET: 

`/api/v4.1/consignment/{consignmentId}`

Request and response

Request parameters and sample. 

 Consignment request

`/api/v4.1/consignment/{consignmentId}`

1/api/v4.1/consignment/1808656

Language: java

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

 Consignment response

1ConsignmentResponse {
2
3    carrierId (string),
4    carrierName (string),
5    consignmentId (string),
6    consignmentRef (string),
7    labelUrl (string),
8    status = ['ASSIGNED', 'ACTIVE_LODGED', 'ACTIVE_SENT', 'COMPLETE', 'FAILED'] (string),
9    retailerId (string),
10    orderSummaryUrl (string),
11    createdOn (string)
12    }

Language: java

Name: Consignment Response Example

Description:

[Warning: empty required content area]
1{
2 "carrierId":"21",
3 "carrierName":"temando",
4 "consignmentId":"1808656",
5 "consignmentRef":"25018856",
6 "labelUrl":"de6cb885-81d3-40ad-8ade-0177a8c58b8d.pdf",
7 "status":"ACTIVE_SENT",
8 "retailerId":"197",
9 "orderSummaryUrl":"null",
10 "createdOn":"2015-06-23T07:58:58.000+0000"
11}

Language: java

Name: Example Response

Description:

[Warning: empty required content area]
Update Consignment Details

Edit the Consignment information.

PUT: 

`/api/v4.1/consignment`

Request and response

Request parameters and sample

 Consignment request

1ConsignmentResponse {
2    consignmentId (long, compulsory),
3    carrierId (string, optional),
4    carrierName (string, optional),
5    consignmentRef (string, optional),
6    labelUrl (string, optional),
7    shipmentId (string, optional),
8    consignmentReason (string, optional),
9    status = ['ASSIGNED', 'ACTIVE_LODGED', 'ACTIVE_SENT', 'COMPLETE', 'FAILED'] (string, optional),
10    retailerId (string, compulsory),
11    orderSummaryUrl (string, optional),
12    }

Language: java

Name: Consignment Request Example

Description:

[Warning: empty required content area]
1{
2 "consignmentId":"1808656",
3 "carrierId":"21",
4 "carrierName":"temando",
5 "consignmentRef":"25018856",
6 "labelUrl":"de6cb885-81d3-40ad-8ade-0177a8c58b8d.pdf",
7 "shipmentId":"765403",
8 "consignmentReason":"",
9 "status":"ACTIVE_SENT",
10 "retailerId":"197",
11 "orderSummaryUrl":"null",
12}

Language: java

Name: Example Request

Description:

[Warning: empty required content area]

Response Parameters and Sample

1SuccessMessageResponse {
2    id (object, optional),
3    message (string, optional),
4    status (string, optional)
5    }

Language: java

Name: Consignment response

Description:

[Warning: empty required content area]
1{
2 "id":"1808656"
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]

Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500


Fulfilment API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

A fulfilment represents one or more items in an order that need to be picked & packed for the customer. A fulfilment is assigned to a location based on the retailer's fulfilment rules and available inventory. A fulfilment will have an origin (from) and destination (to) associated with it.

Key points

  • Fulfilment Properties
  • What you can do with Fulfilment
  • Response on Failures

Fulfilment API

Fulfilment Properties

Below are the properties available in the Fulfilment object which can be updated and retrieved through the APIs in this document.

1. fulfilmentType

Type: String

1{ "CC_PFS" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Fulfilment type confirms how the customer will receive the order - in-store collection (CC) or delivery (HD) - and is used to determine the location(s) that can be used to pick and pack the order.

Possible values:

  • CC_PFS : Click & Collect - Pick from Store
  • CC_PFDC : Click & Collect - Pick from DC
  • HD_PFS : Home Delivery - Pick from Store
  • HD_PFDC : Home Delivery - Pick from DC
2. fulfilmentId

Type: Long

1{ 4161 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

The unique fulfilment identifier assigned by Fluent Commerce.

3. fulfilmentRef

Type: String

1{ "1442901695" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

The unique fulfilment reference provided by the retailer.

4. orderId

Type: String

1{ "16425" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The external consignment reference assigned by the carrier.

5. eta

Type: String

1{ "2D" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

The estimated time of completing the fulfilment. The ETA is configurable per retailer and can be hours e.g "3HR" or days e.g. "2D”.

6. expiryTime

Type: DateTime

1{ "2015-09-16T00:50:56.959Z" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

The Fulfilment expiry time.

7. deliveryType

Type: String

1{ "deliveryType" : "EXPRESS" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The fulfilment delivery type. Based on retailers shipping options. Retailer fulfilment rules will determine how order is handled.

Possible values include: STANDARD | EXPRESS | OVERNIGHT | 3HOURS

8. fromAddress

Type: Object

1{ "locationRef" : "1013" }
2
3{ "companyName" : "null" }
4
5{ "name" : "John Smith" }
6
7{ "street" : "25 James Drive" }
8
9{ "city" : "Sydney" }
10
11{ "postcode" : "2000" }
12
13{ "state" : "NSW" }
14
15{ "country" : "AU" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

The location where the Fulfilment is being actioned

  • locationRef (String) : The location (i.e. store) number provided by the retailer. Required if address details not provided.
  • companyName (String) : The company name if delivering to a business location. Optional.
  • name (String) : The contact name provided with the order
  • street (String) : Street address. Required if locationRef not provided.
  • city (String) : City. Required if locationRef not provided.
  • postcode (String) : Postcode. Required if locationRef not provided.
  • state (String) : State. Required if locationRef not provided.
  • country (String, Optional) : Country. Required if locationRef not provided.
9. toAddress

Type: Object

Description: The location where the Article will be sent - either a store location for in-store collections (CC) or customer address (HD).

See examples and definitions above.

10. items

Type: Array

1{ "fulfilmentItemId" : "46787" }
2
3{ "fulfilmentItemRef" : "483" }
4
5{ "orderItemId" : "10" }
6
7{ "orderItemRef" : "AR1-4001-WH-1-2" }
8
9{ "skuRef" : "FX141123TPRT-1-2" }
10
11{ "requestedQty" : "1" }
12
13{ "availableQty" : "1" }
14
15{ "filledQty" : "1" }
16
17
18{ "rejectedQty" : "0" }
19
20
21{ "status" : "CREATED" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

An array of order item(s) assigned to the fulfilment

  • fulfilmentItemId (String) : The unique identifier assigned to the Fulfilment Item by Fluent Commerce
  • fulfilmentItemRef (String) : The Fulfilment Item reference provided by the Retailer
  • orderItemId (String) : The unique identifier assigned to the Order Item by Fluent Commerce
  • orderItemRef (String) : The Order Item reference provided by the Retailer
  • skuRef (String) : The unique reference or code provided by the retailer
  • requestedQty (Integer) : The total quantity assigned to the fulfilment
  • availableQty (Integer) : The quantity available at the fulfilment location
  • filledQty (Integer) : The quality confirmed by the fulfilment location
  • rejectedQty (Integer) : The quality rejected by the fulfilment location
  • status (String) : The status of the fulfilment item. Possible values are CREATED.
11. consignment

Type: Object

1{ "carrierId" : "21" }
2
3{ "consignmentRef" : "25018856" }
4
5{ "labelUrl" : "de6cb885-81d3-40ad-8ade-0177a8c58b8d.pdf" }
6
7{ "status" : "ACTIVE_SENT" }
8
9{ "retailerId" : "197" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

The consignment details

  • carrierId (string) : The unique identifier assigned to the carrier
  • carrierName (string) : The carrier name
  • consignmentRef (string) : The external consignment reference assigned by the carrier
  • labelUrl (string) : The URL used to retrieve the shipping label
  • status (string) : The status of the consignment Possible values are:
    • ASSIGNED - A courier booking has been initiated. An API call has been made to the courier.
    • ACTIVE_LODGED - A consignment has been created with a courier. The booking has been confirmed.
    • ACTIVE_SENT - The consignment has been picked up by the courier.
    • COMPLETE - The shipment has been delivered.
    • FAILED - The courier booking has failed. The store associate will be required to follow in-store procedures to book the courier. Our system will not be updated once the booking has been made.
  • retailerId (string) : The retailer identifier assigned by Fluent Commerce.
12. attributes

Type: Array

Description:

1"attributes": [
2
3{
4
5"name" : "Supplier Address",
6
7"type" : "address",
8
9"value" : {
10
11    "value" : "46, Kippax Street",
12
13    "Suburb" : "Surry Hills",
14
15    "Post Code" : "2010",
16
17    "State" : "NSW,
18
19    "State" : "AU"
20
21    }
22
23},
24
25{
26
27"name" : "ECP",
28
29"type" : "string",
30
31"value" : "XSD987"
32
33}
34
35]

Language: java

Name: Attributes Description Example

Description:

[Warning: empty required content area]

Array of attributes. Attributes are used to provide additional information about the order. Standard attribute types like string, integer and complex types like address which has more than one value are supported as well.

  • name (String, Optional) : Name of attributes
  • type (String, Optional) : Type of value provided (String, Integer, Address etc)
  • value (String, Optional) : attribute value
13. status

Type: String

1{ "status" : "FULFILLED" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The status of the fulfilment

Valid values are:

  • CREATED - The fulfilment has been allocated to a location based on the fulfilment rules.
  • ASSIGNED - The fulfilment has been assigned to a wave by the store associate using ServicePoint.
  • CANCELLED - (a) The order, and all associated fulfilments, have been cancelled via Admin Console (b) The allocated location was unable to fulfill within the pick & pack time limit.
  • FULFILLED - All order items have been confirmed. An article will be created. A consignment will also be created for Home Delivery orders.
  • PARTIALLY FULFILLED - Only some of the items in the fulfilment were available at the location. For home delivery orders, the rejected items will be allocated to another location (a new fulfilment) if the split limit has not been exceeded. For Click & Collect orders, any rejected items will be allocated to the Distribution Center. An article will be created for the fulfilled items. A consignment will also be created for Home Delivery orders.
  • REJECTED - All order items are unavailable at the location.
14. createdOn

Type: DateTime

1{ "createdOn" : "2016-05-06T23:41:12.242Z" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

Date/time when the fulfilment was created.

15. updatedOn

Type: DateTime

1{ "2015-09-16T00:50:56.959Z" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Date/time when the fulfilment was last updated.


What you can do with Fulfilment

Create a Fulfilment

Create a Fulfilment in the Fluent Commerce system.

POST: 

`/api/v4.1/order/{orderId}/fulfilment`

Request and response

Request parameters and sample

Fulfilment request

1FulfilmentRequest {
2    fulfilmentType (string, compulsory) = 'CC_PFS', 'CC_PFDC', 'HD_PFS', 'HD_PFDC'
3    eta (string, optional),
4    expiryTime (DateTime, optional),
5    deliveryType (string, optional) = 'STANDARD', 'EXPRESS', 'OVERNIGHT',
6    fulfilmentRef (string, optional),
7    fromAddress (object, optional),
8    toAddress (object, compulsory),
9    items (array, optional),
10    consignment (object, compulsory),
11    attributes (Array[Attribute], optional)
12}
13
14fromAddress {
15        locationRef (string, conditional),
16        companyName (string, optional),
17        name (string, optional),
18        street (string, conditional),
19        city (string, conditional),
20        postcode (string, conditional),
21        state (string, conditional),
22        country (string, conditional)
23}
24
25toAddress {
26        locationRef (string, conditional),
27        companyName (string, optional),
28        name (string, optional),
29        street (string, conditional),
30        city (string, conditional),
31        postcode (string, conditional),
32        state (string, conditional),
33        country (string, conditional)
34}
35
36items {
37        fulfilmentItemRef (string, optional),
38        orderItemId (string, optional),
39        orderItemRef (string, optional),
40        skuRef (string, optional),
41        requestedQty (integer, optional)
42}
43
44consignment {
45        carrierId (string, compulsory),
46        consignmentRef (string, optional),
47        labelUrl (string, optional),
48        status (string, optional) = ['ASSIGNED', 'ACTIVE_LODGED', 'ACTIVE_SENT', 'COMPLETE', 'FAILED'],
49        retailerId (string, optional)
50}
51
52Attribute {
53        name (string, optional),
54        type (string, optional) = ['STRING', 'INTEGER'],
55        value (string, optional)
56}
57

Language: java

Name: Fulfilment Request Example

Description:

[Warning: empty required content area]
1{
2"deliveryType": "EXPRESS",
3"eta": "2D",
4"expiryTime": "2015-09-16T00:50:56.959Z",
5"fromAddress": {
6"locationRef": "080",
7"companyName": "testName",
8"name": "testName",
9"street": "1 Anderson Street",
10"city": "Chatswood",
11"postcode": "2067",
12"state": "NSW",
13"country": "Australia"
14},
15"fulfilmentRef": "1442901695",
16"fulfilmentType": "CC_PFS",
17"toAddress": {
18"companyName": "testName",
19"name": "testName",
20"street": "1 Anderson Street",
21"city": "Chatswood",
22"postcode": "2067",
23"state": "NSW",
24"country": "Australia"
25},
26"items": [
27{
28"orderItemId": "10",
29"orderItemRef": "AR1-4001-WH-1-2",
30"requestedQty": 1,
31"skuRef": "7066028-796-S"
32}
33],
34"consignment": {
35"carrierId": "1",
36"status": "ASSIGNED",
37"labelUrl": "labelUrl1",
38"consignmentRef": "1442901695",
39"retailerId": "211"
40}
41}

Language: json

Name: Example request

Description:

[Warning: empty required content area]

Request parameters and sample

1SuccessMessageResponse {
2    id (object, optional),
3    message (string, optional),
4    status (string, optional)
5}

Language: java

Name: Fulfilment response

Description:

[Warning: empty required content area]
1{
2 "id":"427323"
3}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
Unique Constraints and Duplicate Handling

The platform prevents the creation of duplicate fulfilments by using a unique constraint on the following combination fields:

  • Order ID
  • From Location ID
  • To Location Address fields
    • Street
    • City
    • Post Code
  • Shipment Type (which is the Fulfilment Type - e.g: CC_PFS, CC_PFDC, etc.)
  • Delivery Type
  • Fulfilment Item fields (sorted by Order Item ID ascending):
    • Order Items ID
    • Requested Quantity

The API will return an error in the case that a duplicate fulfilment is trying to be created:

1{
2  "errors": [
3    {
4      "code": "400",
5      "message": "Fulfilment constraint violation error"
6    }
7  ]
8}

Language: json

Name: Rest API error:

Description:

[Warning: empty required content area]
ENABLE DUPLICATE FULFILMENT ATTRIBUTE

There are certain circumstances where a duplicate fulfilment may be intended for a use case. For example, if the fulfilment has expired (or been rejected) at a specific location, but the intention is still to fulfill from that location. In this case, a special attribute can be added to the Fulfilment to allow the duplicate fulfilment to be created and assigned to the same location as the first.

To enable a duplicate fulfilment creation, first enable the feature in Account Settings (

`fc.api.fulfilment.uniqueness`
), and then add the following attribute to the Fulfilment POST API.

1{
2    "name": "ENABLE_DUPLICATE_ENTITY",
3    "type": "BOOLEAN",
4    "value": true
5}

Language: json

Name: ENABLE_DUPLICATE_ENTITY

Description:

[Warning: empty required content area]
View Fulfilment Details

Retrieve details of the Fulfilment.

GET: 

`/api/v4.1/fulfilment/{fulfilmentId}`

Request and response

Request parameters and sample

Fulfilment request

`/api/v4.1/fulfilment/{fulfilmentId}`

 Example request

`/api/v4.1/fulfilment/41241412412`

Response Parameters and sample

 Fulfilment response

1fulfilmentResponse {
2    fulfilmentId (long)
3    status (string) = 'CREATED', 'ASSIGNED', 'PARTIALLY_FULFILLED', 'FULFILLED', 'CANCELLED', 'COMPLETE', 'REJECTED',
4    fulfilmentType (string) = 'CC_PFS', 'CC_PFDC', 'HD_PFS', 'HD_PFDC'
5    eta (string),
6    expiryTime (DateTime),
7    deliveryType (string) = 'STANDARD', 'EXPRESS', 'OVERNIGHT',
8    fulfilmentRef (string),
9    createdOn (string),
10    updatedOn (string),
11    fromAddress (object),
12    toAddress (object),
13    items (array),
14    consignment (object)
15}
16
17fromAddress {
18        locationRef (string),
19        companyName (string),
20        name (string),
21        street (string),
22        city (string),
23        postcode (string),
24        state (string),
25        country (string)
26        }
27
28toAddress {
29        locationRef (string),
30        companyName (string),
31        name (string),
32        street (string),
33        city (string),
34        postcode (string),
35        state (string),
36        country (string)
37        }
38        
39items {
40        fulfilmentItemId (string),
41        fulfilmentItemRef (string),
42        orderItemId (string),
43        orderItemRef (string),
44        skuRef (string),
45        requestedQty (integer),
46        filledQty (integer),
47        rejectedQty (integer),
48        status (string) = CREATED
49        }
50        
51consignment {
52        carrierId (string),
53        carrierName (string),
54        consignmentId (string),
55        consignmentRef (string),
56        labelUrl (string),
57        status (string) = ['ASSIGNED', 'ACTIVE_LODGED', 'ACTIVE_SENT', 'COMPLETE', 'FAILED'],
58        retailerId (string)
59        }

Language: java

Name: Fulfilment Response Example

Description:

[Warning: empty required content area]

Example response

1{
2"fulfilmentId": 4161,
3"deliveryType": "EXPRESS",
4"eta": "2D",
5"expiryTime": "2015-09-16T00:50:57.000+0000",
6"fromAddress": {
7"locationRef": "080",
8"street": "1 Anderson Street",
9"city": "Chatswood",
10"postcode": "2067",
11"state": "NSW",
12"country": "Australia"
13},
14"fulfilmentRef": "1442901695",
15"fulfilmentType": "CC_PFS",
16"items": [
17{
18"fulfilmentItemId": 11876,
19"fulfilmentItemRef": null,
20"orderItemId": 10,
21"orderItemRef": "AR1-4001-WH-1-2",
22"requestedQty": 1,
23"skuRef": "7066028-796-S"
24}
25],
26"toAddress": {
27"name": "testName",
28"street": "1 Anderson Street",
29"city": "Chatswood",
30"postcode": "2067",
31"state": "NSW",
32"country": "Australia"
33},
34"consignment": {
35"consignmentId": 1739911,
36"carrierId": "1",
37"consignmentRef": "1442901695",
38"labelUrl": "labelUrl1",
39"status": "ASSIGNED",
40"retailerId": "211"
41}
42}

Language: json

Name: Example response

Description:

[Warning: empty required content area]

Update Fulfilment Status

Update the Fulfilment status.

PUT: 

`/api/v4.1/fulfilment/{fulfilmentId}/transition/{status}`

Request and response

Request parameters and sample

Fulfilment request

`/api/v4.1/fulfilment/{fulfilmentId}/transition/{status}`

 Example request

`/api/v4.1/fulfilment/34254/transition/FULFILLED`

Response Parameters and sample

1SuccessMessageResponse {
2    id (UUID), 
3}

Language: java

Name: Fulfilment response

Description:

[Warning: empty required content area]
1{
2 "id":"34254"
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]
View all Fulfilments associated with an Order

Retrieve details of all Fulfilments within an order.

GET: 

`/api/v4.1/order/{orderId}/fulfilment`

Request and response

Request parameters and sample

Fulfilment request

`/api/v4.1/order/{orderId}/fulfilment`

 Example request

`/api/v4.1/order/16425/fulfilment`

Response Parameters and sample

 Fulfilment response

1response {
2    orderId (string),
3    fulfilments (enum[Fulfilments]) [
4    {
5        fulfilmentId (long)
6        status (string) = 'CREATED', 'ASSIGNED', 'PARTIALLY_FULFILLED', 'FULFILLED', 'CANCELLED', 'COMPLETE', 'REJECTED',
7        fulfilmentType (string) = 'CC_PFS', 'CC_PFDC', 'HD_PFS', 'HD_PFDC'
8        eta (string),
9        expiryTime (DateTime),
10        deliveryType (string) = 'STANDARD', 'EXPRESS', 'OVERNIGHT',
11        fulfilmentRef (string),
12        createdOn (string),
13            updatedOn (string),
14        fromAddress (object),
15        toAddress (object),
16        items (array),
17        consignment (object),
18    }]
19}
20
21 fromAddress {
22        locationRef (string),
23        companyName (string),
24        name (string),
25        street (string),
26        city (string),
27        postcode (string),
28        state (string),
29        country (string)
30}
31
32 toAddress {
33        locationRef (string),
34        companyName (string),
35        name (string),
36        street (string),
37        city (string),
38        postcode (string),
39        state (string),
40        country (string)
41}
42
43items {
44        fulfilmentItemId (string),
45        fulfilmentItemRef (string),
46        orderItemId (string),
47        orderItemRef (string),
48        skuRef (string),
49        requestedQty (integer),
50        filledQty (integer),
51        rejectedQty (integer),
52        status (string) = CREATED
53}
54
55consignment {
56        carrierId (string),
57        carrierName (string),
58        consignmentId (string),
59        consignmentRef (string),
60        labelUrl (string),
61        status (string) = ('ASSIGNED', 'ACTIVE_LODGED', 'ACTIVE_SENT', 'COMPLETE', 'FAILED'),
62        retailerId (string)
63}
64

Language: java

Name: Fulfilment Response Example

Description:

[Warning: empty required content area]
1{
2  "orderId": "122352",
3  "fulfilments": [
4    {
5      "fulfilmentId": 1000913,
6      "deliveryType": "STANDARD",
7      "eta": "1D",
8      "createdOn": "2015-11-16T04:07:24.000+0000",
9      "updatedOn": "2015-11-16T04:07:24.000+0000",
10      "expiryTime": "2015-11-21T00:00:00.000+0000",
11      "status": "CREATED",
12      "fulfilmentRef": null,
13      "fulfilmentType": "HD_PFDC",
14      "items": [
15        {
16          "fulfilmentItemId": 122724,
17          "fulfilmentItemRef": "1082088-1-12-se",
18          "orderItemId": 136443,
19          "orderItemRef": "1082088-1-12-se",
20          "requestedQty": 1,
21          "confirmedQty": 0,
22          "filledQty": 0,
23          "rejectedQty": 0,
24          "skuRef": "1082088-1-12-se"
25        }
26      ],
27      "fromAddress": {
28        "locationRef": "SHA067",
29        "companyName": "Seed Heritage Warehouse",
30        "name": null,
31        "street": "6 ARDENA CRT   ",
32        "city": "BENTLEIGH EAST",
33        "postcode": "3165",
34        "state": "VIC",
35        "country": "Australia"
36      },
37      "toAddress": {
38        "companyName": "",
39        "name": "John Smith",
40        "street": "Store 65-77 Market Street",
41        "city": "Sydney",
42        "postcode": "2000",
43        "state": "NSW",
44        "country": "AU"
45      },
46      "consignment": null
47    },
48    {
49      "fulfilmentId": 1000914,
50      "deliveryType": "STANDARD",
51      "eta": "1D",
52      "createdOn": "2015-11-16T04:07:24.000+0000",
53      "updatedOn": "2015-11-17T03:09:36.000+0000",
54      "expiryTime": "2015-11-21T00:00:00.000+0000",
55      "status": "CANCELLED",
56      "fulfilmentRef": null,
57      "fulfilmentType": "HD_PFS",
58      "items": [
59        {
60          "fulfilmentItemId": 122725,
61          "fulfilmentItemRef": "1082102-1281-10-se",
62          "orderItemId": 136444,
63          "orderItemRef": "1082102-1281-10-se",
64          "requestedQty": 1,
65          "confirmedQty": 0,
66          "filledQty": 0,
67          "rejectedQty": 0,
68          "skuRef": "1082102-1281-10-se"
69        }
70      ],
71      "fromAddress": {
72        "locationRef": "SHA081",
73        "companyName": "Seed Heritage Oxford Street",
74        "name": null,
75        "street": "280 Oxford Street",
76        "city": "Paddington",
77        "postcode": "2021",
78        "state": "NSW",
79        "country": "Australia"
80      },
81      "toAddress": {
82        "companyName": "",
83        "name": "John Smith",
84        "street": "Store 65-77 Market Street",
85        "city": "Sydney",
86        "postcode": "2000",
87        "state": "NSW",
88        "country": "AU"
89      },
90      "consignment": null
91    },
92    {
93      "fulfilmentId": 1001072,
94      "deliveryType": "STANDARD",
95      "eta": "1D",
96      "createdOn": "2015-11-17T03:09:36.000+0000",
97      "updatedOn": "2015-11-18T02:39:38.000+0000",
98      "expiryTime": "2015-11-21T00:00:00.000+0000",
99      "status": "CANCELLED",
100      "fulfilmentRef": null,
101      "fulfilmentType": "HD_PFS",
102      "items": [
103        {
104          "fulfilmentItemId": 122915,
105          "fulfilmentItemRef": "1082102-1281-10-se",
106          "orderItemId": 136444,
107          "orderItemRef": "1082102-1281-10-se",
108          "requestedQty": 1,
109          "confirmedQty": 0,
110          "filledQty": 0,
111          "rejectedQty": 0,
112          "skuRef": "1082102-1281-10-se"
113        }
114      ],
115      "fromAddress": {
116        "locationRef": "SHA090",
117        "companyName": "Seed Heritage Mosman",
118        "name": null,
119        "street": "SHOP 1 778-782 MILITARY RD",
120        "city": "MOSMAN",
121        "postcode": "2088",
122        "state": "NSW",
123        "country": "Australia"
124      },
125      "toAddress": {
126        "companyName": "",
127        "name": "John Smith",
128        "street": "Store 65-77 Market Street",
129        "city": "Sydney",
130        "postcode": "2000",
131        "state": "NSW",
132        "country": "AU"
133      },
134      "consignment": null
135    },
136    {
137      "fulfilmentId": 1001192,
138      "deliveryType": "STANDARD",
139      "eta": "1D",
140      "createdOn": "2015-11-18T02:39:38.000+0000",
141      "updatedOn": "2015-11-18T02:39:38.000+0000",
142      "expiryTime": "2015-11-21T00:00:00.000+0000",
143      "status": "REJECTED",
144      "fulfilmentRef": null,
145      "fulfilmentType": "HD_PFDC",
146      "items": [
147        {
148          "fulfilmentItemId": 123058,
149          "fulfilmentItemRef": "1082102-1281-10-se",
150          "orderItemId": 136444,
151          "orderItemRef": "1082102-1281-10-se",
152          "requestedQty": 1,
153          "confirmedQty": 0,
154          "filledQty": 0,
155          "rejectedQty": 1,
156          "skuRef": "1082102-1281-10-se"
157        }
158      ],
159      "fromAddress": {
160        "locationRef": "SHA067",
161        "companyName": "Seed Heritage Warehouse",
162        "name": null,
163        "street": "6 ARDENA CRT   ",
164        "city": "BENTLEIGH EAST",
165        "postcode": "3165",
166        "state": "VIC",
167        "country": "Australia"
168      },
169      "toAddress": null,
170      "consignment": null
171    }
172  ]
173}

Language: json

Name: Example Response

Description:

[Warning: empty required content area]
View Fulfilment Attributes

Retrieve Fulfilment details.

GET: 

`/api/v4.1/fulfilment/{fulfilmentId}/attribute`

Request and response

Request parameters and sample

Fulfilment request

`/api/v4.1/fulfilment/{fulfilmentId}/attribute`

 Example request

`/api/v4.1/fulfilment/1231/attribute`

Response Parameters and sample

 Fulfilment response

1fulfilmentResponse {
2    fulfilmentId (long), 
3    attributes (array)
4}
5
6// View Attributes
7    attributes {
8        name (string),
9        type (string),
10        value (string)
11    }

Language: java

Name: Fulfilment Response Example

Description:

[Warning: empty required content area]
1{
2"fulfilmentId": "1231",
3"attributes": [
4
5{
6"name": "Address",
7"type" : "address",
8"value" : {
9"Address 1" : "46, Kipax Street",
10"Suburb" : "Surry Hills",
11"Post code" : "2010",
12"State" : "NSW"
13}
14}
15]
16}

Language: json

Name: Example Response

Description:

[Warning: empty required content area]
Update Fulfilment Details

Edit the Fulfilment information.

PUT: 

`/api/v4.1/order/{orderId}/fulfilment/{fulfilmentId}`

Request and response

Request and response

Request parameters and sample

Fulfilment request

1FulfilmentRequest {
2    fulfilmentType (string, optional) = 'CC_PFS', 'CC_PFDC', 'HD_PFS', 'HD_PFDC'
3    eta (string, optional),
4    expiryTime (DateTime, optional),
5    deliveryType (string, optional) = 'STANDARD', 'EXPRESS', 'OVERNIGHT',
6    fulfilmentRef (string, optional),
7    fromAddress (object, optional),
8    toAddress (object, optional),
9    items (array, optional),
10    consignment (object, optional),
11    attributes (Array[Attribute], optional)
12}
13
14fromAddress {
15
16        locationRef (string, optional),
17        companyName (string, optional),
18        name (string, optional),
19        street (string, optional),
20        city (string, optional),
21        postcode (string, optional),
22        state (string, optional),
23        country (string, optional)
24        }
25
26toAddress {
27
28        locationRef (string, optional),
29        companyName (string, optional),
30        name (string, optional),
31        street (string, optional),
32        city (string, optional),
33        postcode (string, optional),
34        state (string, optional),
35        country (string, optional)
36        }
37
38items {
39
40        fulfilmentItemRef (string, optional),
41        orderItemId (string, optional),
42        orderItemRef (string, optional),
43        skuRef (string, optional),
44        requestedQty (integer, optional)
45        availableQty (integer, optional)
46        }
47
48consignment {
49
50        carrierId (string, compulsory),
51        consignmentRef (string, optional),
52        labelUrl (string, optional),
53        status (string, optional) = ['ASSIGNED', 'ACTIVE_LODGED', 'ACTIVE_SENT', 'COMPLETE', 'FAILED'],
54        retailerId (string, compulsory)
55        }
56
57Attribute {
58
59        name (string, optional),
60        type (string, optional) = ['STRING', 'INTEGER'],
61        value (string, optional)
62    }

Language: java

Name: Fulfilment Request Example

Description:

[Warning: empty required content area]

Example request

1{
2"deliveryType": "EXPRESS",
3"eta": "2D",
4"expiryTime": "2015-09-16T00:50:56.959Z",
5"fromAddress": {
6"locationRef": "080",
7"companyName": "testName",
8"name": "testName",
9"street": "update 1 Anderson Street",
10"city": "Chatswood",
11"postcode": "2067",
12"state": "NSW",
13"country": "Australia"
14},
15"fulfilmentRef": "TestFul_4496",
16"fulfilmentType": "CC_PFS",
17"toAddress": {
18"companyName": "UpdatetestName",
19"name": "testName",
20"street": "1 Anderson Street",
21"city": "Chatswood",
22"postcode": "2067",
23"state": "NSW",
24"country": "Australia"
25},
26"items": [
27{
28
29"orderItemId": "10",
30"orderItemRef": "AR1-4001-WH-1-2",
31"requestedQty": 1,
32"skuRef": "7066028-796-S"
33}
34],
35"consignment": {
36"carrierId": "1",
37"status": "ASSIGNED",
38"labelUrl": "labelUrl1",
39"consignmentRef": "CPANRMZ0000982",
40"retailerId": "211"
41}
42}

Language: json

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

1SuccessMessageResponse {
2
3    id (object, optional),
4    message (string, optional),
5    status (string, optional)
6    }

Language: java

Name: Fulfilment response

Description:

[Warning: empty required content area]
1{
2 "id":"427323"
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]
Update Fulfilment Attributes

Edit Fulfilment details.

PUT: 

`/api/v4.1/fulfilment/{fulfilmentId}/attribute`

Request and response

Request parameters and sample

Fulfilment request

1fulfilmentRequest {
2
3    attributes (Array[Attribute], optional)
4}
5
6Attribute {
7
8        name (string, compulsory),
9        type (string, optional) = ['STRING', 'INTEGER'],
10        value (string, optional)
11    }

Language: java

Name: Fulfilment Request Example

Description:

[Warning: empty required content area]

Example request

1{
2"attributes": [
3
4{
5"name": "Address",
6"type" : "address",
7"value" : {
8"Address 1" : "46, Kipax Street",
9"Suburb" : "Surry Hills",
10"Post code" : "2010",
11"State" : "NSW"
12}
13}
14]
15}

Language: json

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

1SuccessMessageResponse {
2
3    id (object, optional),
4    message (string, optional),
5    status (string, optional)
6}

Language: java

Name: Fulfilment response

Description:

[Warning: empty required content area]
1{
2 "id":""
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500

Fulfillment Options API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

The Fulfillment Options API retrieves the proposed Fulfillment Options for the customer order.

Key points

  • Fulfillment Options Properties
  • What you can do with Fulfillment Options
  • FulfilmentOptions.FulfilmentOptionsAddress
  • InventoryPosition.ProposedFulfilment.Item
  • Attribute
  • FulfilmentOptions.UnfulfilledItem
  • FulfilmemntPlan
  • FulfilmentPlan.Fulfilment
  • FulfilmentPlan.Fulfilment.FulfilmentItem
  • Exception
  • Response on Failures

Fulfillment Options Properties

Below are the properties available in the Fulfillment options object which can be updated and retrieved through the APIs in this document.

1. id

Type: String

1{ "id" : "442755c4-28ee-4404-9e21-abe29bb3a1e5" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Unique ID of the Fulfillment Option.

2. status

Type: String

1{ "status" : "OPTIONS_PROVIDED" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Status of the Fulfillment Option.

3. limit

Type: Integer

1{ "limit" : 10 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Limit the number of Fulfillment Plans to be returned.

4. count

Type: Integer

1{ "count" : 1 }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The number of Fulfillment Plans returned in this response.

5. total

Type: String

1{ "total" : 1 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

The total number Fulfillment Plans generated.

6. orderType

Type: String

1{ "orderType" : "HD" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Type of order - eg. click & collect (CC) or home delivery (HD).

7. locationRef

Type: String

1{ "locationRef" : "LO1013" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The unique reference of the location.

8. trackingId

Type: Integer

1{ "trackingId" : "41123TP" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

A unique identifier for the end user to link related Fulfillment Options.

9. retailerId

Type: Long

1{ "retailerID" : 1 }

Language: json

Name: Description

Description:

[Warning: empty required content area]

Unique ID of the retailer

10. address

Type: FulfilmentOptions.FulfilmentOptionsAddress

Description: For orderType=HD. The delivery address of the order.

11. items

Type: List

Description: List of InventoryPosition.ProposedFulfilment.Item to be fulfillled.

12. attributes

Type: List

Description:

  • List of Attribute
  • Attributes are used to provide additional information about the fulfillment options.
  • Standard attribute types like string, integer and complex types like address are supported as well.
13. unfulfilledItems

Type: List

Description: List of FulfilmentOptions.UnfulfilledItem that were unavailable to be filled by any FulfilmentPlans.

14. plans

Type: List

Description: List of FulfilmentPlan.

15. flexType

Type: String

1{ "flexType" : "FULFILMENT_OPTIONS::DEFAULT" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Type of workflow.

16. flexVersion

Type: Integer

1{ "flexVersion" : 1 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Version of the flexType workflow


FulfilmentOptions.FulfilmentOptionsAddress

1. address1

Type: String

1{ "address1" : "46 Kippax Street" }

Language: java

Name: Description

Description:

[Warning: empty required content area]
2. address2

Type: String

1{ "address2" : "ABC Pvt Ltd" }

Language: java

Name: Description

Description:

[Warning: empty required content area]
3. city

Type: String

1{ "city" : "Surry Hills" }

Language: java

Name: Description

Description:

[Warning: empty required content area]
4. country

Type: String

1{ "country" : "AU" }

Language: json

Name: Description

Description:

[Warning: empty required content area]
5. postcode

Type: String

1{ "postcode" : "2000" }

Language: java

Name: Description

Description:

[Warning: empty required content area]
6. state

Type: String

1{ "state" : "NSW" }

Language: java

Name: Description

Description:

[Warning: empty required content area]
7. latitude

Type: Double

1{ "latitude" : "-27.469712" }

Language: json

Name: Description

Description:

[Warning: empty required content area]
8. longitude

Type: Double

1{ "longitude" : "153.02568" }

Language: java

Name: Description

Description:

[Warning: empty required content area]


InventoryPosition.ProposedFulfilment.Item

1. skuRef

Type: String

1{ "skuRef" : "FX141123TPRT-1-2" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

SKU Reference of the requested item

2. requestedQuantity

Type: Integer

1{ "requestedQuantity" : 1 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Requested Quantity of the item

3. availableQuantity

Type: Integer

1{ "availableQuantity" : 1 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Available Quantity of the item


Attribute

1. name

Type: String

1{ "name" : "Supplier Address" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Name of the attribute.

2. type

Type: String

1{ "type" : "ADDRESS" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Type of the value provided. Possible Values are:

  • 'STRING',
  • 'TEXT',
  • 'INTEGER',
  • 'BOOLEAN',
  • 'ADDRESS',
  • 'OBJECT',
  • 'CUSTOM'
3. value

Type: Object

1{
2
3"value" : {
4
5"address1" : "46 Kippax Street",
6"address2" : "Surry Hills",
7"postcode" : "2010",
8"state" : "NSW,
9"country" : "AU"
10
11}
12
13
14
15}

Language: java

Name: Description

Description:

[Warning: empty required content area]

Value of the attribute.


FulfilmentOptions.UnfulfilledItem

1. skuRef

Type: String

1{ "skuRef" : "DMI111" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

The SKU that was unfulfilled.

2. unavailableQty

Type: Integer

1{ "unavailableQty" : 1 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Quantity of this SKU that was unfulfilled.

3. reasonCode

Type: String

1{ "reasonCode" : "123C" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Reason Code for the item being unfulfilled.

4. reason

Type: String

1{ "reason" : "Too Heavy" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Reason Code for the item being unfulfilled.


FulfilmentPlan

1. id

Type: String

1{ "id" : "d8d46b57-a2d8-472d-a632-c47916a6a0da" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Unique ID of the Fulfillment Plan.

2. retailerId

Type: String

1{ "retailerID" : 1 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Unique ID of the retailer.

3. planId

Type: String

1{ "planId" : "d8d46b57-a2d8-472d-a632-c47916a6a0da" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Unique ID of the Fulfillment Plan (same as id).

4. planType

Type: String

1{ "planType" : "HD" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

Type of the Fulfillment Plan.

5. eta

Type: String

1{ "eta" : "20H" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

ETA of the FulfillmentPlan as configured in the workflows.

Accepted formats are either a numeric string, a numeric string suffixed with either an hour "H" or day "D" character, or null.

1{ "eta" : "8H" } # 8 hours
2
3{ "eta" : "8" } # Converts to "8H" (8 hours)
4
5{ "eta" : "1D" } # 1 day
6
7{ "eta" : "24" } # Converts to "1D" (1 day)
8
9{ "eta" : "48" } # Converts to "2D" (2 days)
10
11{ "eta" : "25" } # Also converts to "2D" (2 days) because it's greater than 1 day/24 hours

Language: java

Name: Example values

Description:

[Warning: empty required content area]

A null value for eta converts to "1D" (1 day).

6. splits

Type: Integer

1{ "splits" : 0 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

The number of times this order was split.

7. fulfilments

Type: List

Description: List of FulfilmentPlan.Fulfilment.

8. exceptions

Type: List

Description: List of Exception.

9. fulfilmentOptionsId

Type: String

1{ "fulfilmentOptionsId" : "442755c4-28ee-4404-9e21-abe29bb3a1e5" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

ID of the Fulfillment Option that created this plan.

10. attributes

Type: List

Description: List of Attributes.

11. status

Type: String

1{ "status" : "COMPLETE" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Status of the Fulfillment Plan.

12. flexType

Type: String

1{ "flexType" : "FULFILMENT_PLAN::DEFAULT" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

Unique ID of the retailer

13. flexVersion

Type: Integer

1{ "flexVersion" : 1 }

Language: json

Name: Description

Description:

[Warning: empty required content area]

Unique ID of the retailer


FulfilmentPlan.Fulfilment

1. fulfilmentType

Type: String

1{ "fulfilmentType" : "HD" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Type of the Fulfillment.

2. locationRef

Type: String

1{ "locationRef" : "LOC123" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Location of the Fulfillment.

3. ETA

Type: String

1{ "eta" : "20H" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

ETA of the Fulfillment Plan as configured in the workflow.

4. items

Type: String

Description: List of FulfilmentPlan.Fulfilment.FulfilmentItem.


FulfilmentPlan.Fulfilment.FulfilmentItem

1. skuRef

Type: String

1{ "skuRef" : "DM12345" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

SKU Reference of the Fulfillment Item.

2. availableQty

Type: Integer

1{ "availableQty" : 1 }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Available Quantity of the Fulfillment Item.


Exception

1. code

Type: String

1{ "code" : "1" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Error Code.

2. message

Type: String

1{ "message" : "WARNING" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Error Message.

3. attributes

Type: List

Description: List of Attributes


What you can do with Fulfillment Options

Create a Fulfillment Option

With this endpoint you can create a fulfillment options entity.

POST: 

`/api/v4.1/fulfilmentOptions`

Request and response

Request parameters and sample

Fulfillment Option request

1FulfilmentOptions Request {
2
3limit (integer)
4orderType (string)
5locationRef (string)
6trackingId (string)
7retailerId (long)
8status (string)
9address (FulfilmentOptions.FulfilmentOptionsAddress)
10items (list of Item)
11attributes (list of Attribute)
12}
13
14
15FulfilmentOptionsAddress {
16    address1 (string)
17    address2 (string)
18    city (string)
19    postcode (string)
20    state (string)
21    country (string)
22    latitude (double)
23    longitude (double)
24}
25
26Item {
27skuRef (string)
28requestedQuantity (integer)
29availableQuantity (integer)
30},
31
32Attribute {
33    name (string),
34    type (string) = ['STRING', 'TEXT', 'INTEGER', 'BOOLEAN', 'ADDRESS', 'OBJECT', 'CUSTOM'],
35    value (object)
36}

Language: java

Name: Fulfillment Option request Example

Description:

[Warning: empty required content area]
1{
2  "limit": 10,
3  "orderType": "HD",
4  "locationRef": "DR001",
5  "trackingId": "track",
6  "address": {
7    "address1": "46 Kippax Street",
8    "city": "Surry Hills",
9    "postcode": "2010",
10    "state": "NSW",
11    "country": "Australia"
12  },
13  "items": [
14    {
15      "skuRef": "DM12345",
16      "requestedQuantity": 1
17    }
18  ],
19  "attributes": [
20    {
21      "name": "type",
22      "value": "special",
23      "type": "STRING"
24    }
25  ],
26  "retailerId": 1
27}

Language: json

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

1entityType (string)
2type (string)
3id (string)
4count (integer)
5total (integer)
6limit (integer)
7orderType (string)
8locationRef (string)
9trackingId (string)
10retailerId (long)
11status (string)
12createdOn (string)
13ref (string)
14address (FulfilmentOptions.FulfilmentOptionsAddress)
15items (list of Item)
16attributes (list of Attribute)
17plans (list of FulfilmentPlan)
18unfulfilledItems (list of UnfulfilledItem)
19}
20
21FulfilmentOptionsAddress {
22    address1 (string)
23    address2 (string)
24    city (string)
25    postcode (string)
26    state (string)
27    country (string)
28    latitude (double)
29    longitude (double)
30    }
31    
32Item {
33    skuRef (string)
34    requestedQuantity (integer)
35    availableQuantity (integer)
36    }
37    
38Attribute {
39    name (string),
40    type (string) = ['STRING', 'TEXT', 'INTEGER', 'BOOLEAN', 'ADDRESS', 'OBJECT', 'CUSTOM'],
41    value (object)
42    }
43    
44UnfulfilledItem {
45    skuRef (string)
46    unavailableQty (integer)
47    reasonCode (string)
48    reason (string)
49    }
50    
51FufilmentPlan {
52    id (string)
53    retailerId (string)
54    planId (string)
55    planType (string)
56    eta (string)
57    splits (integer)
58    fulfilments (list of FulfilmentPlan.Fulfilment)
59    exceptions (list of Exception)
60    fulfilmentOptionsId (string)
61    attributes (list of Attribute)
62    status (string)
63    entityType (string)
64    flexType (string)
65    flexVersion (integer)
66    createdOn (string)
67    type (string)
68    ref (string)
69    }
70    
71    Exception {
72        code (string)
73        message (integer)
74        attributes (list of Attribute)
75        }
76        
77    FufilmentPlan.Fulfilment {
78        fulfilmentType (string)
79        locationRef (string)
80        eta (string)
81        items (list of FulfilmentPlan.Fulfilment.FulfilmentItem)
82        }
83        
84FufilmentPlan.Fulfilment.FulfilmentItem {
85    skuRef (string)
86    availableQty (integer)

Language: java

Name: Fulfillment Response Example

Description:

[Warning: empty required content area]
1{
2  "id": "442755c4-28ee-4404-9e21-abe29bb3a1e5",
3  "limit": 10,
4  "count": 1,
5  "orderType": "HD",
6  "locationRef": "DR001",
7  "trackingId": "track",
8  "address": {
9    "address1": "46 Kippax Street",
10    "city": "Surry Hills",
11    "postcode": "2010",
12    "state": "NSW",
13    "country": "Australia"
14  },
15  "items": [
16    {
17      "skuRef": "DM12345",
18      "requestedQuantity": 1,
19      "availableQuantity": null
20    }
21  ],
22  "attributes": [
23    {
24      "name": "type",
25      "value": "special",
26      "type": "STRING"
27    }
28  ],
29  "status": "OPTIONS_PROVIDED",
30  "plans": [
31    {
32      "id": "d8d46b57-a2d8-472d-a632-c47916a6a0da",
33      "planId": "d8d46b57-a2d8-472d-a632-c47916a6a0da",
34      "eta": "20H",
35      "planType": "HD",
36      "splits": 0,
37      "flexType" : "FULFILMENT_PLAN::DEFAULT",
38      "flexVersion": 1,
39      "fulfilmentOptionsId": "442755c4-28ee-4404-9e21-abe29bb3a1e5",
40      "fulfilments": [
41        {
42          "fulfilmentType": "HD",
43          "locationRef": "123",
44          "eta": "20H",
45          "items": [
46            {
47              "skuRef": "DM12345",
48              "availableQty": 1
49            }
50          ]
51        }
52      ],
53      "attributes": [
54        {
55          "name": "type",
56          "value": "special",
57          "type": "STRING"
58        }
59      ],
60      "status": "COMPLETE",
61      "exceptions": [
62        {
63          "code": "1",
64          "message": "warning",
65          "attributes": [
66            {
67              "name": "type",
68              "value": "special",
69              "type": "STRING"
70            }
71          ]
72        }
73      ],
74      "retailerId": 1
75    }
76  ],
77  "unfulfilledItems": [
78    {
79      "skuRef": "DMI111",
80      "unavailableQty": 1,
81      "reasonCode": "123",
82      "reason": "Too Heavy"
83    }
84  ],
85  "retailerId": 1,
86  "flexType" : "FULFILMENT_OPTIONS::DEFAULT",
87  "flexVersion": 1
88}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
View a Fulfillment Option

With this endpoint you can get details about a single Fulfillment Option.

GET: 

`/api/v4.1/fulfilmentOptions/{id}`

Request and response

Request parameters and sample

Fulfillment Option Request

`/api/v4.1/fulfilmentOptions/{id}`

** Example request**

`/api/v4.1/fulfilmentOptions/{id}`

Response Parameters and sample

 Fulfillment Options Response

1{
2    entityType (string)
3    type (string)
4    id (string)
5    count (integer)
6    total (integer)
7    limit (integer)
8    orderType (string)
9    locationRef (string)
10    trackingId (string)
11    retailerId (long)
12    status (string)
13    createdOn (string)
14    ref (string)
15    address (FulfilmentOptions.FulfilmentOptionsAddress)
16    items (list of Item)
17    attributes (list of Attribute)
18    plans (list of FulfilmentPlan)
19    unfulfilledItems (list of UnfulfilledItem)
20
21
22    FulfilmentOptionsAddress {
23        address1 (string)
24        address2 (string)
25        city (string)
26        postcode (string)
27        state (string)
28        country (string)
29        latitude (double)
30        longitude (double)
31        }
32    
33    
34    Item {
35        skuRef (string)
36        requestedQuantity (integer)
37        availableQuantity (integer)
38        }
39    
40    Attribute {
41        name (string),
42        type (string) = ['STRING', 'TEXT', 'INTEGER', 'BOOLEAN', 'ADDRESS', 'OBJECT', 'CUSTOM'],
43        value (object)
44        }
45    
46    UnfulfilledItem {
47        skuRef (string)
48        unavailableQty (integer)
49        reasonCode (string)
50        reason (string)
51        }
52    
53    FufilmentPlan {
54        id (string)
55        retailerId (string)
56        planId (string)
57        planType (string)
58        eta (string)
59        splits (integer)
60        fulfilments (list of FulfilmentPlan.Fulfilment)
61        exceptions (list of Exception)
62        fulfilmentOptionsId (string)
63        attributes (list of Attribute)
64        status (string)
65        entityType (string)
66        flexType (string)
67        flexVersion (integer)
68        createdOn (string)
69        type (string)
70        ref (string)
71        }
72    
73    Exception {
74        code (string)
75        message (integer)
76        attributes (list of Attribute)
77        }
78    
79    FufilmentPlan.Fulfilment {
80        fulfilmentType (string)
81        locationRef (string)
82        eta (string)
83        items (list of FulfilmentPlan.Fulfilment.FulfilmentItem)
84        }
85}    

Language: java

Name: Fulfillment Options Response Example

Description:

[Warning: empty required content area]

Example response

1{
2  "id": "442755c4-28ee-4404-9e21-abe29bb3a1e5",
3  "limit": 10,
4  "count": 1,
5  "orderType": "HD",
6  "locationRef": "DR001",
7  "trackingId": "track",
8  "address": {
9    "address1": "46 Kippax Street",
10    "city": "Surry Hills",
11    "postcode": "2010",
12    "state": "NSW",
13    "country": "Australia"
14  },
15  "items": [
16    {
17      "skuRef": "DM12345",
18      "requestedQuantity": 1,
19      "availableQuantity": null
20    }
21  ],
22  "attributes": [
23    {
24      "name": "type",
25      "value": "special",
26      "type": "STRING"
27    }
28  ],
29  "status": "OPTIONS_PROVIDED",
30  "plans": [
31    {
32      "id": "d8d46b57-a2d8-472d-a632-c47916a6a0da",
33      "planId": "d8d46b57-a2d8-472d-a632-c47916a6a0da",
34      "eta": "20H",
35      "planType": "HD",
36      "splits": 0,
37      "flexType" : "FULFILMENT_PLAN::DEFAULT",
38      "flexVersion": 1,
39      "fulfilmentOptionsId": "442755c4-28ee-4404-9e21-abe29bb3a1e5",
40      "fulfilments": [
41        {
42          "fulfilmentType": "HD",
43          "locationRef": "123",
44          "eta": "20H",
45          "items": [
46            {
47              "skuRef": "DM12345",
48              "availableQty": 1
49            }
50          ]
51        }
52      ],
53      "attributes": [
54        {
55          "name": "type",
56          "value": "special",
57          "type": "STRING"
58        }
59      ],
60      "status": "COMPLETE",
61      "exceptions": [
62        {
63          "code": "1",
64          "message": "warning",
65          "attributes": [
66            {
67              "name": "type",
68              "value": "special",
69              "type": "STRING"
70            }
71          ]
72        }
73      ],
74      "retailerId": 1
75    }
76  ],
77  "unfulfilledItems": [
78    {
79      "skuRef": "DMI111",
80      "unavailableQty": 1,
81      "reasonCode": "123",
82      "reason": "Too Heavy"
83    }
84  ],
85  "retailerId": 1,
86  "flexType" : "FULFILMENT_OPTIONS::DEFAULT",
87  "flexVersion": 1
88}

Language: json

Name: Example response

Description:

[Warning: empty required content area]

Update Fulfillment Option Status

This endpoint changes the state of the Fulfillment Option entity.

PUT: 

`/api/v4.1/fulfilmentOptions/state/{stateName}`

1{
2"id": "442755c4-28ee-4404-9e21-abe29bb3a1e5"
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500

Inventory Batch API

Author:

Fluent Commerce

Changed on:

23 Jan 2025

Overview

A batch contains a series of records that will have the same operation applied to it. All batches are run asynchronously as such the client will be required to request a status update for entered batches. A batch can include a maximum of 5000 records.

To create a Batch, the user must first create a Job. A job is required to store a series of batches. For more information please refer to the Job API.

Key points

  • Overview
  • Inventory Batch Properties
  • What you can do with Inventory Batch
  • Response on Failures

Inventory Batch API

Inventory Batch Properties

Below are the properties available in the Inventory Batch object which can be updated and retrieved through the APIs in this document.

1. jobId

Type: String

1{ "jobId" : "223" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The unique identifier associated with the Job.

2. action

Type: String

1{ "action": "UPSERT" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The type of operation that will be applied to all records in the batch. Possible values are UPSERT.

  • UPSERT: Insert the record. If the record already exists then update existing record.
3. entityType

Type: String

1{ "entityType" : "INVENTORY" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

Entity type. Possible values are INVENTORY.

4. entities

Type: Array

1{ "retailerId" : "197" }
2
3{ "inventoryId" : "56470" }
4
5{ "skuRef" : "29SPM0020X96-1-8" }
6
7{ "locationRef" : "158" }
8
9{ "qty" : "10" }
10
11{ "correctedQty" : "2" }
12
13{ "reservedQty" : "2" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

An array of InventoryPost records

  • retailerId(string) : The retailer identifier assigned by Fluent Commerce.
  • inventoryId (string) : The unique identifier assigned by Fluent Commerce.
  • skuRef (string) : The unique reference or code provided by the retailer.
  • locationRef (string) : The location (i.e. store) number.
  • qty (integer) : The stock on hand.
  • correctedQty (integer) : Correction quantity based on stock updates.
  • reservedQty (integer) : Quantity reserved due to unfulfilled orders.
5. status

Type: String

1{ "status" : "RUNNING" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

The state of the batch:

  • PENDING - Batch has been entered but is not currently running
  • RUNNING - Batch is being processed
  • COMPLETE - Batch has been processed ( with or without errors )
6. responseCode

Type: -

Description: HTTP response code.


What you can do with Inventory Batch

Create a Batch

Create a Batch in the Fluent Retail System

POST: 

`/api/v4.1/job/{jobid}/batch`

Request and response

Request parameters and sample

1batchRequest {
2    action (string, compulsory) = UPSERT,
3    entityType (string, compulsory) = INVENTORY,
4    entities (array, compulsory)
5}

Language: java

Name: Example request

Description:

[Warning: empty required content area]
1  InventoryPost {
2        retailerId (string, compulsory),
3        inventoryId (string, optional),
4        skuRef (string, compulsory),
5        locationRef (string, compulsory),
6        qty (integer, compulsory)
7        correctedQty (integer, optional)
8        reservedQty (integer, optional)
9    }  

Language: java

Name: entities

Description:

[Warning: empty required content area]
1{
2"action": "UPSERT",
3"entityType": "INVENTORY",
4"entities": [
5{
6"locationRef": "158",
7"qty": 10,
8"correctedQty": 11,
9"reservedQty" : 12,
10"skuRef": "29SPM0020X96-1-8",
11"retailerId": 197
12}
13]
14}

Language: java

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

1SuccessMessageResponse {
2
3    id (object, optional),
4    message (string, optional),
5    status (string, optional)
6}

Language: java

Name: Batch response

Description:

[Warning: empty required content area]
1{
2 "id":"427323"
3}

Language: javascript

Name: Example response

Description:

[Warning: empty required content area]

View a Batch

Retrieve details of the Batch.

GET: 

`/api/v4.1/job/{jobid}/batch/{batchId}`

Request and response

Request parameters and sample

Batch request

`/api/v4.1/job/{jobid}/batch/{batchId}`

 Example request

`/api/v4.1/job/223/batch/299`

Response Parameters and sample

1batchResponse {
2    batchId (string),
3    entityType (string) = 'INVENTORY', 
4    status (string) = 'PENDING', 'RUNNING', 'COMPLETE',
5    start (integer),
6    count (integer),
7    total (integer),
8    results (array[batchRecordStatus]):[
9    {
10    entityId (string),
11    entityRef (string),
12    responseCode (string) = '200', '404', '500', '401'
13    message (string)
14    }
15    ]
16}

Language: java

Name: Batch response

Description:

[Warning: empty required content area]
1{
2"batchId": "300",
3"entityType": "INVENTORY",
4"status": "COMPLETE",
5"start": 1,
6"count": 10,
7"total": 1,
8"results": [
9{
10"entityId": "1013187",
11"entityRef": null,
12"responseCode": 200,
13"message": "Inventory Created."
14}
15]
16}

Language: json

Name: Example response

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorised | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500


Location API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

A Location is any place where an order can be fulfilled and/or collected by the customer. Locations can include a store, warehouse, drop-ship vendor, lockers, or a third-party logistics or collection point.

Key points

  • Overview
  • Operations
  • Models

Location API

Overview

Property

Value

URL

`<root_url>/api/v4.1/location`

Methods

`GET`
`POST`
`PUT`

Scheme

`https`

Auth

`OAUTH`

Permissions

`LOCATION_VIEW, LOCATION_CREATE, LOCATION_EDIT`

Content-Type

`application/json`


Operations

[GET]    /location    Finds all Locations for the given criteria

Returns a page of Locations filtered by the given combination of parameters. If no parameters are provided, the default page size and sort order will be applied, and the Locations for which your authenticated user is authorized will be returned.

Authentication

Required

Permissions

LOCATION_VIEW permission required.

Parameters

Name

Default Value

Multiple?

Description

retailerId


The 

`id`
 of the Retailer of which the Location belongs

agentNetwork


The 

`name`
 or 
`ref`
 of a Network to filter the Locations by

agentNetworkTypes


The 

`type`
 of Network to filter Locations by

agentStatuses


The 

`status`
 of the Locations to return

northEastLat


Used to signify the most north east latitude (top right) corner of a map area to include in the location search

northEastLon


Used to signify the most north east longitude (top right) corner of a map area to include in the location search

southWestLat


Used to signify the most south west latitude (bottom left) corner of a map area to include in the location search

southWestLon


Used to signify the most south west longitude (bottom left) corner of a map area to include in the location search

query


A free text query search parameter

start

0

The index of the first record of a page to be returned.

count

100

The number of results to be returned per page. Max 10000.

Responses

Response Content-Type: 

`application/json`

Code

Description

200

Successful Operation

400

Client Error - Invalid Request

401

Authorization Error - Invalid Bearer Token / No permission

403

Authorization Error - Forbidden

404

Client Error - Not Found

500

Server Error

Example

1    {
2        "start": 1,
3        "count": 100,
4        "hasMore": false,
5        "results": [
6            {
7                "locationId": "71",
8                "locationRef": "F_GFD",
9                "alternateId": null,
10                "name": "FC Fashion Imperial Centre Gosford",
11                "city": "Gosford",
12                "state": "NSW",
13                "country": "Australia",
14                "street": "171 Mann St",
15                "postcode": "2250",
16                "status": "ACTIVE",
17                "type": "STORE",
18                "createdOn": "2021-04-09",
19                "latitude": -33.41933105522871,
20                "longitude": 151.34394556084268,
21                "homeDeliverySafetyStock": null,
22                "clickAndCollectSafetyStock": null,
23                "distance": null,
24                "phoneNumber": null,
25                "openingHours": {
26                    "mon": {
27                        "start": 0,
28                        "end": 0
29                    },
30                    "tue": {
31                        "start": 0,
32                        "end": 0
33                    },
34                    "wed": {
35                        "start": 0,
36                        "end": 0
37                    },
38                    "thu": {
39                        "start": 0,
40                        "end": 0
41                    },
42                    "fri": {
43                        "start": 0,
44                        "end": 0
45                    },
46                    "sat": {
47                        "start": 0,
48                        "end": 0
49                    },
50                    "sun": {
51                        "start": 0,
52                        "end": 0
53                    }
54                },
55                "networkName": [
56                    "F_CC"
57                ],
58                "directions": null
59            },
60            {
61                "locationId": "5",
62                "locationRef": "F_MEL",
63                "alternateId": null,
64                "name": "FC Fashion Melbourne",
65                "city": "Clayton",
66                "state": "VIC",
67                "country": "Australia",
68                "street": "Clayton Street",
69                "postcode": "3168",
70                "status": "ACTIVE",
71                "type": "STORE",
72                "createdOn": "2021-02-02",
73                "latitude": -37.8136,
74                "longitude": 144.9631,
75                "homeDeliverySafetyStock": null,
76                "clickAndCollectSafetyStock": null,
77                "distance": null,
78                "phoneNumber": null,
79                "openingHours": {
80                    "mon": {
81                        "start": 0,
82                        "end": 0
83                    },
84                    "tue": {
85                        "start": 0,
86                        "end": 0
87                    },
88                    "wed": {
89                        "start": 0,
90                        "end": 0
91                    },
92                    "thu": {
93                        "start": 0,
94                        "end": 0
95                    },
96                    "fri": {
97                        "start": 0,
98                        "end": 0
99                    },
100                    "sat": {
101                        "start": 0,
102                        "end": 0
103                    },
104                    "sun": {
105                        "start": 0,
106                        "end": 0
107                    }
108                },
109                "networkName": [
110                    "FC_Group",
111                    "F_VIC",
112                    "F_CC"
113                ],
114                "directions": null
115            }
116        ]
117    }

Language: json

Name: Response

Description:

[Warning: empty required content area]
1    {
2        "errors": [
3            {
4                "code": "401",
5                "message": "Invalid user, Authorization header value does not belong to a valid user"
6            }
7        ]
8    }   

Language: json

Name: Example Error Response:

Description:

[Warning: empty required content area]


[GET]    /location/{locationId}    Finds a location by location ID

Returns the details of the Location filtered by the given location ID provided on the API.

Authentication

Required

Permissions

LOCATION_VIEW permission required.

Parameters

Name

Default Value

Multiple?

Description

locationId


The unique location identifier assigned by Fluent Commerce

Responses

Response Content Type: 

`application/json`

Code

Description

200

Successful Operation

400

Client Error - Invalid Request

401

Authorization Error - Invalid Bearer Token / No permission

403

Authorization Error - Forbidden

404

Client Error - Not Found

500

Server Error

Example

1    {
2        "locationRef": "SHA108",
3        "status": "ACTIVE",
4        "name": "Seed Heritage Wintergarden",
5        "email": "customercare@seedheritage.com",
6        "supportPhone": "07 3012 7749",
7        "type": "STORE",
8        "timeZone": "Australia/Queensland",
9        "pickAndPackTimeLimit": 15,
10        "homeDeliverySafetyStock": 2,
11        "clickAndCollectSafetyStock": 0,
12        "clickAndCollectNetworks": [],
13        "useInventoryForHomeDelivery": [
14            "433"
15        ],
16        "useInventoryForClickAndCollect": [
17            "437"
18        ],
19        "address": {
20            "city": "Brisbane",
21            "country": "Australia",
22            "postcode": "4000",
23            "state": "QLD",
24            "street": "TENANCY QSM 101A QUEENS ST MALL",
25            "latitude": "-27.469712",
26            "longitude": "153.02568"
27        },
28        "openingHours": {
29            "monStartMin": "900",
30            "monEndMin": "1000",
31            "tueStartMin": "900",
32            "tueEndMin": "1000",
33            "wedStartMin": "900",
34            "wedEndMin": "1000",
35            "thuStartMin": "900",
36            "thuEndMin": "1000",
37            "friStartMin": "900",
38            "friEndMin": "1000",
39            "satStartMin": "900",
40            "satEndMin": "1000",
41            "sunStartMin": "900",
42            "sunEndMin": "1000"
43        },
44        "storageAreas": []
45    }

Language: json

Name: Response

Description:

[Warning: empty required content area]
1    {
2        "errors": [
3            {
4                "code": "401",
5                "message": "Invalid user, Authorization header value does not belong to a valid user"
6            }
7        ]
8    }   

Language: json

Name: Example Error Response:

Description:

[Warning: empty required content area]


[GET]    /location/{locationId}/attribute    Retrieves Location Attributes

Returns all the attributes of a Location filtered by the Location Id provided on the API.

Authentication

Required

Permissions

LOCATION_VIEW permission required.

Parameters

Name

Default Value

Multiple?

Description

locationId


The unique location identifier assigned by Fluent Commerce

Responses

Response Content-Type: 

`application/json`

Code

Description

200

Successful Operation

400

Client Error - Invalid Request

401

Authorization Error - Invalid Bearer Token / No permission

403

Authorization Error - Forbidden

404

Client Error - Not Found

500

Server Error

Example

1    {
2        "locationId": "16567",
3        "attributes": [
4            {
5                "name": "Safety instructions",
6                "type" : "string",
7                "value": "Wear safety grear"
8            },
9            {
10                "name": "Order code 2",
11                "type" : "string",
12                "value": "124"
13            },
14            {       
15                "name": "Address",
16                "type" : "address",
17                "value" : {
18                    "Address 1" : "46, Kipax Street",
19                    "Suburb" : "Surry Hills",
20                    "Post code" : "2010",
21                    "State" : "NSW"
22                }
23            }
24        ]
25    }

Language: json

Name: Response

Description:

[Warning: empty required content area]
1    {
2        "errors": [
3            {
4                "code": "401",
5                "message": "Invalid user, Authorization header value does not belong to a valid user"
6            }
7        ]
8    }   

Language: json

Name: Example Error Response:

Description:

[Warning: empty required content area]


[GET]    /location/{locationId}/storageArea/{storageAreaRef}    Retrieves details of a Location's Storage Area

Returns the details of the Location's Storage Area filtered by the Location Id and the associated 

`storageAreaRef`
 provided on the API.

Authentication

Required

Permissions

LOCATION_VIEW permission required.

Parameters

Name

Default Value

Multiple?

Description

locationId


The unique location identifier assigned by Fluent Commerce

storageAreaRef


The 

`name`
 or 
`Ref`
 of storage area associated with the location

Responses

Response Content-Type: 

`application/json`

Code

Description

200

Successful Operation

400

Client Error - Invalid Request

401

Authorization Error - Invalid Bearer Token / No permission

403

Authorization Error - Forbidden

404

Client Error - Not Found

500

Server Error

Example

1    {
2        "externalId": "12345",
3        "status": "ENABLED",
4        "type": "SERVICE_COUNTER",
5        "attributes": [{"name": "toTime", "type": null, "value": "2016-11-28 16:30:22"}]
6    }

Language: json

Name: Response

Description:

[Warning: empty required content area]
1    {
2        "errors": [
3            {
4                "code": "401",
5                "message": "Invalid user, Authorization header value does not belong to a valid user"
6            }
7        ]
8    }       

Language: json

Name: Example Error Response:

Description:

[Warning: empty required content area]


[POST]    /location    Creates a new Location in the Fluent Platform

Create a new Location within the Fluent Platform.

Authentication

Required

Permissions

LOCATION_VIEWLOCATION_CREATE and LOCATION_EDIT permissions are required.

Parameters

Name

Description

body *required

The Location object that needs to be created

Responses

Response Content-Type: 

`application/json`

Code

Description

200

Successful Operation

400

Client Error - Invalid Request

401

Authorization Error - Invalid Bearer Token / No permission

403

Authorization Error - Forbidden

404

Client Error - Not Found

500

Server Error

Example:

1    {
2        "locationRef": "Tes92909", 
3        "status": "ACTIVE", 
4        "name": "Test User", 
5        "email": "test@parcelpoint.com.au", 
6        "supportPhone": "123-567", 
7        "type": "STORE", 
8        "timeZone": "Australia/Sydney", 
9        "homeDeliverySafetyStock": null, 
10        "clickAndCollectSafetyStock": null, 
11        "directions": "directions to a location", 
12        "address" : { 
13            "city": "Sydney", 
14            "country": "Australia", 
15            "postcode": "2000", 
16            "state": "NSW", 
17            "street": "46 kippax street" 
18        }, 
19        "openingHours" : { 
20            "monStartMin": "0900", 
21            "monEndMin": "1800", 
22            "tueStartMin": "0900", 
23            "tueEndMin": "1800", 
24            "wedStartMin": "0900", 
25            "wedEndMin": "1800", 
26            "thuStartMin": "0900", 
27            "thuEndMin": "1800", 
28            "friStartMin": "0900", 
29            "friEndMin": "1800", 
30            "satStartMin": "0900", 
31            "satEndMin": "1800", 
32            "sunStartMin": "0900", 
33            "sunEndMin": "1800" 
34        }, 
35        "storageAreas": [ 
36            "AAA" , 
37            "BBB" 
38        ], 
39        "agentNetworks": [ 
40            "1221", 
41            "4234" 
42        ] 
43    }

Language: json

Name: Request body

Description:

[Warning: empty required content area]
1    {
2        "id": "65789"
3    }

Language: json

Name: Example Success Response:

Description:

[Warning: empty required content area]
1    {
2        "errors": [
3            {
4                "code": "401",
5                "message": "Invalid user, Authorization header value does not belong to a valid user"
6            }
7        ]
8    }

Language: json

Name: Example Error Response:

Description:

[Warning: empty required content area]


[PUT]    /location/{locationId}    Update an existing Location in the Fluent Platform

Update an existing Location within the Fluent Platform.

Authentication

Required

Permissions

LOCATION_VIEW and LOCATION_EDIT permissions are required.

Parameters

Name

Default Value

Multiple?

Description

locationId


The unique location identifier assigned by Fluent Commerce

body *required


The Updated Location object

Responses

Response Content-Type: 

`application/json`

Code

Description

200

Successful Operation

400

Client Error - Invalid Request

401

Authorization Error - Invalid Bearer Token / No permission

403

Authorization Error - Forbidden

404

Client Error - Not Found

500

Server Error

Example

1    {
2        "locationRef": "Tes92909",
3        "status": "ACTIVE",
4        "name": "Test User",
5        "email": "test@parcelpoint.com.au",
6        "supportPhone": "123-567",
7        "type": "STORE",
8        "timeZone": "Australia/Sydney",
9        "address" : {
10            "city": "Sydney",
11            "country": "Australia",
12            "postcode": "2000",
13            "state": "NSW",
14            "street": "46 kippax street"
15        },
16        "openingHours" : {
17            "monStartMin": "0900",
18            "monEndMin": "1800",
19            "tueStartMin": "0900",
20            "tueEndMin": "1800",
21            "wedStartMin": "0900",
22            "wedEndMin": "1800",
23            "thuStartMin": "0900",
24            "thuEndMin": "1800",
25            "friStartMin": "0900",
26            "friEndMin": "1800",
27            "satStartMin": "0900",
28            "satEndMin": "1800",
29            "sunStartMin": "0900",
30            "sunEndMin": "1800"
31        },
32        "storageAreas": [
33            "G1",
34            "G2"
35        ],
36        "attributes": [
37            {
38                "name": "Location code 1",
39                "type" : "string",
40                "value": "G334"
41            }
42        ]
43    }

Language: json

Name: Request body

Description:

[Warning: empty required content area]
1    {
2        "id": "65789"
3    }

Language: json

Name: Example Success Response:

Description:

[Warning: empty required content area]
1    {
2        "errors": [
3            {
4                "code": "401",
5                "message": "Invalid user, Authorization header value does not belong to a valid user"
6            }
7        ]
8    }

Language: json

Name: Example Error Response:

Description:

[Warning: empty required content area]


[PUT]    /location/eta    Update Location ETA

Update transit time between from location and to location based on distance and regular transport mechanisms.

Authentication

Required

Permissions

LOCATION_VIEW and LOCATION_EDIT permissions are required.

Parameters

Name

Default Value

Multiple?

Description

etas array *required


An array of etas with from location, to location and the eta value

Responses

Response Content Type: 

`application/json`

Code

Description

200

Successful Operation

400

Client Error - Invalid Request

401

Authorization Error - Invalid Bearer Token / No permission

403

Authorization Error - Forbidden

404

Client Error - Not Found

500

Server Error

Example:

1    {
2        "etas": [
3            {
4                "fromLocation": 538045,
5                "toLocation": 538044,
6                "eta": 45
7            },
8            {
9                "fromLocation": 538046,
10                "toLocation": 538045,
11                "eta": 57
12            },
13            {
14                "fromLocation": 8977,
15                "toLocation": 538044,
16                "eta": 10
17            }
18        ]
19    }

Language: json

Name: Request body

Description:

[Warning: empty required content area]
1    {
2        "updatedEtas": [ 
3            {
4                "fromLocation": 538045,
5                "toLocation": 538044,
6                "eta": 45
7            },
8            {
9                "fromLocation": 538046,
10                "toLocation": 538045,
11                "eta": 57
12            }
13        ]
14    }

Language: json

Name: Example Success Response:

Description:

[Warning: empty required content area]
1    {
2        "failedEtas": [
3            {
4                "fromLocation": 8977,
5                "toLocation": 538044,
6                "error": "Object of type [Agent] was not found using id : [8977]"
7            }
8        ]
9    }

Language: json

Name: Example Error Response:

Description:

[Warning: empty required content area]


Models

Location Model

Key

Type

Mandatory?

Possible Values

Constraints

Description

locationRef

String


Max length: 8 Characters

The location number provided by the retailer

locationId

String



The unique location identifier assigned by Fluent Commerce

alternateId

String


Max length: 8 Characters

External reference 2

status

String

ACTIVE, INACTIVE


The location status

name

String



The name of the location

email

String



The location email

supportPhone

String


Max length: 20 Characters

The location contact number

type

String

STORE, WAREHOUSE


Type of the location

timeZone

String



Time Zone associated with the location

pickAndPackTimeLimit

Integer


1. Excludes non-trading hours 2. Does not apply to warehouse fulfilment or Click & Collect orders

The Pick & Pack Time Limit defines the time permitted to complete a fulfilment in store. If a fulfilment reaches this expiry time, it will be reassigned or cancelled as per the reassignment rules. The Pick & Pack time limit is shown in hours. The default is 3 hours.

clickAndCollectNetworks

Array




useInventoryForHomeDelivery

Array

`retailerId`
 values


The Location acts as a fulfillment center for the Home Delivery networks listed

useInventoryForClickAndCollect

Array

`retailerId`
 values


The Location acts as a fulfillment center for the Click & Collect networks listed

storageAreas

Array



List of all storage areas at the location

address

Address



The address of the location including retailer's business name, name of the location, 

`city`
`country`
`postcode`
`state`
`street`
`latitude`
 and 
`longitude`

openingHours

Object [dayStartMin(double), dayEndMin(double), allHours(Boolean)]



`{ "openingHours" : { "monStartMin": "0900", "monEndMin": "1800", "tueStartMin": "0900", "tueEndMin": "1800", "wedStartMin": "0900", "wedEndMin": "1800", "thuStartMin": "0900", "thuEndMin": "1800", "friStartMin": "0900", "friEndMin": "1800", "satStartMin": "0900", "satEndMin": "1800", "sunStartMin": "0900", "sunEndMin": "1800" }`
 where dayStartMin is the opening time, dayEndMin is the closing time and allHours is to check if location is open 24 hours

agentNetworks

Array

`networkId`
 values


List of networks this location is assigned to

homeDeliverySafetyStock

String


Only applies for clients with inventory integrations. Use 'NULL' when Safety Stock Levels do not apply

The Home Delivery safety stock level configured for this location. This figure is used to calculate the Available to Sell (ATS) inventory.

clickAndCollectSafetyStock

String


Only applies for clients with inventory integrations. Use 'NULL' when Safety Stock Levels do not apply.

The Click & Collect safety stock level configured for this location. This figure is used to calculate the Available to Sell (ATS) inventory.

agentNetworkTypes

Array

CP, CC, HD


Search parameter used to retrieve Locations within a specific agent network type. CP - Collection Point network, CC - Click & Collect network, HD - Home Delivery network

etas

Array [fromLocation(Long), toLocation(Long), eta(Long)]



Estimated transit time between two locations. This is used to calculate time of availability when goods have to be shipped form one location to other for Click'n Collect orders. Array includes fromLocation, toLocation and eta

externalId

String



Location External reference (Retailers reference to identify location).

retailerId

String



The retailer identifier assigned by Fluent Commerce

sort

String



By default, the search results are sorted by name in ascending order. Currently only default sorting is supported

query

String



Location reference or location name to search for

distance

Integer



Distance from centre of map to location

directions

String



Instructions to get to location

createdOn

DateTime



Date/time when the Location was created

attributes

Array [name(String), type(String), value(String)]



Array of attributes. Attributes are used to provide additional information about the order. Standard attribute types like string, integer and complex types like address which has more than one value are supported as well. Array includes 

`name`
`type`
`value`


Error Model

Key

Type

Possible Values

Description

errors

Array


List of errors

code

String

400, 401, 403, 404, 500

error code

message

String


description of the error

Network API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

A network is a collection of physical fulfillment or collection locations such as stores, warehouses, distribution centres, or even lockers. Fluent Retail allows users to manage their network from a centralized position with control of network-specific order logic via custom rules. The Network API defines the creation and addition of networks as well as retrieval of details pertaining to a network and updating the parameters of a network.

There are three default networks,Collection Point Network,C&C Network, and Home Delivery Network. These can be extended and configured with subnetworks.

Key points

  • Overview
  • Network Properties
  • What you can do with Network
  • Response on Failures

Network API

Network Properties

Below are the properties available in the Article object which can be updated and retrieved through the APIs in this document.

1. name

Type: String

Description: Network name. Must be unique to the account.

2. type

Type: String

Description: The type of network. Allowed values: Determined by retailer setting NETWORK_TYPES

e.g.: Settings cane be created using settings API

`{ "setting": { "key": "NETWORK_TYPES", "value": ["CC", "CP","HD","My Network"], "type": "JSON" } }`

If retailer setting not available, API will allow creating default networks of types CC, CP or HD.

If type is not provided, default type NORMAL will apply.

3. retailers

Type: Array

Description: The retailer(s) associated with the network. Allowed values: RetailerId(String) within Account.

4. status

Type: String

Description: Status of network

5. attributes

Type: Array

Description: Array of attributes with name, type, value

e.g.:

1"attributes": [
2  {
3    "name": "Supplier address",
4    "type": "address",
5    "value": {
6      "Address 1": "46 Kippax Street",
7      "Suburb": "Surry Hills",
8      "Post code": "2010",
9      "State": "NSW"
10    }
11  },
12  {
13    "name": "ECP",
14    "type": "string",
15    "value": "XCD123"
16  }
17]

Language: java

Name: Code Example

Description:

[Warning: empty required content area]


What you can do with Network

Create a Network

Create a Network API is used to add a network to the Fluent Retail system.

POST: 

`/api/v4.1/network`

Request and response

Request parameters and sample

 Network request

1{
2
3    name (string, compulsory),
4    type (string, optional),
5    status (string, optional),
6    retailers ((Array, compulsory),
7    attributes (Array[Attribute], optional)
8}
9
10Attribute {
11
12        name (string, optional),
13        type (string, optional) = ['STRING', 'INTEGER'],
14        value (string, optional)
15    }

Language: java

Name: Network request

Description:

[Warning: empty required content area]

 Example request

1{
2  "name": "Network",
3  "type": "CP",
4  "status": "CREATED",
5  "retailers": [
6    "1"
7  ],
8  "attributes": [
9    {
10      "name": "address",
11      "type": "ADDRESS",
12      "value": {
13        "address": "46 Kippax Street",
14        "suburb": "Surry Hills",
15        "postcode": "2010",
16        "state": "NSW"
17      }
18    },
19    {
20      "name": "ECP",
21      "type": "STRING",
22      "value": "XCD123"
23    }
24  ]
25}

Language: java

Name: Example request

Description:

[Warning: empty required content area]

Response Parameters and sample

1{
2    id (object, optional),
3    message (string, optional),
4    status (string, optional)
5}

Language: java

Name: Network response

Description:

[Warning: empty required content area]
1{
2  "id": 9
3}

Language: java

Name: Example response

Description:

[Warning: empty required content area]

View Details

Get details of a network

GET: 

`/api/v4.1/network/{networkId} or ~{name}`

Request and response

Request parameters and sample

 Parameters in URL

Name

Type

Required

Description

networkId

String

Conditional

The network Id. Should be available conditionally if name not provided

`~networkName`

String

Conditional

The network name with “

`~`
” sign as shown. Should be available conditionally if id not provided

 Example request

`/api/v4.1/network/123`
 or 
`/api/v4.1/network/~network1`

Response Parameters and sample

 Network response

1{
2    name (string),
3    type (string),
4    status (string),
5    retailers ((Array),
6    attributes (Array[Attribute])
7
8
9    Attribute {
10        name (string, optional),
11        type (string, optional) = ['STRING', 'INTEGER'],
12        value (string, optional)
13    }
14
15}

Language: java

Name: Network response

Description:

[Warning: empty required content area]
1{
2  "name": "network1",
3  "type": "CP",
4  "status": "CREATED",
5  "retailers": [
6    "1"
7  ],
8  "attributes": [
9    {
10      "name": "address",
11      "type": "ADDRESS",
12      "value": {
13        "address": "46 Kippax Street",
14        "suburb": "Surry Hills",
15        "postcode": "2010",
16        "state": "NSW"
17      }
18    },
19    {
20      "name": "ECP",
21      "type": "STRING",
22      "value": "XCD123"
23    }
24  ]
25}

Language: json

Name: Example response

Description:

[Warning: empty required content area]


Update Network

Update parameters of the Network

PUT: 

`/api/v4.1/network/{networkId}`

Request and response

Request parameters and sample

 Network request

1{
2    name (string, compulsory),
3    retailers ((Array, compulsory),
4    attributes (Array[Attribute], optional)
5
6
7    Attribute {
8        name (string, optional),
9        type (string, optional) = ['STRING', 'INTEGER'],
10        value (string, optional)
11    }
12
13}

Language: java

Name: Network response

Description:

[Warning: empty required content area]
1{
2  "name": "Network",
3  "retailers": [
4    "1"
5  ],
6  "attributes": [
7    {
8      "name": "address",
9      "type": "ADDRESS",
10      "value": {
11        "address": "46 Kippax Street",
12        "suburb": "Surry Hills",
13        "postcode": "2010",
14        "state": "NSW"
15      }
16    },
17    {
18      "name": "ECP",
19      "type": "STRING",
20      "value": "XCD123"
21    }
22  ]
23}

Language: json

Name: Example response

Description:

[Warning: empty required content area]

Response Parameters and sample

 Network response

1{
2    id (object, optional),
3    message (string, optional),
4    status (string, optional)
5}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
1{
2  "id": 9
3}

Language: json

Name: Example response

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500


Order API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

An order is a customers request to purchase one or more items from a retailer. An order is created when a customer completes the checkout process against a Retailer Products.

Key points

  • Order API is used to create an order in the system. 
  • Customer and Products information should be available.
  • Order details like, order items, transaction details, fulfilment choice, customer and delivery information are all required to create an order.


Property

Value

URL

<root_url>/api/v4.1/order
<root_url>/api/v4.1/order/{orderId}
<root_url>/api/v4.1/order/{orderId}/attribute
<root_url>/api/v4.1/order/{orderId}/cancel

Methods

GET, POST, PUT

Scheme

https

Auth

OAUTH

Permissions

ORDER_VIEW

Content-Type

application/json

Order Properties

Below are the order properties of which are available in the order object and can be updated and retrieved via the order API's. 

1. createdOn

Type: String

Description:

`{ "createdOn" : "2016-10-23T23:04:39.083Z" }`
Date/time when the Order was created.

2. orderRef

Type: String

Description:

`{ "orderRef" : "23451789" }`
The unique order reference provided by the retailer.

3. orderId

Type: String

Description:

`{ "orderId" : "16425" }`
The unique order id assigned by Fluent Commerce.

4. type

Type: String

Description:

`{ "type" : "CC" }`
Type of order - click & collect (CC) or home delivery (HD) etc.

Possible values are: - **CC - **SFS - **HD - **RETURN

5. retailerId

Type: String

Description:

`{"type" : "003SurryHillsStore"}`
The unique Identification number of the retailer.

6. customer

Type: Object

1{"customerRef" : "3624"}
2{"email" : "customer@emailclient.com"}
3{"firstname" : "John"}
4{"lasname" : "Smith"}
5{"mobile" : "04xx 999 111"}

Language: plain_text

Name: Description

Description:

[Warning: empty required content area]
  • customerId (Integer, Optional) : Provide if existing customer. Mutually exclusive with name, email and mobile.
  • customerRef (String, Mandatory): Retailer reference for the customer.
  • firstName (String, Compulsory): Customers First Name - firstName is not required in order API, but in DB it's not null.
  • lastName (String, Optional): Customers Last Name - lastName is not required in order API.
  • email (String, Optional): Customer's email address.
  • mobile (String, Optional): Customer's mobile number
7. fulfilmentChoice

Type: Object

1{ "fulfilmentPrice" : "9.99" }
2{ "fulfilmentTaxPrice" : "null" }
3{ "currency" : "AUD" }
4{ "pickupLocationRef" : "1013" }
5{ "deliveryType" : "STANDARD" }
6{ "deliveryInstruction" : "Leave at front door" }
7

Language: plain_text

Name: Description

Description:

[Warning: empty required content area]

The fulfillment choice specified when booking the order

  • fulfilmentType (String, Optional): Indicates what fulfilment locations should be used. Allowed values are:
    • CC_PFS ( Click & Collect - Pick from Store),
    • CC_PFDC ( Click & Collect - Pick from DC)
    • HD_PFS (Home Delivery - Pick from Store)
    • HD_PFDC ( Home Delivery - Pick from DC)
  • fulfilmentPrice (Double, Optional): FulfilmentPrice refers to shipping fees if the order type is Home Delivery HD & C&C Fees for Click & Collect orders.
  • fulfilmentTaxPrice (Double, Optional): This refers to the tax cost associated with the fulfilment price.
  • currency (String, Optional): The type of currency, 3 letter ISO currency code.
  • pickupLocationRef (String, Optional): Pickup location is required for click & collect orders.
  • deliveryType (String, Optional): Based on retailers shipping options. Retailer fulfilment rules will determine how an order is handled. Example values are STANDARD, EXPRESS, OVERNIGHT, 3HOURS.
  • deliveryInstruction (String, Optional): Instruction provided by the customer ( 250 Character limit).
  • address (Object, Optional): Delivery address. Required if it is a home delivery.
8. items

Type: Array

1
2{ "skuRef" : "FX141123TPRT-1-2" }
3{ "requestedQty" : "1" }
4{ "skuPrice" : "59.99" }
5{ "skuTaxPrice" : "null" }
6{ "totalPrice" : "59.99" }
7{ "totalTaxPrice" : "null" }
8{ "taxType" : "null" }
9{ "currency" : "AUD" }
10{ "imageUrlRef" : "null" }

Language: json

Name: Description

Description:

[Warning: empty required content area]

An array of order line item objects in order.

  • skuId (String, Optional): The unique identifier that is generated when an SKU is created.
  • skuRef (String, Compulsory): The unique reference or code provided externally.
  • requestedQty (Integer, Optional): The total quantity being requested for fulfilment.
  • skuPrice (Double, Optional): The amount paid for the unit item excluding tax.
  • skuTaxPrice (Double, Optional): The amount of tax paid for the unit item.
  • totalPrice (Double, Compulsory): The total amount paid for the line item excluding tax.
  • totalTaxPrice (Double, Optional): The total amount of tax paid for the line item.
  • taxType (String, Optional): Identified what type of tax is associated with the Order Item.
    Allowed values are:
    • GST,
    • VAT,
    • EXCL
    • TAX
  • currency (String, Optional): The type of currency used to pay for the unit, this should be provided if the amount is received, 3 letter ISO currency code.
  • imageUrlRef (String, Optional): Can be used to provide the Image URL so that order items have an image displayed.
  • comments (Array[CommentRequest], optional) : Array of comments.
9. Location

Type: Object

1
2
3{ "companyName" : "null" }
4{ "street" : "25, James drive" }
5{ "city" : "Sydney" }
6{ "postcode" : "2000" }
7{ "state" : "NSW" }
8{ "country" : "AU" }

Language: plain_text

Name: Description

Description:

[Warning: empty required content area]

Fulfillment choice address

  • locationRef(String, Optional): Reference provided by the retailer.
  • companyName(String, Optional): Name of the company if delivering to a business location.
  • street(String, Optional): customer street address.
  • city(String, Optional): Customers city.
  • postcode(String, Optional): Customers postcode details.
  • state(String, Optional): Customers state.
  • country(String, Optional): Customers country
10. Attributes

Type: Array

Description:

1"attributes": [
2{
3"name" : "Supplier Address",
4"type" : "address",
5"value" : {
6    "value" : "46, Kippax Street",
7    "Suburb" : "Surry Hills",
8    "Post Code" : "2010",
9    "State" : "NSW,
10    "State" : "AU"
11    }
12},
13
14{
15"name" : "ECP",
16"type" : "string",
17"value" : "XSD987"
18}
19
20]

Language: json

Name: Order Attributes

Description:

Order Attributes and its value like,
ShipFrom address
ShipTo address
Price
Items
Packing instructions

An array of attributes. Attributes are used to provide additional information about the order. Standard attribute types like string, and integer and complex types like address which has more than one value are supported as well.

  • name (String, Optional): Name of attributes.
  • type (String, Optional): Type of value provided (String, Integer, Address etc).
  • value (String, Optional): attribute value
11. CommentRequest

Type: Array

1{ "entityId" : "124232" }
2{ "entityType" : "ORDER" }
3{ "retailerId" : "Order item comment" }

Language: plain_text

Name: Description

Description:

[Warning: empty required content area]

An array of commentRequest objects. One or more comments per order item.

  • body (String, Optional): Comment text. Max length 200 characters per comment.
  • entityId (String, Optional): ID of the entity.
  • entityType (String, Optional): = Entity type. Allowed values are:
    • ORDER'
    • FULFILMENT
    • CONSIGNMENT
  • retailerId (String, Optional): Retailer ID


What you can do with Order API

Create a new order

This API is used to create an order in the system. Information such as order details, order items, transaction details, fulfilment choice, and customer and delivery information are all required to create an order.

POST: 

`/api/v4.1/order`

Request and response

Request parameters and sample

 Order Request

1OrderRequest {
2    attributes (Array[Attribute], optional),
3    
4    Attribute {
5        name (string, optional),
6        type (string, optional) = ['STRING', 'INTEGER'],
7        value (string, optional)
8        },
9    customer (Customer, optional),
10    
11    Customer {
12
13        customerId (integer, optional),
14        customerRef (string, optional),
15        email (string, optional),
16        firstName (string, optional),
17        lastName (string, optional),
18        mobile (string, optional)
19        },
20    fulfilmentChoice (FulfilmentChoice,optional),
21    
22    FulfilmentChoice {
23        address (Location, optional),
24    
25    Location {
26
27        city (string, optional),
28        companyName (string, optional),
29        country (string, optional),
30        locationRef (string, optional),
31        name (string, optional),
32        postcode (string, optional),
33        state (string, optional),
34        street (string, optional)
35    },
36    currency (string, optional),
37
38    fulfilmentPrice (number, optional), fulfilmentTaxPrice (number, optional), 
39    fulfilmentType (string, optional) = ['CFS', 'STC', 'SFDC', 'CC_PFS', 'CC_PFDC', 'HD_PFS', 'HD_PFDC', 'R_RTDC', 'R_RTS'], 
40    preferredLocationRef (string, optional) },
41    
42    fulfilments (Array[Fulfilment], optional),
43    
44    Fulfilment {
45
46        fulfilmentId (string, optional),
47        fulfilmentRef (string, optional),
48        fulfilmentType (string, optional) = ['CFS', 'STC', 'SFDC', 'CC_PFS', 'CC_PFDC', 'HD_PFS', 'HD_PFDC', 'R_RTDC', 'R_RTS'],
49        orderId (string, optional),
50        status (string, optional)
51        },
52    items (Array[OrderItem], optional),
53    
54    OrderItem {
55        comments (Array[CommentRequest],optional),
56
57"""- note "FulfilmentChoice"""     
58            CommentRequest {
59                body (string, optional),
60                entityId (string, optional),
61                entityType (string, optional) = ['ORDER', 'FULFILMENT', 'CONSIGNMENT'],
62                retailerId (string, optional)
63                },
64
65        currency (string, optional),
66
67        imageUrlRef (string, optional),
68        productId (string, optional),
69        requestedQty (integer, optional),
70        skuId (string, optional),
71        skuPrice (number, optional),
72        skuRef (string, optional),
73        skuTaxPrice (number, optional),
74        taxType (string, optional) = ['GST', 'VAT', 'EXCLTAX'],
75        totalPrice (number, optional),
76        totalTaxPrice (number, optional)
77    },
78
79    orderRef (string, optional),
80    retailerId (string, optional),
81    totalPrice (number, optional),
82    totalTaxPrice (number, optional),
83    type (string, optional) = ['CC', 'SFS', 'HD', 'RETURN']
84
85}

Language: json

Name: Order Request

Description:

Order info like,
CustomerId, CustomerRef, Firstname, Lastname, Address
FulfillmentChoice
Location
Fulfillment plan
OrderItem

1{
2 "customer":{
3 "firstName":"nick",
4 "lastName":"yaw",
5 "customerRef":"00006T5B",
6 "mobile":"0410496842",
7 "email":"nick@parcelpoint.com.au"
8 },
9 "items":[
10 {
11 "skuRef":"117161458",
12 "skuPrice":19.99,
13 "totalPrice":59.99,
14 "requestedQty":1
15 }
16 ],
17 "orderRef":"1171615111",
18 "retailerId":"433",
19 "fulfilmentChoice":{
20 "fulfilmentPrice":0,
21 "fulfilmentTaxPrice":0,
22 "fulfilmentType":"HD_PFS",
23 "deliveryType":"STANDARD",
24 "deliveryInstruction":"home delivery",
25 "address":{
26 "name":"nrjxp",
27 "street":"24 pacific higway",
28 "city":"Wahroonga",
29 "postcode":"2076",
30 "state":"NSW",
31 "country":"Australia"
32 }
33 },
34 "type":"HD"
35}

Language: json

Name: Order Example

Description:

Order sample with values - OrderApi field values


Response Parameters and sample

 Order response

1SuccessMessageResponse {
2    id (object, optional),
3    message (string, optional),
4    status (string, optional)
5    }

Language: json

Name: Order Response

Description:

Order Response msg. with status

1{
2 "id": 427323
3}

Language: json

Name: Example Response

Description:

Sample Response Id

Get the details of an order

This API is used to retrieve the information about an order

GET: 

`/api/v4.1/order/{orderId}`

Request and response

Request parameters and sample

 Parameters in URL

Name

Type

Required

Description

orderId

`String`

Yes

The Order Id

Example request  /api/v4.1/order/41241412412

Response Parameters and Sample

 Order response

1OrderResponse {
2createdOn (string, optional),
3customer (Customer, optional),
4
5Customer {
6    customerId (integer, optional),
7    customerRef (string, optional),
8    email (string, optional),
9    firstName (string, optional),
10    lastName (string, optional),
11    mobile (string, optional)
12   },
13   fulfilmentChoice (FulfilmentChoice,optional),
14   
15   FulfilmentChoice {
16    address (Location, optional),
17    
18    currency (string, optional),
19    fulfilmentPrice (number, optional),
20    fulfilmentTaxPrice (number, optional),
21    fulfilmentType (string, optional) = ['CFS', 'STC', 'SFDC', 'CC_PFS', 'CC_PFDC', 'HD_PFS', 'HD_PFDC', 'R_RTDC', 'R_RTS'],
22    preferredLocationRef (string, optional)
23   },
24   fulfilments (Array[Fulfilment], optional),
25   
26   Fulfilment {
27    fulfilmentId (string, optional),
28    fulfilmentRef (string, optional),
29    fulfilmentType (string, optional) = ['CFS', 'STC', 'SFDC', 'CC_PFS', 'CC_PFDC', 'HD_PFS', 'HD_PFDC', 'R_RTDC', 'R_RTS'],
30    orderId (string, optional),
31    status (string, optional)
32   },
33   items (Array[OrderItem], optional),
34   
35   OrderItem {
36    comments (Array[CommentRequest],optional),
37    
38    CommentRequest {
39        body (string, optional),
40        entityId (string, optional),
41        entityType (string, optional) = ['ORDER', 'FULFILMENT', 'CONSIGNMENT'],
42        retailerId (string, optional)
43       },
44       
45    currency (string, optional),
46
47    imageUrlRef (string, optional),
48    productId (string, optional),
49    requestedQty (integer, optional),
50    skuId (string, optional),
51    skuPrice (number, optional),
52    skuRef (string, optional),
53    skuTaxPrice (number, optional),
54    taxType (string, optional) = ['GST', 'VAT', 'EXCLTAX'],
55    totalPrice (number, optional),
56    totalTaxPrice (number, optional)
57   },
58   orderId (string, optional), orderRef (string, optional), retailer (Retailer, optional),
59   
60   {
61    retailerId (string, optional)
62   },
63   status (string, optional),
64    type (string, optional) = ['CC', 'SFS', 'HD', 'RETURN'] 
65    stringEnum:"CC", "SFS", "HD", "RETURN" 
66}
67    
68    

Language: json

Name: Order Response

Description:

Order Response
CustomerId, CustomerRef, Firstname, Lastname, Address
FulfillmentChoice
Location
Fulfillment plan
OrderItem

1{
2"orderId": "16567",
3"orderRef": "1442900789",
4"status": "BOOKED",
5"type": "HD",
6"customer": {
7"customerId": 310728,
8"customerRef": "08141413",
9"firstName": "Rick",
10"lastName": "Leathers",
11"email": "nick@parcelpoint.com.au",
12"mobile": "0424188192"
13},
14"retailer": {
15"retailerId": "211"
16},
17"fulfilments": [
18{
19"orderId": "16567",
20"fulfilmentId": "4160",
21"fulfilmentRef": null,
22"status": "CREATED",
23"fulfilmentType": "HD_PFDC"
24}
25],
26"items": [
27{
28"imageUrlRef": "",
29"requestedQty": 1,
30"skuId": "198005",
31"skuRef": "FX141123TPRT-1-2",
32"skuPrice": 59.99,
33"skuTaxPrice": null,
34"totalPrice": 59.99,
35"totalTaxPrice": null,
36"taxType": null,
37"currency": null
38}
39],
40"fulfilmentChoice": {
41"fulfilmentType": "HD_PFDC",
42"fulfilmentPrice": null,
43"fulfilmentTaxPrice": null,
44"currency": null,
45"pickupLocationRef": null,
46"deliveryType": "STANDARD",
47"deliveryInstruction": "home delivery",
48"address": {
49"locationRef": "1013",
50"companyName": null,
51"name": "TestUser",
52"street": "24 pacific higway",
53"city": "wahroonga",
54"postcode": "123456",
55"state": "SFO",
56"country": "USA"
57}
58}
59}
60

Language: json

Name: Example Response

Description:

Sample Order Response with attribute values,

OrderId, Orderref,
CustomerId, Firstname, Lastname, email, phone#
RetailerId, FulfillmentChoice, FulfillmentId,
SkuId, price, units, currency
Shipfrom Address, Shipto address,
etc .....

Search for orders

This API returns a list of orders against a given set of search criteria

GET: 

`/api/v4.1/order`

Example: 

`/api/v4.1/order?customerRef=1234`

Cancel an order

This API is used to cancel an existing order. Orders can be cancelled only if the fulfilment has been created but not yet actioned or if the order is in a cancelled or rejected state.

POST: 

`/api/v4.1/order/{orderId}/cancel`

Request and response

Request parameters and sample

 Order request

`/api/v4.1/order/{orderId}/cancel`

Example request

`/api/v4.1/order/427323/cancel`

Response Parameters and sample

 Order response

1SuccessMessageResponse {
2    id (object, optional),
3    message (string, optional),
4    status (string, optional)
5}

Language: json

Name: Order Response

Description:

Order msg.Id, msg desc. and status

1{
2 "id":"427323"
3}

Language: json

Name: Example Response

Description:

Sample Response with Id

Update order attributes

This API is used to update additional information (attributes) and store it against the order.

PUT: 

`/api/v4.1/order/{orderId}/attribute`

Request and response

Request parameters and sample

 Order request

1OrderRequest {
2   attributes (Array[Attribute], optional),
3   
4   Attribute {
5    name (string, optional),
6    type (string, optional) = ['STRING', 'INTEGER'],
7    value (string, optional)
8   }
9}
10

Language: json

Name: Order Request

Description:

Order Request with parameter Attributes

1{
2"attributes": [
3{
4"name": "Order code 1",
5"type" : "string"
6"value": "123"
7},
8{
9"name": "Order code 2",
10"type" : "string"
11"value": "124"
12},
13{
14"name": "Address",
15"type" : "address",
16"value" : {
17"Address 1" : "46, Kipax Street",
18"Suburb" : "Surry Hills"
19"Post code" : "2010",
20"State" : "NSW"
21}
22}
23]
24}

Language: json

Name: Example Request

Description:

Sample Request with Attribute values.

This API is used to update additional information (attributes) and store it against the order.
Order info., Address

Response parameters and sample

 Order response

1attributeResponse{
2   updatedAttributes (Array[attributeRecord], optional), [
3   Attribute {
4    name (string, optional),
5    value (string, optional)
6   }
7  ],
8  
9  failedAttributes (Array[attributeFailureRecord], optional), [
10      Attribute {
11        name (string, optional),
12        value (string, optional),
13        error (string, optional),
14      }
15    ]
16    
17}

Language: json

Name: Order Response

Description:

Order Response in,
UpdateAttributes name and values
Failed Attributes name and values

1{
2"updatedattributes": [ {
3"name": "ordercode_1",
4"value": "123"
5},
6{
7"name": "ordercode_2",
8"value": "124"
9}],
10"failedattributes": [
11{
12"name": "address",
13"value" : {
14"Address 1" : "46, Kipax Street",
15"Suburb" : "Surry Hills"
16"Post code" : "2010",
17"State" : "NSW"
18},
19"error": "attributes not allowed for the user ID : [8977]"
20}
21]
22}

Language: json

Name: Example Response

Description:

Sample Response on,
UpdateAttributes name and values,
FailureAttributes name and values

and error msg.

Read order attributes

This API is used to retrieve existing attributes of an order.

GET: 

`/api/v4.1/order/{orderId}/attribute`

Request and response

Request parameters and sample

 Order request

`/api/v4.1/order/{orderId}/attribute`

 Example request 

`/api/v4.1/order/16567/attribute`

Response Parameters and sample

1orderResponse {
2orderId (string),
3attributes (array), [
4    attributes {
5    name (string),
6    type (string),
7    value (string)
8   }
9  ]
10
11}

Language: json

Name: Order Response

Description:

Order Response with Attributes,
OrderId and its values

1{
2"orderId": "16567",
3"attributes": [
4{
5"name": "Order code 1",
6"type" : "string",
7"value": "123"
8},
9{
10"name": "Order code 2",
11"type" : "string",
12"value": "124"
13},
14{
15"name": "Address",
16"type" : "address",
17"value" : {
18"Address 1" : "46, Kipax Street",
19"Suburb" : "Surry Hills",
20"Post code" : "2010",
21"State" : "NSW"
22}
23}
24]
25}

Language: json

Name: Example Response

Description:

Sample Response with attribute values,
OrderId
Name and address with values

Response on Failures

NAME

TYPE

DESCRIPTION

error

`Array`

Array of errors

message

`String`

Additional information on the code Unauthorised | Bad Request | Forbidden | Not Found | Status 500 Error

code

`String`

Status Code for the above messages 401 | 400 | 403 | 404 | 500


Order Item API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

An Order Item is the SKU purchased by the customer on the Retailer's online store. There can be one or many Order Items within an Order. Each order item has an associated quantity and paid price.

Key points

  • Order Item Properties
  • What you can do with Order Item
  • Response on Failures

Order Item Properties

Below are the properties available in the Order Item object which can be updated and retrieved through the APIs in this document.

1. orderRef

Type: String

Description: { "orderRef" : "example" } The unique reference provided by the retailer.

2. createdOn

Type: DateTime

Description: { "createdOn" : "2016-05-06T23:41:12.242Z" } Date/time when the Order was created.

3. items

Type: Array

Description:

1{ "skuId" : "397625" }
2
3{ "skuRef" : "FX141123TPRT-1-2" }
4
5{ "productId" : "21231231" }
6
7{ "requestedQty" : "1" }
8
9{ "skuPrice" : "59.99" }
10
11{ "skuTaxPrice" : "null" }
12
13{ "totalPrice" : "59.99" }
14
15{ "totalPrice" : "null" }
16
17{ "taxType" : "null" }
18
19{ "currency" : "AUD" }
20
21{ "imageUrlRef" : "http://demandware.edgesuite.net/aazi_dev/on/demandware.static/Sites-seed-au-Site/-/default/dwa7384063/images/noimagemedium.png" }
22
23{ "skuResponse" : [array] }

Language: java

Name: Description

Description:

[Warning: empty required content area]

An array of order item(s)

  • skuId (String) : The unique identifier assigned to the SKU by Fluent Commerce.
  • skuRef (String) : The unique SKU reference or code provided by the retailer.
  • productId (String) : The unique identifier assigned by Fluent Commerce.
  • requestedQty (Integer) : The total quantity assigned to the fulfilment.
  • skuPrice (Double) : The amount paid for the unit item excluding tax.
  • skuTaxPrice (Double) : The amount of tax paid for the unit item.
  • totalPrice (Double) : The total amount paid for the line item excluding tax.
  • totalTaxPrice (Double) : The total amount of tax paid for the line item.
  • taxType (String) : The type of tax is associated with the Order Item. Allowed values are:
    • GST,
    • VAT,
    • EXCLTAX
  • currency (String) : The type of currency used to pay for the unit, this should be provided if the amount is received, 3 letter ISO currency code.
  • imageUrlRef (String) : Can be used to provide the Image URL so that order items have an image displayed.
  • skuResponse (Object[skuResponse]) : The object with the SKU details.
4. skuResponse

Type: Object

1{ "skuRef" : "FX141123TPRT-1-2" }
2
3{ "productRef" : "9083122" }
4
5{ "name" : "Asymmetrical Sweater" }
6
7{ "status" : "ACTIVE" }
8
9{ "imageUrlRef" : "http://imageurl.com/noimagemedium.png" }
10
11{ "retailerId" : "197" }
12
13{ "prices" : [array] }
14
15{ "categories" : [array] }
16
17{ "attributes" : [array] }
18
19{ "references" : [array] }
20
21{ "categoryRef" : "83" }
22
23{ "categoryId" : "750" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

An array of SKUs

  • skuRef (String) : The unique SKU reference or code provided by the retailer..
  • productRef (String) : The unique product reference or code provided by the retailer.
  • name (String) : Product name.
  • status (Integer) : The SKU status. Possible values are:
    • ACTIVE'
    • INACTIVE
    • UNKNOWN
  • imageUrlRef (String) : Can be used to provide the Image URL so that order items have an image displayed.
  • retailerId (string) : The retailer identifier assigned by Fluent Commerce.
  • prices (array) : Array of prices associated with the SKU.
  • categories (array[categorySummary]) : Array of categories associated with the SKU.
  • attributes (array) : Array of attributes associated with the SKU.
  • references (array) : Array of SKU references. e.g.: EAN, MPN numbers. One SKU can have multiple references.
  • categoryRef (String) : The unique category reference or code provided by the retailer.
  • categoryId (String) : The unique identifier assigned to the category by Fluent Commerce.
5. price

Type: Array

1{ "type" : "CURRENT" }
2
3{ "value" : "89.95" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

An array of prices associated with the SKU

  • currency (String) : The type of currency used to pay for the unit, this should be provided if the amount is received, 3 letter ISO currency code.
  • type (String) : The price type. Possible values are:
    • CURRENT
    • ORIGINAL
  • value (String) : The associated price
6. categorySummary

Type: Array

Description:

1{ "categoryId" : "750" }
2
3{ "name" : "W ACTIVEWEAR" }
4
5{ "retailerId" : "197" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

An array of categories associated with the SKU

  • categoryRef (String) : The unique category reference or code provided by the retailer.
  • categoryId (String) : The unique identifier assigned to the category by Fluent Commerce.
  • name (string) : The category name.
  • retailerId (long) : The retailer identifier assigned by Fluent Commerce
7. attributes

Type: Array

Description:

1"attributes": [
2          {
3            "name": "SIZE_DESC",
4            "value": "S",
5            "type": "STRING"
6          },
7          {
8            "name": "SIZE_NUMBER",
9            "value": "S",
10            "type": "INTEGER"
11          },
12          {
13            "name": "COLOUR_DESC",
14            "value": "BLACK",
15            "type": "STRING"
16          },
17          {
18            "name": "COLOUR_NUMBER",
19            "value": "59",
20            "type": "INTEGER"
21          }
22        ]

Language: java

Name: Description

Description:

[Warning: empty required content area]

Array of attributes. Attributes are used to provide additional information about the order item.

  • name (String) : Indicates specific SKU attribute e.g. brand.
  • type (String/Integer) : Data type of specific SKU attribute. Possible values are:
    • STRING
    • INTEGER
  • value (String) : Value of SKU attribute.
8. references

Type: Array

Description:

1{ "value": "9346917673328" }

Language: java

Name: Description

Description:

[Warning: empty required content area]

Array of SKU references. e.g.: EAN, MPN numbers. Once SKU can have multiple references

  • type (String) :
  • value (String) :


What you can do with Order Item

View Order Item(s)

Retrieve all the order items associated with an order

GET: 

`/api/v4.1/order/{orderId}/item`

Request and response

Request parameters and sample

Order Request 

`/api/v4.1/order/{orderId}/item`

Example request /api/v4.1/order/4124141/item

Response Parameters and sample

1orderItemResponse {
2    createdOn (string),
3    orderRef (string),
4    items (array),
5    attributes (array)
6
7    items [{
8        skuId (string),
9        skuRef (string),
10        productId (string),
11        requestedQty (string),
12        skuPrice (double),
13        skuTaxPrice (double),
14        totalPrice (double),
15        totalTaxPrice (double),
16        taxType (string),
17        currency (string),
18        imageUrlRef (string),
19        skuResponse (object[skuResponse)
20    }]
21    
22    skuResponse {    
23        skuId (string),
24        skuRef (string),
25        productRef (string),
26        name (string),
27        status (string),
28        imageUrlRef (string),
29        retailerId (string),
30        prices (array)
31    }
32     
33    prices {
34
35            currency (string) = 'AUD', 'NZD',
36            type (string) = 'CURRENT', 'ORIGINAL',
37            value (double)
38            }
39            
40    categories (array[categorySummary]),
41
42        categorySummary {
43
44            categoryRef (string),
45            categoryId (string),
46            name (string),
47            retailerId (long)
48            }
49            
50        attributes {
51
52        name (string),
53        type (string),
54        value (string)
55        }
56
57``references (array)``
58
59        references {
60
61            type (string),
62            value (string)
63        }
64
65}
66

Language: java

Name: Order Item response

Description:

[Warning: empty required content area]
1{
2  "orderRef": "SEEDAU00001601",
3  "createdOn": "2015-11-16T02:10:22.000+0000",
4  "items": [
5    {
6      "imageUrlRef": "http://demandware.edgesuite.net/aazi_dev/on/demandware.static/Sites-seed-au-Site/-/default/dwa7384063/images/noimagemedium.png",
7      "requestedQty": 1,
8      "skuId": "397625",
9      "skuRef": "9083122-59-S-se",
10      "skuPrice": 59.95,
11      "skuTaxPrice": 5.45,
12      "totalPrice": 59.95,
13      "totalTaxPrice": 5.45,
14      "taxType": null,
15      "currency": "AUD",
16      "skuResponse": {
17        "skuId": 397625,
18        "skuRef": "9083122-59-S-se",
19        "productRef": "9083122",
20        "name": "Asymmetrical Sweater",
21        "status": "ACTIVE",
22        "prices": [
23          {
24            "type": "UNIT_PRICE",
25            "value": 59.95,
26            "currency": "AUD"
27          },
28          {
29            "type": "ORIGINAL_PRICE",
30            "value": 59.95,
31            "currency": "AUD"
32          }
33        ],
34        "attributes": [
35          {
36            "name": "SIZE_DESC",
37            "value": "S",
38            "type": "STRING"
39          },
40          {
41            "name": "SIZE_NUMBER",
42            "value": "S",
43            "type": "INTEGER"
44          },
45          {
46            "name": "COLOUR_DESC",
47            "value": "BLACK",
48            "type": "STRING"
49          },
50          {
51            "name": "COLOUR_NUMBER",
52            "value": "59",
53            "type": "INTEGER"
54          }
55        ],
56        "references": [
57          {
58            "type": "BARCODE",
59            "value": "9346917673328"
60          }
61        ],
62        "retailerId": 433,
63        "imageUrlRef": "http://demandware.edgesuite.net/aazi_dev/on/demandware.static/Sites-seed-au-Site/-/default/dwa7384063/images/noimagemedium.png",
64        "categories": [
65          {
66            "categoryId": "750",
67            "categoryRef": "83",
68            "name": "W ACTIVEWEAR",
69            "retailerId": 433
70          }
71        ]
72      }
73    }
74  ]
75}

Language: json

Name: Example request

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500

Product API

Author:

Movyn John

Changed on:

3 July 2024

Overview

A Product is a conceptual entity with a product description and multiple sets of attributes. A unique combination of the Product attributes defines a SKU which is an item for sale.

Key points

  • A product can have multiple SKUs associated with it and will have one or more categories associated.
  • The properties available in the Product entity which can be updated and retrieved through the APIs.
1. productId

Type: Long

Description: { "productId" : "345444" } The unique product identifier assigned by Fluent Commerce.

2. retailerId

Type: String

Description: { "retailerId" : "197" } The retailer identifier assigned by Fluent Commerce.

3. productRef

Type: String

  • Description: { "productRef" : "ProductRef_1972" } The unique product reference provided by the retailer.
4. name

Type: String

Description: { "name" : "MAV HUNTER DARK USED" } The Product name.

5. status

Type: String

Description: { "status" : "ACTIVE" } Product status. Possible values are: - ACTIVE (Default) - INACTIVE - UNKNOWN

6. prices

Type: Array

Description: "prices": [ { "type" : "UNIT_PRICE", "value" : "24.95", "currency" : "AUD" }, { "type" : "ORIGINAL_PRICE", "value" : "24.95", "currency" : "AUD" } ] Array of pricing information

  • currency (string) - Possible values are 'AUD', 'NZD’.
  • type (string) - Price type. Possible values are:
    • CURRENT
    • ORIGINAL
    • ORIGINAL_PRICE
    • UNIT_PRICE'
  • value (double) - Associated price
7. references

Type: Array

Description: "references": [ { "type" : "EAN", "value" : "12313123123"}]

Retailer references associated with the Product

  • type (string) - specific Product reference type. e.g BARCODE
  • value (string) - Reference value
8. attributes

Type: Array

Description: "attributes": [{ "name": "Accessories", "type": "string", "value": "earphones"}]
The array of attributes: Attributes are used to provide additional information about the Product.

  • name (String): Indicates specific Product attribute e.g. brand.
  • type (String/Integer): Data type of specific Product attribute. Possible values are:
    • STRING
    • INTEGER'
  • value (String): Value of Product attribute.
9. categories

Type: Array

Description: "categories": [ "234", "328"]

An array of category ids associated with the Product. 

10. createdOn

Type: DateTime

Description: { "createdOn": "2016-05-06T23:41:12.242Z" } Date/time when the Product was created.

11. updatedOn

Type: DateTime

Description: { "updatedOn": "2016-06-23T07:58:58.000+0000" } Date/time when the Product was last updated.


What you can do with Product

Create a product

Create a Product in the Fluent Retail system.

POST: /api/v4.1/product

Request and response

Request parameters and sample

1productRequest {
2attributes (Array[Attribute], optional)
3}
4
5Attribute {
6
7    name (string, optional),
8    type (string, optional) = ['STRING', 'INTEGER'],
9    value (string, optional)
10},
11categories (array, optional),
12
13categories {
14        categoryId (long, optional)
15},
16createdOn (DateTime, optional), name (string, compulsory), prices (array, optional),
17
18prices {
19    currency (string, optional) = 'AUD', 'NZD',
20    type (string, compulsory) = 'CURRENT', 'ORIGINAL', 'ORIGINAL_PRICE', 'UNIT_PRICE',
21    value (double, optional)
22},
23productId (long, optional), productRef (string, compulsory), references (array, optional),
24
25references {
26
27    type (string, optional),
28    value (string, optional)
29},
30retailerId (string, optional), status (string, optional), = 'ACTIVE', 'INACTIVE', 'UNKNOWN', updatedOn (DateTime, optional)
31}

Language: java

Name: Product request

Description:

Request parameters for Product and samples like,

Attributes,
Categories,
Prices,
References,
Status,
createdon and updatedon (Date/Time)

1{
2"attributes": [
3{
4"name":"small",
5"value":"1234",
6"type":"STRING"
7}
8],
9
10"name": "MAV HUNTER DARK USED",
11"prices": [
12{
13"type": "CURRENT",
14"value": 79.95,
15"currency": "AUD"
16}
17],
18"productRef": "ProductRef_1972",
19"references": [
20{
21"type":"BARCODE",
22"value":"999"
23}
24],
25"status": "ACTIVE",
26"retailerId": "197"
27}

Language: json

Name: Example response

Description:

Example response

Response Parameters and sample

1SuccessMessageResponse {
2    id (string, optional)
3}

Language: json

Name: Product response

Description:

[Warning: empty required content area]
1{
2 "id":"427323"
3}

Language: json

Name: Product Example response

Description:

[Warning: empty required content area]


View Product Details

Retrieve details of the Product.

GET: /api/v4.1/product/{productId}

Request and response 

Request parameters and sample

 Product request

/api/v4.1/product/{productId}

 Example request

/api/v4.1/product/345444

Response Parameters and sample

1productResponse {
2attributes (Array[Attribute]),
3Attribute {
4    name (string),
5    type (string) = ['STRING', 'INTEGER'],
6    value (string)
7}
8
9categories (array),
10categories {
11    categoryId (string),
12    }
13
14   createdOn (DateTime),name (string),prices (array),
15
16prices {
17    currency (string) = 'AUD', 'NZD', 'USD'
18    type (string) = 'CURRENT', 'ORIGINAL', 'ORIGINAL_PRICE', 'UNIT_PRICE',
19    value (double)
20}
21
22   productId (long),productRef (string),references (array),
23
24references {
25    type (string),
26    value (string)
27}
28
29     retailerId (string),status (string), = 'ACTIVE', 'INACTIVE', 'UNKNOWN', updatedOn (DateTime)
30
31}

Language: json

Name: Product response

Description:

Product response in arrays and all other parameters are listed.

Attributes,
Categories,
Prices,
References,
createdOn (DateTime), name (string), productId (long), productRef (string), 
retailerId (string), status (string), = 'ACTIVE', 'INACTIVE', 'UNKNOWN', updatedOn (DateTime)

1{
2"productId":2006047,
3"productRef":"ProductRef_1972",
4"name":"MAV HUNTER DARK USED",
5"status":"ACTIVE",
6"retailerId":"197",
7"updatedOn":null,
8"prices":
9[
10{
11"type":"CURRENT",
12"value":79.95,
13"currency":"AUD"
14}
15],
16"attributes":
17[
18{
19"name":"small",
20"value":"1234",
21"type":"STRING"
22}
23],
24"references":
25[
26{
27"type":"BARCODE",
28"value":"999"
29}
30],
31"categories":
32["234","344"]
33}

Language: json

Name: Product Example response

Description:

Example response JSON

Search Product

Retrieve a list of Products matching the search criteria.

GET: /api/v4.1/product-

Request and response

Request parameters and sample

1productRequest {
2    productRef (string, compulsory),
3    start (integer, optional),
4    count (integer, optional),
5    }
6    
7    {
8 "productRef":"ProductRef_1972"
9 "start": 1,
10 "count": 10
11   }

Language: json

Name: Product request and example

Description:

Product request and Example

Response Parameters and sample

1productResponse {
2start (integer),
3count (integer),
4total (integer),
5retailerId (integer),
6results (array),
7attributes (Array[Attribute]),
8
9Attribute {
10    name (string),
11    type (string) = ['STRING', 'INTEGER'],
12    value (string)
13}
14
15categories (array),
16
17categories {
18    categoryId (string)
19}
20
21createdOn (DateTime),
22name (string), prices (array),
23
24prices {
25    currency (string) = 'AUD', 'NZD','USD'
26    type (string) = 'CURRENT', 'ORIGINAL', 'ORIGINAL_PRICE', 'UNIT_PRICE',
27    value (double)
28}
29
30productId (long), productRef (string), references (array),
31
32references {
33    type (string),
34    value (string)
35}
36
37retailerId (string), status (string), = 'ACTIVE', 'INACTIVE', 'UNKNOWN', updatedOn (DateTime) }
38
39}
40

Language: json

Name: Product response

Description:

Product Response Parameters of,

Attributes, Categories, Prices, References

1{
2 "start": 1,
3 "count": 10,
4 "total": 105883,
5 "retailerId": null,
6 "results": [
7 {
8 "productId": 1,
9 "productRef": "B0014W44",
10 "name": "BBC SS CLASSIC ARCH",
11 "status": "ACTIVE",
12 "retailerId": "197",
13 "prices": [
14 {
15 "type": "CURRENT",
16 "value": 40,
17 "currency": "AUD"
18 },
19 {
20 "type": "ORIGINAL",
21 "value": 59.99,
22 "currency": "AUD"
23 }
24 ],
25 "attributes": [
26 {
27 "name": "BRAND",
28 "value": "BBC",
29 "type": "STRING"
30 }
31 ],
32 "references": [],
33 "categories": [
34 "1151"
35 ],
36 "updatedOn": "2015-10-08T03:01:09.402+0000",
37 "createdOn": "2015-06-14T11:57:13.000+0000"
38 },...
39 ]
40}

Language: json

Name: Product Example response

Description:

Example response with sample


View Associated SKUs

Retrieve details of all SKUs associated to the Product.

GET: /api/v4.1/product/{productId}/sku

Request and response

Request parameters and sample

1productRequest {
2    productRef (string, compulsory),
3    start (integer, optional),
4    count (integer, optional),
5    }
6    
7    {
8 "productRef":"ProductRef_1972"
9 "start": 1,
10 "count": 10
11   }

Language: json

Name: Product request

Description:

Product request and sample

Response Parameters and sample

1productResponse {
2    start (integer),
3    count (integer),
4    total (integer),
5    retailerId (integer),
6    results (array),
7    
8    attributes (Array[Attribute]),
9    Attribute {
10    name (string),
11    type (string) = ['STRING', 'INTEGER'],
12    value (string)
13    }
14    categories (array),
15    
16    categories {
17    categoryId (long),
18    categoryRef (string),
19    name (string),
20    createdOn (DateTime),
21    updatedOn (DateTime),
22    }
23    
24    createdOn (DateTime), name (string), prices (array),
25    
26    prices {
27    currency (string) = 'AUD', 'NZD',
28    type (string) = 'CURRENT', 'ORIGINAL', 'ORIGINAL_PRICE', 'UNIT_PRICE',
29    value (double)
30    }
31    
32    productId (long), productRef (string), references (array),
33    
34    references {
35    type (string),
36    value (string)
37    }
38    retailerId (string), status (string), = 'ACTIVE', 'INACTIVE', 'UNKNOWN', updatedOn (DateTime) }
39    
40    }
41    
42    

Language: json

Name: Product response

Description:

Response Parameters and sample


1{
2 "start": 1,
3 "count": 10,
4 "total": 105883,
5 "retailerId": null,
6 "results": [
7 {
8 "productId": 1,
9 "productRef": "B0014W44",
10 "name": "BBC SS CLASSIC ARCH",
11 "status": "ACTIVE",
12 "retailerId": "197",
13 "prices": [
14 {
15 "type": "CURRENT",
16 "value": 40,
17 "currency": "AUD"
18 },
19 {
20 "type": "ORIGINAL",
21 "value": 59.99,
22 "currency": "AUD"
23 }
24 ],
25 "attributes": [
26 {
27 "name": "BRAND",
28 "value": "BBC",
29 "type": "STRING"
30 }
31 ],
32 "references": [],
33 "categories": [
34 "1151"
35 ],
36 "updatedOn": "2015-10-08T03:01:09.402+0000",
37 "createdOn": "2015-06-14T11:57:13.000+0000"
38 },...
39 ]
40}
41

Language: json

Name: Product Example response

Description:

Example response



Update Product Details

Edit the Product information

PUT: /api/v4.1/product/{productId}

Request and response

Request parameters and sample

1productRequest {
2  attributes (Array[Attribute], optional),
3  
4  Attribute {
5    name (string, compulsory),
6    type (string, compulsory) = ['STRING', 'INTEGER'],
7    value (string, compulsory)
8    }
9    
10  categories (array, optional),
11  
12  categories {
13    categoryId (long, compulsory),
14    categoryRef (string, compulsory),
15    name (string, compulsory),
16    createdOn (DateTime, compulsory),
17    updatedOn (DateTime, compulsory),
18    }
19    
20  createdOn (DateTime, optional), name (string, optional), prices (array, optional),
21  
22  prices {
23    currency (string, compulsory) = 'AUD', 'NZD',
24    type (string, compulsory) = 'CURRENT', 'ORIGINAL', 'ORIGINAL_PRICE', 'UNIT_PRICE',
25    value (double, compulsory)
26    }
27    
28  productId (long, optional), productRef (string, compulsory), references (array, optional),
29  
30  references {
31    type (string, compulsory),
32    value (string, compulsory)
33    }
34    
35  retailerId (string, optional), status (string, optional), = 'ACTIVE', 'INACTIVE', 'UNKNOWN', updatedOn (DateTime, optional)
36
37}    
38

Language: json

Name: Product request

Description:

Product Request parameters and sample


1{
2"attributes": [
3{
4"name":"small",
5"value":"1234",
6"type":"STRING"
7}
8],
9"categories": [
10
11],
12"name": "MAV HUNTER DARK USED",
13"prices": [
14{
15"currency": "AUD",
16"value": 89.95,
17"type": "CURRENT"
18}
19],
20"productId": 2006047,
21"productRef": "ProductRef_1972",
22"references": [
23{
24"type":"BARCODE",
25"value":"999"
26}
27],
28"status": "ACTIVE",
29"updatedOn": "2015-08-24T05:43:06.100Z",
30"retailerId":"197"
31}
32

Language: json

Name: Product Example request

Description:

Example request with example


Response Parameters and sample

1SuccessMessageResponse {
2    id (string, optional)
3    }

Language: json

Name: Product Response

Description:

[Warning: empty required content area]
1{
2 "id":"427323"
3}
4
5

Language: json

Name: Product Example Response

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message


Code

String


String

Additional information on the code Unauthorised | Bad Request | Forbidden | Not Found | Status 500 Error


Status Code for the above messages 401 | 400 | 403 | 404 | 500

Return API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

A return is a customer's request to send back one or more items against an Order from the Retailer. A return can exist with or without the original order reference. If the original order reference exists, the return can contain the details of the returned items, the reasons, and the amount to be refunded. A return also could represent items within an original order that could not be fulfilled or has been canceled by the customer and requires a subsequent refund. Through the type of return, we can identify the context of the return, i.e., if it is a customer return, cannot fulfill or cancel.



Key points

  • The properties are available in the Return object
  • This Return object can be updated and retrieved through the API

Return Properties

Below properties are available in the Return object which can be updated and retrieved through the APIs in this document.

1. returnRef

Type: String

Description:

`{ "returnRef" : "554367" }`

The return reference from the retailer.

2. orderRef

Type: String

Description:

`{ "orderRef" : "201607191462" }`

The unique reference provided by the retailer.

3. orderId

Type: String

Description:

`{ "orderId" : "16425" }`

The unique order id assigned by Fluent Commerce.

4. retailerId

Type: String

Description:

{ "retailerId" : "197" }

`
`

The retailer identifier assigned by Fluent Commerce.

5. type

Type: String

Description:

`{ "type" : "CUSTOMER_RETURN" }`

The type of return. Possible values are:

  • CUSTOMER_RETURN - A customer initiated return.
  • CANCELLATION - The order was cancelled using Admin Console and a full refund has been initiated.
  • CANNOT_FULFIL - The original order contained items that couldn't be fulfilled so a refund has been initiated.

6. customer

Type: Object

Description:

1{
2"customerId": "5647547",
3"customerRef": "34562829",
4"email": "john@gmail.com",
5"firstName": "John",
6"lastName": "Smith",
7"mobile": "0407000111"
8}

Language: json

Name: Customer Return

Description:

Customer Return info.,

customerId (integer) - The unique customer identifier assigned by Fluent Commerce
customerRef (string) - The customer reference from the retailer.
firstName (string) - Customer's first name
lastName (string) - Customer's last name
email (string) - Customer's email
mobile (string) - Customer's mobile number

7. fulfilmentChoice

Type: Object

Description:

1{
2"preferredLocationRef": "SHA080",
3"fulfilmentType": "R_RTDC",
4"fulfilmentPrice": "7.90",
5"fulfilmentTaxPrice": "0.80",
6"currency": "AUD",
7"address": "<see example below>"
8}

Language: json

Name: FulfilmentChoice

Description:

Fulfilment Choice with below info.

Preferred Location: SYD_DC - Unique reference for drop off location
Fulfilment Type: R_RTDC - Return routed to Retailers DC irrespective of the drop off Address
                           R_RTS   - Returned to the store location
Price: 8.25          - The delivery cost excluding tax that will be refunded
TaxPrice: 1.50     - The tax component of the delivery cost that will be refunded
Currency:"AUD"  - Currency type, 3 letter ISO currency code
Address:                The destination address of the return parcel

8. address

Type: object

Description:

1{
2"city": "Sydney",
3"companyName": "Seed Heritage",
4"country": "Aus",
5"locationRef": "2038",
6"name": "", 
7"postcode": "2000",
8"state": "NSW",
9"street": "123 Pitt St"
10}

Language: json

Name: Return Address

Description:

The destination address of the return parcel

City
CompanyName
Country
LocationRef
Name
PostCode
State
Street

9. items

Type: Array

Description:

1{
2"skuId":"368961",
3"skuRef":"1022096-578-2-3-se",
4"skuPrice":19.99,
5"skuTaxPrice":null,
6"taxType":null,
7"currency":null,
8"returnQty":1,
9"returnReason":"Damaged",
10"returnCondition":"0"
11}

Language: json

Name: Return Items

Description:

The items within the return

skuId   - The unique identifier that is generated when a SKU is created
skuRef - The unique reference or code provided by the retailer.
skuPrice       - The amount that will be refunded for the unit item excluding tax.
skuTaxPrice - The tax component of the unit item.
taxType  - Possible values are:
              GST
              VAT
              EXCLTAX
currency   - Currency type, 3 letter ISO currency code.
returnQty  - This value can only be 1 for CUSTOMER_RETURN.
returnReason      - Return reason associated with the unit item returned. Configurable by retailer.
returnCondition  - Return condition associated with the unit item returned

10. fulfilments

Type: Array

Description:

1{
2"fulfilmentId": "5553633",
3"fulfilmentRef": "999878",
4"fulfilmentType": "R_RTDC",
5"status": "CREATED"
6}

Language: json

Name: Fulfilments

Description:

Fulfilments Array

fulfilmentId       - The unique fulfilment identifier assigned by Fluent Commerce
fulfilmentRef    - The unique fulfilment reference provided by the retailer
fulfilmentType  - Possible values:
          R_RTDC  - Return routed to Retailers DC irrespective of the drop off Address
          R_RTS     - Returned to the store location
status - Current status of the fulfilment. Possible values are:
          CREATED    - The Fulfilment is created in the system against a return
          COMPLETE - The Fulfilment moves to COMPLETE when all the articles have been RETURNED to the destination location
          ARRIVED     - The Fulfillments move to the ARRIVED state when all the Articles have arrived at the drop-off point

11. status

Type: String

Description:

` { "status" : "LODGED" }`


Current status of the return. Possible values are:

  • CREATED - Return created 
  • BOOKED  - Customer return booked.
  • LODGED  - Automatic refund strategy has been initiated i.e. Original order is single tender type and payment gateway is integrated.
  • PENDING RETURN - User initiated refund strategy has been initiated.
    i.e. Original order includes more than one tender type and/or payment gateway is not integrated.
         Return can also move to this state if the return transaction is declined by the payment gateway.
  • COMPLETE - Refund processed.

12. retailerId

Type: String

Description:

`{ "retailerId" : "197" }`

13. createdOn

Type: DateTime

Description:

 

`{ "createdOn" : "2016-05-06T23:41:12.242Z" }`

Date/time when the Return was created.

14. updatedOn

Type: DateTime

Description:

`{ "updatedOn" : "2016-06-23T07:58:58.000+0000" }`

Date/time when the Return was last updated.

15. totalReturnPrice

Type: Double

Description:

 

`{ "totalReturnPrice" : "59.90" }`

Total return value including shipping or click & collect fees

16. sort

Type: String

Description:

` { "sort" : "createdOn DESC" }`

Sorting options requested.

Note: Currently default sorting  "createdOn DESC” only supported.

`
`

17. query

Type: String

Description: Return Id, Order Reference or Customer Name searched for


What you can do with Return

Create a Return

Create a Return in the Fluent Commerce system.

POST: 

`/api/v4.1/return`

Request and response

Request parameters and sample

1returnRequest {
2    customer (Object, compulsory),
3
4        customer {
5            customerId (string, optional),
6            customerRef (string, optional)
7            email (string, compulsory),
8            firstName (string, optional),
9            lastName (string, optional),
10            mobile (string, optional)
11        }
12
13    fulfilmentChoice (Object, optional),
14
15        fulfilmentChoice {
16            address (object, optional),
17            currency (string, optional),
18            fulfilmentPrice (double, optional),
19            fulfilmentTaxPrice (double, optional),
20            fulfilmentType (string, optional),
21            preferredLocationRef (string, optional)
22        }
23
24        fulfilments (array, optional),
25
26        fulfilments {
27            fulfilmentId (string, optional),
28            fulfilmentRef (string, optional),
29            fulfilmentType (string, optional) = 'R_RTDC', 'R_RTS',
30            status (string, optional) = 'CREATED', 'COMPLETE', 'ARRIVED'
31
32        items (array, optional),
33
34        items {
35            currency (string, optional),
36            returnCondition (string, optional),
37            returnQty (integer, optional),
38            returnReason (string, optional),
39            skuId (string, optional),
40            skuPrice (double, optional),
41            skuRef (string, compulsory),
42            skuTaxPrice (double, optional),
43            taxType (string, optional) = 'GST', 'VAT', 'EXCLTAX'
44
45    orderId (string, optional),
46    orderRef (string, optional),
47    retailerId (string, compulsory),
48    returnRef (string, optional),
49    status (string, optional) = 'CREATED', 'BOOKED', 'LODGED', 'PENDING_REFUND', 'COMPLETE',
50    type (string, compulsory) = 'CUSTOMER_RETURN', 'CANNOT_FULFIL', 'CANCELLATION'
51    }

Language: json

Name: Return Request

Description:

Return Request Arrays like,

CustomerRef
Fulfilments
Orderref
Items

1{
2 "orderRef":"201607191462",
3 "orderId":"427331",
4 "type":"CUSTOMER_RETURN",
5 "retailerId":433,
6 "customer":{
7 "customerId":903674,
8 "customerRef":"38189566",
9 "firstName":"swathi",
10 "lastName":null,
11 "mobile":null,
12 "email":"eorxy@parcelpoint.com.au"
13 },
14 "items":[
15 {
16 "skuId":"368961",
17 "skuRef":"1022096-578-2-3-se",
18 "skuPrice":19.99,
19 "skuTaxPrice":null,
20 "taxType":null,
21 "currency":null,
22 "returnQty":1,
23 "returnReason":"Damaged",
24 "returnCondition":"0"
25 },
26 {
27 "skuId":"368961",
28 "skuRef":"1022096-578-2-3-se",
29 "skuPrice":19.99,
30 "skuTaxPrice":null,
31 "taxType":null,
32 "currency":null,
33 "returnQty":1,
34 "returnReason":"Damaged",
35 "returnCondition":"0"
36 }
37 ],
38 "fulfilmentChoice":{
39 "preferredLocationRef":"SHA080",
40 "fulfilmentType":"R_RTDC",
41 "address":{
42 "locationRef":"SHA080"
43 }
44 }
45}

Language: json

Name: Example ReturnRequest

Description:

Sample for Return Request with few values,

orderRef:"201607191462",
orderId:"427331",
type:"CUSTOMER_RETURN",
retailerId:433,

etc .....

Response Parameters and sample

1SuccessMessageResponse {
2    id (integer, optional)
3    }

Language: json

Name: Return Response Parameter

Description:

Return response

Response Parameters and sample.

1{
2 "id":"427323"
3}

Language: json

Name: Example Response

Description:

Sample Return Response with <id>,

id="427323"


View Return via returnId

Retrieve details of the Return using returnId.

GET: 

`/api/v4.1/return/{returnId}`

** Request and response **

Request parameters and sample

** Return request

`/api/v4.1/return/{returnId}`

** Example request

`/api/v4.1/return/5463`

Response Parameters and sample

** Return response 

1returnResponse {
2
3    customer (Object),
4
5        customer {
6            customerId (string),
7            customerRef (string)
8            email (string),
9            firstName (string),
10            lastName (string),
11            mobile (string)
12        }
13
14        fulfilmentChoice (Object),
15
16            fulfilmentChoice {
17                address (object),
18                city (string),
19                companyName (string),
20                country (string),
21                locationRef (string),
22                name (string),
23                postcode (string),
24                state (string),
25                street (string)
26                currency (string),
27
28        fulfilmentPrice (double),
29            fulfilmentTaxPrice (double),
30            fulfilmentType (string),
31            preferredLocationRef (string)
32        }
33
34        fulfilments (array),
35
36            fulfilments {
37            fulfilmentId (string),
38            fulfilmentRef (string),
39            fulfilmentType (string) = 'R_RTDC', 'R_RTS',
40            status (string) = 'CREATED', 'COMPLETE', 'ARRIVED'
41            items (array),
42
43        items {
44            currency (string),
45            returnCondition (string),
46            returnQty (integer),
47            returnReason (string),
48            skuId (string),
49            skuPrice (double),
50            skuRef (string),
51            skuTaxPrice (double),
52            taxType (string) = 'GST', 'VAT', 'EXCLTAX'
53
54        orderId (string),
55        orderRef (string),
56        retailerId (string),
57        returnRef (string),
58        status (string) = 'CREATED', 'BOOKED', 'LODGED', 'PENDING_REFUND', 'COMPLETE',
59        type (string) = 'CUSTOMER_RETURN', 'CANNOT_FULFIL', 'CANCELLATION',
60        createdOn (DateTime)
61    }

Language: json

Name: Return Response Parameters

Description:

Return Response Parameters and sample with arrays,

Customerref,
Fulfilments,
Items,
OrderId,
RetailerId,
Status,

Etc ....

Example Response,

1{
2 "orderRef":"201607191462",
3 "orderId":"427331",
4 "returnRef":"87f996fe-f915-4e8c-bcde-275c5ca9cb4d",
5 "retailerId":"433",
6 "type":"CUSTOMER_RETURN",
7 "status":"PENDING_REFUND",
8 "customer":{
9 "customerId":903674,
10 "customerRef":"38189566",
11 "firstName":"swathi",
12 "lastName":null,
13 "email":"eorxy@parcelpoint.com.au",
14 "mobile":null
15 },
16 "items":[
17 {
18 "skuId":"368961",
19 "skuRef":"1022096-578-2-3-se",
20 "skuPrice":19.99,
21 "skuTaxPrice":null,
22 "taxType":null,
23 "currency":null,
24 "returnQty":1,
25 "returnReason":"Damaged",
26 "returnCondition":"0"
27 },
28 {
29 "skuId":"368961",
30 "skuRef":"1022096-578-2-3-se",
31 "skuPrice":19.99,
32 "skuTaxPrice":null,
33 "taxType":null,
34 "currency":null,
35 "returnQty":1,
36 "returnReason":"Damaged",
37 "returnCondition":"0"
38 }
39 ],
40 "fulfilmentChoice":{
41 "fulfilmentType":"R_RTDC",
42 "preferredLocationRef":"SHA080",
43 "fulfilmentPrice":null,
44 "fulfilmentTaxPrice":null,
45 "currency":null,
46 "address":{
47 "locationRef":"SHA080",
48 "companyName":"Seed Heritage Camberwell",
49 "name":null,
50 "street":"598 Burke Road",
51 "city":"Camberwell",
52 "postcode":"3124",
53 "state":"VIC",
54 "country":"Australia"
55 }
56 },
57 "fulfilments":[
58 {
59 "fulfilmentId":"244188",
60 "fulfilmentRef":null,
61 "status":"COMPLETE",
62 "fulfilmentType":"R_RTDC"
63 }
64 ],
65 "createdOn":"2016-07-20T00:40:34.845+0000"
66}

Language: json

Name: Return Response Example

Description:

Return Response sample,

orderRef:"201607191462",
orderId:"427331",
returnRef:"87f996fe-f915-4e8c-bcde-275c5ca9cb4d",
retailerId:"433",
type:"CUSTOMER_RETURN",
status:"PENDING_REFUND",
customer:,
items:,

Etc ....


View Return via orderId

Retrieve details of the Return using orderId.

GET: /api/v4.1/order/{orderId}/return

** Request and response **

Request parameters and sample

** Return request

`/api/v4.1/order/{orderId}/return`

** Example request

`/api/v4.1/order/553638/return`

Response Parameters and sample

1returnResponse {
2    orderId (string),
3    orderRef (string),
4    retailerId (string),
5    returns (array),
6
7        returns {
8            createdOn (DateTime),
9            customer (Object),
10
11                customer {
12                    customerId (string),
13                    customerRef (string)
14                    email (string),
15                    firstName (string),
16                    lastName (string),
17                    mobile (string)
18                }
19
20                    fulfilmentChoice (Object),
21
22                        fulfilmentChoice {
23                            address (object),
24                                city (string),
25                                companyName (string),
26                                country (string),
27                                locationRef (string),
28                                name (string),
29                                postcode (string),
30                                state (string),
31                                street (string)
32
33                            currency (string),
34                            fulfilmentPrice (double),
35                            fulfilmentTaxPrice (double),
36                            fulfilmentType (string),
37                            preferredLocationRef (string)
38
39                    fulfilments (array),
40
41                        fulfilments {
42                        fulfilmentId (string),
43                        fulfilmentRef (string),
44                        fulfilmentType (string) = 'R_RTDC', 'R_RTS',
45                        status (string) = 'CREATED', 'COMPLETE', 'ARRIVED'
46
47                    items (array),
48
49                        items {
50                        currency (string),
51                        returnCondition (string),
52                        returnQty (integer),
53                        returnReason (string),
54                        skuId (string),
55                        skuPrice (double),
56                        skuRef (string),
57                        skuTaxPrice (double),
58                        taxType (string) = 'GST', 'VAT', 'EXCLTAX'
59
60
61                returnId (string),
62                returnRef (string),
63                status (string) = 'CREATED', 'BOOKED', 'LODGED', 'PENDING_REFUND', 'COMPLETE',
64                type (string) = 'CUSTOMER_RETURN', 'CANNOT_FULFIL', 'CANCELLATION'
65
66        }

Language: json

Name: Return Response

Description:

Return Response Parameters and list of arrays,

Customer,
Address,
OrderId,
Items,
Fulfilments,

Etc....

1{
2 "orderRef":"201607191471",
3 "orderId":"427340",
4 "retailerId":"433",
5 "returns":[
6 {
7 "returnId":"427341",
8 "returnRef":"4c9b2be8-969a-4d95-a20a-8cb017e5ade2",
9 "type":"CANNOT_FULFIL",
10 "status":"CREATED",
11 "customer":{
12 "customerId":903674,
13 "customerRef":"38189566",
14 "firstName":"swathi",
15 "lastName":null,
16 "email":"eorxy@parcelpoint.com.au",
17 "mobile":null
18 },
19 "items":[
20 {
21 "skuId":"368961",
22 "skuRef":"1022096-578-2-3-se",
23 "skuPrice":19.99,
24 "skuTaxPrice":null,
25 "taxType":null,
26 "currency":null,
27 "returnQty":1,
28 "returnReason":"CANNOT_FULFIL",
29 "returnCondition":"CANNOT_FULFIL"
30 }
31 ],
32 "fulfilmentChoice":null,
33 "fulfilments":[
34     {
35      "fulfilmentId":"123232",
36      "fulfilmentRef":"4-ie-erwerwe-1234",
37      "fulfilmentType": "R_RTDC",
38      "status":  "ARRIVED"
39     } 
40 ],
41 "createdOn":"2016-07-19T06:48:44.469+0000"
42 }
43 ]
44}

Language: json

Name: Return Response Example

Description:

Return Response Sample with list of values,

Orderref,
OrderId,
RetailerId,
ReturnId,
Returnref,
CustomerId,
Address,

Etc.....

Search Returns

Retrieve a list of Returns matching the search criteria.

GET: /api/v4.1/return

** Request and response**

Request parameters and sample

** Return request

1returnRequest {
2
3    retailerId (string, compulsory),
4    start (integer, optional),
5    count (integer, optional),
6    sort (string, optional) = 'createdOn DESC',
7    query (string, optional) = returnId, customerName, orderRef,
8    type (string, optional) = 'CUSTOMER_RETURN', 'CANNOT_FULFIL', 'CANCELLATION' { multiple can be passed},
9    status (string, optional) = 'CREATED', 'BOOKED', 'LODGED', 'PENDING_REFUND', 'COMPLETE' { multiple can be passed}
10}

Language: json

Name: Return Request

Description:

Return Request parameters with list of arrays,

RetailerId,
Start,
Count,
Query,
Type,
Status,

Etc.....

1{
2 "retailerId":"197",
3 "start":"1",
4 "count":"10",
5 "sort":"createdOn DESC",
6 "query":"",
7 "type":"CUSTOMER_RETURN",
8 "status":"CREATED"
9}

Language: json

Name: Return Request Example

Description:

Return Request Example with values,


 "retailerId":"197",
 "start":"1",
 "count":"10"
 "sort":"createdOn DESC",
 "query":"",
 "type":"CUSTOMER_RETURN",
 "status":"CREATED"

Response Parameters and sample

** Return response

1returnResponse {
2
3    start (integer),
4    count (integer),
5    total (integer),
6    retailerId (string),
7    results (integer):[
8    {
9        orderId (string),
10        orderRef (string),
11        customerId (string),
12        customerFirstName (string),
13        customerLastName (string),
14        totalReturnPrice (string),
15        currency (string),
16        createdOn (DateTime),
17        type (string) = 'CUSTOMER_RETURN', 'CANNOT_FULFIL', 'CANCELLATION',
18        status (string) = 'CREATED', 'BOOKED', 'LODGED', 'PENDING_REFUND', 'COMPLETE' ,
19        preferredLocationRef (string),
20        returnId (string),
21        returnRef (string)
22    }
23    ]
24    }

Language: json

Name: Return Response Parameters

Description:

Return Response Parameters with array list,

Start,
Count,
Total,
Type,
Status,
RetailerId

1{
2 "start":1,
3 "count":10,
4 "total":226,
5 "retailerId":"433",
6 "results":[
7 {
8 "orderId":"427331",
9 "orderRef":"201607191462",
10 "customerId":"903674",
11 "customerFirstName":"swathi",
12 "customerLastName":null,
13 "totalReturnPrice":39.98,
14 "currency":null,
15 "createdOn":"2016-07-20T00:40:34.845+0000",
16 "type":"CUSTOMER_RETURN",
17 "status":"PENDING_REFUND",
18 "preferredLocationRef":"SHA080",
19 "returnId":"427342",
20 "returnRef":"87f996fe-f915-4e8c-bcde-275c5ca9cb4d"
21 },
22 {
23 "orderId":"427340",
24 "orderRef":"201607191471",
25 "customerId":"903674",
26 "customerFirstName":"swathi",
27 "customerLastName":null,
28 "totalReturnPrice":19.99,
29 "currency":null,
30 "createdOn":"2016-07-19T06:48:44.469+0000",
31 "type":"CANNOT_FULFIL",
32 "status":"CREATED",
33 "preferredLocationRef":null,
34 "returnId":"427341",
35 "returnRef":"4c9b2be8-969a-4d95-a20a-8cb017e5ade2"
36 },
37 {
38 "orderId":"427323",
39 "orderRef":"1171615111",
40 "customerId":"903677",
41 "customerFirstName":"nick",
42 "customerLastName":"yaw",
43 "totalReturnPrice":19.99,
44 "currency":null,
45 "createdOn":"2016-07-19T03:11:20.291+0000",
46 "type":"CANNOT_FULFIL",
47 "status":"CREATED",
48 "preferredLocationRef":null,
49 "returnId":"427324",
50 "returnRef":"c74cb5ef-415f-4478-b0a3-2c9c593fb51c"
51 },
52 {
53 "orderId":"427316",
54 "orderRef":"201607131103",
55 "customerId":"903674",
56 "customerFirstName":"swathi",
57 "customerLastName":null,
58 "totalReturnPrice":39.98,
59 "currency":null,
60 "createdOn":"2016-07-13T01:27:12.380+0000",
61 "type":"CUSTOMER_RETURN",
62 "status":"PENDING_REFUND",
63 "preferredLocationRef":"SHA114",
64 "returnId":"427318",
65 "returnRef":"559de85a-d9a2-43ef-ba39-bed9220d1b2f"
66 },
67 {
68 "orderId":"427316",
69 "orderRef":"201607131103",
70 "customerId":"903674",
71 "customerFirstName":"swathi",
72 "customerLastName":null,
73 "totalReturnPrice":39.98,
74 "currency":null,
75 "createdOn":"2016-07-13T01:26:39.304+0000",
76 "type":"CUSTOMER_RETURN",
77 "status":"PENDING_REFUND",
78 "preferredLocationRef":"SHA114",
79 "returnId":"427317",
80 "returnRef":"87f3a0fa-3fb0-4b64-ae5c-c58d16ec53a1"
81 },
82 {
83 "orderId":"427314",
84 "orderRef":"201607131102",
85 "customerId":"903674",
86 "customerFirstName":"swathi",
87 "customerLastName":null,
88 "totalReturnPrice":39.98,
89 "currency":null,
90 "createdOn":"2016-07-13T01:10:19.793+0000",
91 "type":"CANNOT_FULFIL",
92 "status":"CREATED",
93 "preferredLocationRef":null,
94 "returnId":"427315",
95 "returnRef":"178dec57-482c-4321-a380-2d19fffb1da0"
96 },
97 {
98 "orderId":"427310",
99 "orderRef":"201607131101",
100 "customerId":"903674",
101 "customerFirstName":"swathi",
102 "customerLastName":null,
103 "totalReturnPrice":19.99,
104 "currency":null,
105 "createdOn":"2016-07-13T01:08:33.505+0000",
106 "type":"CUSTOMER_RETURN",
107 "status":"PENDING_REFUND",
108 "preferredLocationRef":"SHA114",
109 "returnId":"427312",
110 "returnRef":"42ce0208-0c71-4a21-8e81-736d9b8febaa"
111 },
112 {
113 "orderId":"427310",
114 "orderRef":"201607131101",
115 "customerId":"903674",
116 "customerFirstName":"swathi",
117 "customerLastName":null,
118 "totalReturnPrice":19.99,
119 "currency":null,
120 "createdOn":"2016-07-13T01:08:00.147+0000",
121 "type":"CUSTOMER_RETURN",
122 "status":"PENDING_REFUND",
123 "preferredLocationRef":"SHA114",
124 "returnId":"427311",
125 "returnRef":"4679fb8a-ee16-4adf-a3ba-6847ab4d95d9"
126 },
127 {
128 "orderId":"427306",
129 "orderRef":"201607130951",
130 "customerId":"903674",
131 "customerFirstName":"swathi",
132 "customerLastName":null,
133 "totalReturnPrice":39.98,
134 "currency":null,
135 "createdOn":"2016-07-13T00:22:15.894+0000",
136 "type":"CANNOT_FULFIL",
137 "status":"CREATED",
138 "preferredLocationRef":null,
139 "returnId":"427307",
140 "returnRef":"648dfb81-8c42-4200-a5fb-7cdc28394544"
141 },
142 {
143 "orderId":"427302",
144 "orderRef":"201607130950",
145 "customerId":"903674",
146 "customerFirstName":"swathi",
147 "customerLastName":null,
148 "totalReturnPrice":39.98,
149 "currency":null,
150 "createdOn":"2016-07-13T00:20:22.007+0000",
151 "type":"CANNOT_FULFIL",
152 "status":"CREATED",
153 "preferredLocationRef":null,
154 "returnId":"427305",
155 "returnRef":"878812ae-0fb4-4a44-a849-b5dd5aa81fc0"
156 }
157 ],
158 "query":null,
159 "sort":"createdOn DESC",
160 "status":[
161],
162 "type":[
163]
164}

Language: json

Name: Return Response Example

Description:

[Warning: empty required content area]

Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorised | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500


SKU API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

SKU is the specific item that can be purchased by the customer. SKU has a unique set of attributes such as colour and size. Product is the parent of SKU and must be created before the SKU API can be used.

Key points

  • SKU Properties
  • What you can do with SKU
  • Response on Failures



SKU Properties

Below are the properties available in the \<entity> object which can be updated and retrieved through the APIs in this document.

1. retailerId

Type: String

Description:

1{ "retailerId" : "197" }

Language: json

Name: retailerId

Description:

[Warning: empty required content area]

The retailer identifier assigned by Fluent Commerce.

2. skuId

Type: String

Description:

1{ "skuId" : "499972" }

Language: json

Name: skuId

Description:

[Warning: empty required content area]

The unique SKU identifier assigned by Fluent Commerce.

3. skuRef

Type: String

Description:

1{ "skuRef" : "TestSku_8679" }

Language: java

Name: skuRef

Description:

[Warning: empty required content area]

The unique SKU reference is provided by the retailer.

4. productId

Type: String

Description:

1{ "productId" : "45672" }

Language: java

Name: productId

Description:

[Warning: empty required content area]

The unique product identifier assigned by Fluent Commerce.

5. productRef

Type: String

Description:

1{ "productRef" : "ProductRef_0502" }

Language: json

Name: productRef

Description:

[Warning: empty required content area]

The unique product reference provided by the retailer.

6. status

Type: String

Description:

1{ "status" : "ACTIVE" }

Language: json

Name: status

Description:

[Warning: empty required content area]

SKU status. Possible values are : - ACTIVE - NACTIVE - UNKNOWN

7. imageUrlRef

Type: String

Description:

1{ "imageUrlRef" : "http://demandware.edgesuite.net/aazi_dev/on/demandware.static/Sites-seed-au-Site/-/default/dwa7384063/images/noimagemedium.png" }

Language: java

Name: imageUrlRef

Description:

[Warning: empty required content area]

Can be used to provide the Image URL so that SKUs have an image displayed.

8. name

Type: String

Description:

1{ "name" : "MAV HUNTER DARK USED" }

Language: java

Name: name

Description:

[Warning: empty required content area]

The SKU name.

9. prices

Type: Array

Description:

1"prices": [
2{
3"type" : "UNIT_PRICE",
4"value" : "24.95",
5"currency" : "AUD"
6},
7{ "type" : "ORIGINAL_PRICE",
8"value" : "24.95", 
9"currency" : "AUD"
10}
11]

Language: java

Name: prices

Description:

[Warning: empty required content area]

The price of the SKU

  • currency (string) - Possible values are 'AUD', 'NZD'
  • type (string) - Price type. Possible values are:
    • CURRENT
    • ORIGINAL'
    • ORIGINAL_PRICE'
    • UNIT_PRICE'
  • value (double) - Associated price.
10. references

Type: Array

Description:

1"references": [
2{
3"type" : "EAN",
4
5"value" : "12313123123"
6}
7]

Language: java

Name: references

Description:

[Warning: empty required content area]

Array of SKU references.

  • type (string) - specific SKU reference type. e.g BARCODE.
  • value (string) - Reference value.
11. categories

Type: Array

Description:

1"categories": [
2"234",
3
4"328"
5
6]

Language: java

Name: categories

Description:

[Warning: empty required content area]

An array of category ids associated with the SKU.

12. attributes

Type: Array

Description:

1"attributes": [
2{
3"name" : "Accessories",
4
5"type" : "string",
6
7"value" : "earphones"
8}
9]

Language: java

Name: attributes

Description:

[Warning: empty required content area]

Array of attributes. Attributes are used to provide additional information about the SKU.

  • name (String) : Indicates specific SKU attribute e.g. brand.
  • type (String/Integer) : Data type of specific SKU attribute. Possible values are:
    • STRING
    • INTEGER
  • value (String) : Value of SKU attribute.
13. createdOn

Type: DateTime

Description:

1{ "createdOn" : "2016-05-06T23:41:12.242Z" }

Language: java

Name: createdOn

Description:

[Warning: empty required content area]

Date/time when the SKU was created.

14. updateOn

Type: DateTime

Description:

1{ "updatedOn" : "2016-06-23T07:58:58.000+0000" }

Language: java

Name: updateOn

Description:

[Warning: empty required content area]

Date/time when the SKU was last update.


What you can do with SKU

Create a SKU

Create a SKU in the Fluent Retail system.

POST: 

`/api/v4.1/product/{productId}/sku`

Request Object

1skuRequest {
2
3    attributes (Array[Attribute], optional),
4
5
6        Attribute {
7
8            name (string, optional),
9            type (string, optional) = ['STRING', 'INTEGER'],
10            value (string, optional)
11        }
12
13 categories (array, optional),
14
15        categories {
16
17            id (long, optional)
18        }
19
20    createdOn (DateTime, optional),
21
22    imageUrlRef (string, optional),
23    name (string, compulsory),
24    prices (array, optional),
25
26        price {
27
28            currency (string, optional),
29            type (string, compulsory) = ['CURRENT', 'ORIGINAL', 'ORIGINAL_PRICE', 'UNIT_PRICE'],
30            value (double, optional)
31        }
32
33    productRef (string, optional),
34
35    references (array, optional),
36
37
38        reference {
39
40            type (string, optional),
41            value (string, optional)
42        }
43
44    retailerId (string, optional),
45
46    skuRef (string, compulsory),
47    status (string, compulsory), = 'ACTIVE', 'INACTIVE', 'UNKNOWN',
48    updateOn (DateTime, optional)
49    }

Language: java

Name: Request Object

Description:

[Warning: empty required content area]

Example request

1{
2  "attributes": [
3    {
4      "name": "string",
5      "type": "STRING",
6      "value": "string"
7    }
8  ],
9  "createdOn": "2016-12-13T23:50:55.656Z",
10  "imageUrlRef": "string",
11  "name": "string",
12  "prices": [
13    {
14      "currency": "string",
15      "type": "CURRENT",
16      "value": 0
17    }
18  ],
19  "productRef": "string",
20  "references": [
21    {
22      "type": "string",
23      "value": "string"
24    }
25  ],
26  "retailerId": "string",
27  "skuRef": "string",
28  "status": "ACTIVE",
29  "updateOn": "2016-12-13T23:50:55.657Z"
30} 

Language: json

Name: Example Request

Description:

[Warning: empty required content area]

Response Object

1SuccessMessageResponse {
2
3    id (string, optional)
4    }

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Example response

1{
2 "id":"2043042"
3}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
View SKU Details

Retrieve details of the SKU.

GET: 

`/api/v4.1/product/{productId}/sku/{skuId}`

Response Object

1skuResponse {
2
3    attributes (Array[Attribute]),
4
5
6        Attribute {
7
8            name (string),
9            type (string) = ['STRING', 'INTEGER'],
10            value (string)
11        }
12
13    categories (array),
14
15
16
17        categories {
18
19            categoryId (long),
20            categoryRef (string),
21            name (string)
22        }
23
24
25    createdOn (string),
26    imageUrlRef(string),
27    name (string),
28    prices (array),
29
30        prices {
31
32            currency (string) = 'AUD', 'NZD',
33            type (string) = 'CURRENT', 'ORIGINAL', 'ORIGINAL_PRICE', 'UNIT_PRICE',
34            value (double)
35        }
36
37    productRef (string),
38
39    references (array),
40
41
42        references {
43
44            type (string),
45            value (string)
46        }
47
48    retailerId (string),
49
50    skuRef (string),
51    status (string), = 'ACTIVE', 'INACTIVE', 'UNKNOWN',
52    updatedOn (DateTime)
53    }

Language: java

Name: Response Object

Description:

[Warning: empty required content area]
Example response
1{
2  "skuRef": "DM12345",
3  "productRef": "DM01",
4  "name": "name of sku (description)",
5  "status": "ACTIVE",
6  "prices": [],
7  "attributes": [],
8  "references": [
9    {
10      "type": "BARCODE",
11      "value": "999"
12    }
13  ],
14  "updateOn": "2016-11-15T15:39:50.661+0000",
15  "createdOn": "2016-10-31T01:18:33.253+0000",
16  "imageUrlRef": "url of image",
17  "categories": [
18    {
19      "categoryId": "1",
20      "categoryRef": "50",
21      "name": "Jumper dress"
22    }
23  ]
24}

Language: text

Name: Example response

Description:

[Warning: empty required content area]
Search SKUs

Retrieve a list of SKUs matching the search criteria.

GET: 

`/api/v4.1/sku`

Request Object
1skuRequest {
2
3    productId (string, compulsory),
4
5    start (integer, optional)
6    count (integer, optional)
7    }

Language: java

Name: Request object

Description:

[Warning: empty required content area]
Example request
1{
2 "productId":"2006048",
3 "start":"1",
4 "count":"10"
5 }

Language: text

Name: Example request

Description:

[Warning: empty required content area]

Response Object

1{
2
3start (integer),
4count (integer),
5total (integer),
6retailerId (string),
7results (array[skuSummary]):[
8    {
9    skuId (string),
10    skuRef (string),
11    productRef (string),
12    name (string),
13    status (string), = 'ACTIVE', 'INACTIVE', 'UNKNOWN',
14    imageUrlRef (string),
15    prices (array),
16
17
18
19        price {
20
21            currency (string) = 'AUD', 'NZD',
22            type (string) = 'CURRENT', 'ORIGINAL', 'ORIGINAL_PRICE', 'UNIT_PRICE',
23            value (double)
24        }
25
26        attributes (Array[Attribute]),
27
28
29            Attribute {
30
31                name (string),
32                type (string) = ['STRING', 'INTEGER'],
33                value (string)
34        }
35
36        references (array),
37
38            View references
39                references {
40                type (string),
41                value (string)
42        }
43
44
45        categories (array),
46
47            categories {
48
49                id (long),
50                categoryRef (string),
51                name (string),
52                updatedOn (DateTime),
53                createdOn (DateTime)
54
55        }
56
57        createdOn (string),
58
59        updateOn (DateTime)
60        }
61    ]
62    }

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Example response

1{
2  "start": 1,
3  "count": 1,
4  "total": 10,
5  "retailerId": null,
6  "results": [
7    {
8      "skuId": 1,
9      "skuRef": "DM12345",
10      "productRef": "DM01",
11      "name": "name of sku (description)",
12      "status": "ACTIVE",
13      "imageUrlRef": "url of image",
14      "prices": [],
15      "attributes": [],
16      "references": [
17        {
18          "type": "BARCODE",
19          "value": "999"
20        }
21      ],
22      "categories": [
23        {
24          "id": 1,
25          "categoryRef": "50",
26          "name": "Jumper dress",
27          "updatedOn": "2016-10-31T01:18:32.916+0000",
28          "createdOn": "2016-10-31T01:18:32.916+0000"
29        }
30      ],
31      "updateOn": "2016-11-15T15:39:50.661+0000",
32      "createdOn": "2016-10-31T01:18:33.253+0000"
33    }
34  ]
35}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
Update SKU Details

Edit the SKU information.

PUT: 

`/api/v4.1/product/{productId}/sku/{skuId}`

Request Object

1skuRequest {
2
3    attributes (Array[Attribute], optional),
4
5
6        Attribute {
7
8            name (string, compulsory),
9            type (string, compulsory) = ['STRING', 'INTEGER'],
10            value (string, compulsory)
11        }
12
13
14
15    categories (array, optional),
16
17        categories {
18
19            categoryId (long, optional),
20            categoryRef (string, compulsory),
21            name (string, optional),
22            createdOn (DateTime, optional),
23            updatedOn (DateTime, optional),
24        }
25
26    createdOn (DateTime, optional),
27
28    imageUrlRef (string, optional),
29
30    name (string, optional),
31
32    prices (array, optional),
33
34        prices {
35
36            currency (string, compulsory) = 'AUD', 'NZD',
37            type (string, compulsory) = 'CURRENT', 'ORIGINAL', 'ORIGINAL_PRICE', 'UNIT_PRICE',
38            value (double, compulsory)
39        }
40
41    productRef (string, compulsory),
42
43
44    references (array, optional),
45
46
47        references {
48
49            type (string, compulsory),
50            value (string, compulsory)
51        }
52
53    retailerId (string, optional),
54
55    skuRef (string, compulsory),
56    status (string, optional), = 'ACTIVE', 'INACTIVE', 'UNKNOWN',
57    updatedOn (DateTime, optional)
58
59
60    }

Language: java

Name: Request Object

Description:

[Warning: empty required content area]
Example request
1{
2"attributes": [
3{
4"name": "Brand",
5"value": "soles",
6"type": "STRING"
7}
8],
9"imageUrlRef": "https://www.gluestore.com.au/media/catalog/product/s/o/sol_6300004799929_black01.jpg (656KB)",
10"name": "TestProd_1234",
11"prices": [],
12"productRef": "ProductRef_0502",
13"references": [],
14"skuRef": "TestSku_8679",
15"status": "ACTIVE",
16"retailerId": "211",
17"categories": []
18}

Language: text

Name: Example request

Description:

[Warning: empty required content area]

Response object

1SuccessMessageResponse {
2
3    id (string, optional),
4}

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Example response

1{
2 "id":"427323"
3}

Language: java

Name: Example response

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500

Settings API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

Settings API is used to set configurations used by the platform, accounts and retailers. See Commerce Apps documentation for specific settings keys and their function.

Configurations have a hierarchy of contexts in which they can be applied. GLOBAL, ACCOUNT and RETAILER are the levels in decreasing order of context, where GLOBAL is reserved by platform use and ACCOUNT and RETAILER are available to developers to override the GLOBAL defaults.

Key points

  • Setting Properties
  • What you can do with the Settings API
  • Response on Failures

Setting Properties

Below are the properties available in the Setting object which can be updated/retrieved through the APIs in this document.

1. key

Type: String

Description:

1"key" : "PAYMENT.PROVIDER"

Language: java

Name: Description

Description:

[Warning: empty required content area]

Key is a mandatory parameter. It uniquely identifies a configuration option. For instance, PAYMENT.PROVIDER, PAYMENT.CURRENCY.

2. value

Type: Object

Description:

1"value": [{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}]

Language: java

Name: Description

Description:

[Warning: empty required content area]

Value contains the actual value of the configuration setting. The type of the object is represented as string in the type field.

For instance, if the value is a JSON, type field should match it and have the value "JSON".

3. type

Type: String

Description:

1"type" : "JSON"

Language: java

Name: Description

Description:

[Warning: empty required content area]

Represents the data type for the value. It is an enum with following possible values -

Enum { LOB, STRING, INTEGER, BOOLEAN, JSON}

4. level

Type: String

1"level" : "ACCOUNT"

Language: java

Name: Description

Description:

[Warning: empty required content area]

Represents the level of the setting. It is an enum with following possible values -

Enum { GLOBAL, ACCOUNT, RETAILER }


What you can do with the Settings API

Create/Update an account configuration setting

This endpoint can be used to create or update an ACCOUNT level configuration setting for an account. The user of the API must have SETTINGS_EDIT permission. Currently ADMIN role has that permission.

PUT: 

`/api/v4.1/settings/account/{accountId}/{key}`

Params:

  • accountId: string
  • key: string
1`/api/v4.1/settings/account/1111/PAYMENT.PROVIDER `

Language: text

Name: URL Example

Description:

[Warning: empty required content area]

Request Object

1setting {
2    key(string),
3    value(object),
4    type(string)
5}

Language: java

Name: Request Object

Description:

[Warning: empty required content area]

Example:

  • key:
    `"PAYMENT.PROVIDER"`
  • value:
    `[{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}]`
  • type:
    `{ LOB, STRING, INTEGER, BOOLEAN, JSON}`

Example request

1{
2    "setting":
3        {
4            "key": "PAYMENT.PROVIDER",
5            "value": [{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}],
6            "type": "JSON"
7        }
8
9}

Language: json

Name: Example Request

Description:

[Warning: empty required content area]

Response Object

1{
2    "id": integer
3}

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Id for the configuration setting that was created or updated.

Example response

1{
2 "id":"100"
3}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
View account configuration setting

This endpoint can be used to view the configuration settings for given keys for an account.

GET: 

`/api/v4.1/settings/account/{accountId}/{keys}`

Params:

  • accountId: string
  • keys: string. 

Response Object

1[{
2key: string,
3    example "PAYMENT.PROVIDER"
4value: object,
5    the value of the object should be of the type passed as string in "type" attribute
6    example [{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}]
7type: string,
8    Enum { LOB, STRING, INTEGER, BOOLEAN, JSON }
9    example "JSON"
10level: string
11    Enum { GLOBAL, ACCOUNT, RETAILER }
12    example: "GLOBAL"
13}]

Language: java

Name: Response Object

Description:

[Warning: empty required content area]
Example 1
1/api/v4.1/settings/account/1111/PAYMENT.PROVIDER,PAYMENT.CURRENCY

Language: text

Name: URL Example

Description:

[Warning: empty required content area]

Setting response

1{
2    "settings": [
3        {
4            "key": "PAYMENT.PROVIDER",
5            "value": [{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}],
6            "type": "JSON",
7            "level": "ACCOUNT"
8        },
9        {
10            "key": "PAYMENT.CURRENCY",
11            "value": true,
12            "type": "[{"name":"AUD"},{"name":"NZD"}]",
13            "level": "GLOBAL"
14        }
15    ]
16}

Language: java

Name: Setting response - Example 1

Description:

[Warning: empty required content area]

Example 2

1/api/v4.1/settings/account/1111/PAYMENT.PROVIDER

Language: text

Name: URL Example

Description:

[Warning: empty required content area]

Example response

1{
2    "settings": [
3        {
4            "key": "PAYMENT.PROVIDER",
5            "value": [{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}],
6            "type": "JSON",
7            "level": "GLOBAL"
8        }
9    ]
10}

Language: java

Name: Setting response - Example 2

Description:

[Warning: empty required content area]
Create/Update a retailer configuration setting

This endpoint can be used to create or update a RETAILER level configuration setting for a retailer. The user of the API must have SETTINGS_EDIT permission. Currently ADMIN role has that permission.

PUT: 

`/api/v4.1/settings/retailer/{retailerId}/{key}`

Params:

  • retailerId: string
  • key: string
1/api/v4.1/settings/retailer/2222/PAYMENT.PROVIDER

Language: text

Name: URL

Description:

[Warning: empty required content area]
1{
2    "setting":
3        {
4            "key": "PAYMENT.PROVIDER",
5            "value": [{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}],
6            "type": "JSON"
7        }
8
9}

Language: text

Name: Example request

Description:

[Warning: empty required content area]

Response Object

1{
2    "id": integer
3}

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Id for the configuration setting that was created or updated.

Example response

1{
2 "id":"123456"
3}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
View retailer configuration settings

This endpoint can be used to view the configuration settings for the retailer for the given keys.

GET: 

`/api/v4.1/settings/retailer/{retailerId}/{keys}`

Params:

  • retailerId: string
  • keys: string. 

Response Object

1[{
2key: string,
3    example "PAYMENT.PROVIDER"
4value: object,
5    the value of the object should be of the type passed as string in "type" attribute
6    example [{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}]
7type: string,
8    Enum { LOB, STRING, INTEGER, BOOLEAN, JSON }
9    example "JSON"
10level: string
11    Enum { GLOBAL, ACCOUNT, RETAILER }
12    example: "GLOBAL"
13}]

Language: java

Name: Response Object

Description:

[Warning: empty required content area]
Request 1
1/api/v4.1/settings/retailer/2222/PAYMENT.PROVIDER

Language: text

Name: URL Example

Description:

[Warning: empty required content area]

Setting response

1{
2    "settings": [
3        {
4            "key": "PAYMENT.PROVIDER",
5            "value": [{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}],
6            "type": "JSON",
7            "level": "RETAILER"
8        }
9    ]
10}

Language: java

Name: Setting response - Request 1

Description:

[Warning: empty required content area]

Request 2

1/api/v4.1/settings/retailer/2222/PAYMENT.PROVIDER,PAYMENT.CURRENCY

Language: text

Name: URL Example

Description:

[Warning: empty required content area]

Example response

1{
2    "settings": [
3        {
4            "key": "PAYMENT.PROVIDER",
5            "value": [{"name":"BRAINTREE"},{"name":"CYBERSOURCE"},{"name":"PAYPAL"},{"name":"GIVEX"},{"name":"AFTERPAY"},{"name":"FAT_ZEBRA"}],
6            "type": "JSON",
7            "level": "RETAILER"
8        },
9        {
10            "key": "PAYMENT.CURRENCY",
11            "value": [{"name":"AUD"},{"name":"NZD"}],
12            "type": "JSON",
13            "level": "GLOBAL"
14        }
15    ]
16}

Language: java

Name: Setting response - Request 2

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500

Transaction Order API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

An API Order transaction defines the payment or refund details associated with an Order.

Key points

  • Order Transaction Properties
  • What you can do with Order Transaction
  • Response on Failures

Order Transaction Properties

Below are the properties available in the Order Transaction object which can be updated and retrieved through the APIs in this document.

1. orderId

Type: String

Description:

1{ "orderId" : "1965797" }

Language: json

Name: orderId

Description:

[Warning: empty required content area]

The unique identifier assigned by Fluent Commerce.

2. transactionId

Type: String

Description:

1{ "transactionId" : "56473" }

Language: json

Name: transactionId

Description:

[Warning: empty required content area]

The unique transaction identifier assigned by Fluent Commerce.

3. transactionRef

Type: String

Description:

1{ "transactionRef" : "1442900790" }

Language: java

Name: transactionRef

Description:

[Warning: empty required content area]

The unique transaction reference provided by the Retailer to the payment gateway.

For refunds, it contains the transaction Id provided by the gateway to Fluent Commerce when a refund is processed.

4. transactionType

Type: String

Description:

1{ "transactionType" : "PAYMENT" }

Language: java

Name: transactionType

Description:

[Warning: empty required content area]

The type of transaction. Possible values are:

  • PAYMENT - Order payment has been successfully processed via payment gateway.
  • REFUND - Refund has been successfully processed via payment gateway integration.
  • MANUAL REFUND - Transaction has been processed externally to the Fluent Retail system with the reference details saved in Admin Console.
5. amount

Type: Double

Description:

1{ "amount" : "59.90" }

Language: json

Name: amount

Description:

[Warning: empty required content area]

For transactionType = PAYMENT - The total transaction amount.

For transactionType = REFUND - The requested refund amount for a return.

6. currency

Type: String

Description:

1{ "currency" : "AUD" }

Language: json

Name: currency

Description:

[Warning: empty required content area]

The transaction currency. Possible values include 'AUD', 'NZD'.

7. transactionCode

Type: String

Description:

1{ "transactionCode" : "080920151234" }

Language: java

Name: transactionCode

Description:

[Warning: empty required content area]

The unique transaction ID or request ID provided by the payment gateway.

8. paymentProvider

Type: String

Description:

1{ "paymentProvider" : "PAYPAL" }

Language: java

Name: paymentProvider

Description:

[Warning: empty required content area]

The name of the payment gateway.

Possible values are:

  • CYBERSOURCE
  • GIVEX
  • PAYPAL
  • BRAINTREE
  • AFTERPAY
9. paymentMethod

Type: String

Description:

1{ "paymentMethod" : "GIFTVOUCHER" }

Language: json

Name: paymentMethod

Description:

[Warning: empty required content area]

The way in which payment was made.

Possible values are:

  • CREDITCARD
  • PAYPAL'
  • GIFTVOUCHER
  • CASH
  • AFTERPAY
10. cardType

Type: String

Description:

1{ "cardType" : "VISA" }

Language: json

Name: cardType

Description:

[Warning: empty required content area]

The card type used for the payment (if applicable)

Possible values are:

  • MASTERCARD
  • VISA
  • AMEX
  • DINERS
  • DISCOVER
  • UNIONPAY
  • JCB
  • MAESTRO
  • INTERAC
11. status

Type: String

Description:

1{ "status" : "APPROVED" }

Language: java

Name: status

Description:

[Warning: empty required content area]

The transaction status.

Default value is APPROVED for all transactions not initiated by Fluent Retail System i.e. A payment transaction passed in by the retailer along with the order details will be in APPROVED state.

For a Refund initiated by Fluent Retail it can be:

  • APPROVED - The Refund has been approved by the payment provider. A manual refund recorded in the system will be in approved state.
  • PROCESSING - The refund is in progress with the payment provider.
  • DECLINED - The refund has failed to process successfully.
12. createdOn

Type: DateTime

Description:

1{ "createdOn" : "2016-05-06T23:41:12.242Z" }

Language: java

Name: createdOn

Description:

[Warning: empty required content area]

Date/time when the transaction was created.

13. updateOn

Type: DateTime

Description:

1{ "updatedOn" : "2016-06-23T07:58:58.000+0000" }

Language: java

Name: updateOn

Description:

[Warning: empty required content area]

Date/time when the transaction was last updated.


What you can do with Order Transaction

Create an Order Transaction

Create a transaction in the Fluent Retail system.

POST: 

`/api/v4/order/{orderId}/transaction`

Request Object

1orderTransactionRequest {
2
3amount (double, compulsory),
4cardType (string, optional) = 'MASTERCARD', 'VISA', 'AMEX', 'DINERS',
5currency (string, compulsory) = 'AUD', 'NZD',
6paymentMethod (string, compulsory) = 'CREDITCARD', 'PAYPAL', 'GIFTVOUCHER', 'CASH', 'AFTERPAY',
7paymentProvider (string, compulsory) = 'CYBERSOURCE', 'GIVEX', 'PAYPAL', 'BRAINTREE', 'AFTERPAY',
8transactionCode (string, compulsory),
9transactionRef (string, compulsory),
10transactionType (string, compulsory) = 'PAYMENT', 'REFUND', 'MANUAL REFUND',
11updatedOn (string, optional)
12}

Language: java

Name: Request Object

Description:

[Warning: empty required content area]

Example request

1orderTransactionRequest {
2
3amount (double, compulsory),
4cardType (string, optional) = 'MASTERCARD', 'VISA', 'AMEX', 'DINERS',
5currency (string, compulsory) = 'AUD', 'NZD',
6paymentMethod (string, compulsory) = 'CREDITCARD', 'PAYPAL', 'GIFTVOUCHER', 'CASH', 'AFTERPAY',
7paymentProvider (string, compulsory) = 'CYBERSOURCE', 'GIVEX', 'PAYPAL', 'BRAINTREE', 'AFTERPAY',
8transactionCode (string, compulsory),
9transactionRef (string, compulsory),
10transactionType (string, compulsory) = 'PAYMENT', 'REFUND', 'MANUAL REFUND',
11updatedOn (string, optional)

Language: java

Name: Example Request

Description:

[Warning: empty required content area]

Response Object

1SuccessMessageResponse {
2
3id (object, optional),
4message (string, optional),
5status (string, optional)
6}

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Example response

1{
2 "id":"185330"
3}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
View Transaction Details

Retrieve details for a single Transaction associated with an Order

GET: 

`/api/v4/order/{orderId}/transaction/{transactionId}`

Response Object

1orderTransactionResponse {
2amount (double),
3cardType (string) = 'MASTERCARD', 'VISA', 'AMEX', 'DINERS',
4createdOn (string),
5currency (string) = 'AUD', 'NZD',
6orderId (string),
7paymentMethod (string) = 'CREDITCARD', 'PAYPAL', 'GIFTVOUCHER', 'CASH', 'AFTERPAY',
8paymentProvider (string) = 'CYBERSOURCE', 'GIVEX', 'PAYPAL', 'BRAINTREE', 'AFTERPAY',
9transactionCode (string),
10transactionId (string),
11transactionRef (string),
12transactionType (string) = 'PAYMENT', 'REFUND', 'MANUAL REFUND',
13}

Language: java

Name: Response Object

Description:

[Warning: empty required content area]
Example response
1{
2  "amount": 0,
3  "cardType": "VISA",
4  "createdOn": "2016-11-29T21:11:30.851Z",
5  "currency": "AUD",
6  "orderId": "16567",
7  "paymentMethod": "CREDITCARD",
8  "paymentProvider": "BRAINTREE",
9  "transactionCode": "080920151234",
10  "transactionId": "185330",
11  "transactionRef": "1442900790",
12  "transactionType": "PAYMENT"
13}

Language: text

Name: Example response

Description:

[Warning: empty required content area]
View all Order Transactions

Retrieve all transactions associated with an Order.

GET: 

`/api/v4/order/{orderId}/transaction`

Request Object
1orderTransactionRequest {
2
3    start (integer, optional),
4    
5    count (integer, optional)
6}

Language: java

Name: Request object

Description:

[Warning: empty required content area]
Example request
1{
2 "start":"1",
3 "count":"10"
4}

Language: text

Name: Example request

Description:

[Warning: empty required content area]

Response Object

1orderTransactionResponse {
2
3    start (integer),
4    count (integer),
5    total (integer),
6    retailerId (string),
7    orderId (string),
8    transactions (array[orderTransactions]) [
9    {
10        transactionId (string),
11        transactionRef (string),
12        transactionType (string) = 'PAYMENT', 'REFUND', 'MANUAL REFUND',
13        amount (double),
14        createdOn (DateTime)
15        status (string) = 'APPROVED', 'PROCESSING', 'DECLINED',
16        paymentProvider (string) = 'CYBERSOURCE', 'GIVEX', 'PAYPAL', 'BRAINTREE', 'AFTERPAY',
17        cardType (string) = 'MASTERCARD', 'VISA', 'AMEX', 'DINERS',
18        paymentMethod (string) = 'CREDITCARD', 'PAYPAL', 'GIFTVOUCHER', 'CASH', 'AFTERPAY'
19    }
20    ]
21}

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Example response

1{
2  "count": 0,
3  "orderId": 0,
4  "results": [
5    {
6      "amount": 0,
7      "cardType": "VISA",
8      "createdOn": "2016-11-29T21:11:30.836Z",
9      "currency": "AUD",
10      "orderId": 0,
11      "paymentMethod": "CREDITCARD",
12      "paymentProvider": "BRAINTREE",
13      "transactionCode": "string",
14      "transactionId": 0,
15      "transactionRef": "string",
16      "transactionType": "PAYMENT"
17    }
18  ],
19  "start": 0,
20  "total": 0
21}

Language: java

Name: Example response

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500

Transaction Return API

Author:

Fluent Commerce

Changed on:

3 July 2024

Overview

An Order transaction defines the payment or refund details associated with an Order.

Key points

  • Return Transaction Properties
  • What you can do with Transaction
  • Response on Failures

Return Transaction Properties

Below are the properties available in the Return Transaction object which can be updated and retrieved through the APIs in this document.

1. orderId

Type: String

Description:

1{ "orderId" : "1965797" }

Language: json

Name: orderId

Description:

[Warning: empty required content area]

The unique identifier assigned by Fluent Commerce.

2. transactionId

Type: String

Description:

1{ "transactionId" : "56473" }

Language: json

Name: transactionId

Description:

[Warning: empty required content area]

The unique transaction identifier assigned by Fluent Commerce.

3. transactionRef

Type: String

Description:

1{ "transactionRef" : "1442900790" }

Language: java

Name: transactionRef

Description:

[Warning: empty required content area]

The unique transaction reference provided by the Retailer to the payment gateway.

For refunds, it contains the transaction Id provided by the gateway to Fluent Commerce when a refund is processed.

4. transactionType

Type: String

Description:

1{ "transactionType" : "PAYMENT" }

Language: java

Name: transactionType

Description:

[Warning: empty required content area]

The type of transaction. Possible values are:

  • PAYMENT - Order payment has been successfully processed via payment gateway.
  • REFUND - Refund has been successfully processed via payment gateway integration.
  • MANUAL REFUND - Transaction has been processed externally to the Fluent Retail system with the reference details saved in Admin Console.
5. amount

Type: Double

Description:

1{ "amount" : "59.90" }

Language: json

Name: amount

Description:

[Warning: empty required content area]

For transactionType = PAYMENT - The total transaction amount.

For transactionType = REFUND - The requested refund amount for a return.

6. currency

Type: String

Description:

1{ "currency" : "AUD" }

Language: json

Name: currency

Description:

[Warning: empty required content area]

The transaction currency. Possible values include 'AUD', 'NZD'.

7. transactionCode

Type: String

Description:

1{ "transactionCode" : "080920151234" }

Language: java

Name: transactionCode

Description:

[Warning: empty required content area]

The unique transaction ID or request ID provided by the payment gateway.

8. paymentProvider

Type: String

Description:

1{ "paymentProvider" : "PAYPAL" }

Language: java

Name: paymentProvider

Description:

[Warning: empty required content area]

The name of the payment gateway.

Possible values are:

  • CYBERSOURCE
  • GIVEX
  • PAYPAL
  • BRAINTREE
  • AFTERPAY
9. paymentMethod

Type: String

Description:

1{ "paymentMethod" : "GIFTVOUCHER" }

Language: json

Name: paymentMethod

Description:

[Warning: empty required content area]

The way in which payment was made.

Possible values are:

  • CREDITCARD
  • PAYPAL'
  • GIFTVOUCHER
  • CASH
  • AFTERPAY
10. cardType

Type: String

Description:

1{ "cardType" : "VISA" }

Language: json

Name: cardType

Description:

[Warning: empty required content area]

The card type used for the payment (if applicable)

Possible values are:

  • MASTERCARD
  • VISA
  • AMEX
  • DINERS
  • DISCOVER
  • UNIONPAY
  • JCB
  • MAESTRO
  • INTERAC
11. status

Type: String

Description:

1{ "status" : "APPROVED" }

Language: java

Name: status

Description:

[Warning: empty required content area]

The transaction status.

Default value is APPROVED for all transactions not initiated by Fluent Retail System i.e. A payment transaction passed in by the retailer along with the order details will be in APPROVED state.

For a Refund initiated by Fluent Retail it can be:

  • APPROVED - The Refund has been approved by the payment provider. A manual refund recorded in the system will be in approved state.
  • PROCESSING - The refund is in progress with the payment provider.
  • DECLINED - The refund has failed to process successfully.
12. createdOn

Type: DateTime

Description:

1{ "createdOn" : "2016-05-06T23:41:12.242Z" }

Language: java

Name: createdOn

Description:

[Warning: empty required content area]

Date/time when the transaction was created.

13. updateOn

Type: DateTime

Description:

1{ "updatedOn" : "2016-06-23T07:58:58.000+0000" }

Language: java

Name: updateOn

Description:

[Warning: empty required content area]

Date/time when the transaction was last updated.


What you can do with Transaction

Create a Return Transaction

Create a return Transaction in the Fluent Retail system

POST: 

`/api/v4.1/return/{returnId}/transaction`

Request Object

1returnTransactionRequest {
2
3    amount (double, compulsory),
4    cardType (string, optional) = 'MASTERCARD', 'VISA', 'AMEX', 'DINERS',
5    currency (string, compulsory) = 'AUD', 'NZD',
6    paymentMethod (string, compulsory) = 'CREDITCARD', 'PAYPAL', 'GIFTVOUCHER', 'CASH', 'AFTERPAY',
7    paymentProvider (string, compulsory) = 'CYBERSOURCE', 'GIVEX', 'PAYPAL', 'BRAINTREE', 'AFTERPAY',
8    transactionCode (string, compulsory),
9    transactionNote (string, optional),
10    transactionRef (string, compulsory),
11    transactionType (string, compulsory) = 'PAYMENT', 'REFUND', 'MANUAL REFUND'
12}

Language: java

Name: Return Transaction Request Object

Description:

[Warning: empty required content area]

Example request

1{
2 "transactionRef" : "123",
3 "transactionType" : "REFUND",
4 "amount" : 100,
5 "currency" : "AUD",
6 "paymentProvider": "PAYPAL",
7 "paymentMethod" : "PAYPAL",
8 "cardType" : null,
9 "transactionCode" : 2344
10 "transactionNote" : "Huge Transaction"
11}

Language: java

Name: Example Request

Description:

[Warning: empty required content area]

Response Object

1SuccessMessageResponse {
2
3    id (object, optional)
4}

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Example response

1{
2 "id":"185330"
3}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
View Return Transaction Details

Retrieve details for a single Transaction associated with a Return

GET: 

`/api/v4.1/return/{returnId}/transaction/{transactionId}`

1/api/v4/return/16567/transaction/185330

Language: java

Name: Example request

Description:

[Warning: empty required content area]

Response Object

1returnTransactionResponse {
2    amount (double),
3    cardType (string) = 'MASTERCARD', 'VISA', 'AMEX', 'DINERS',
4    createdOn (string),
5    currency (string) = 'AUD', 'NZD',
6    paymentMethod (string) = 'CREDITCARD', 'PAYPAL', 'GIFTVOUCHER', 'CASH', 'AFTERPAY',
7    paymentProvider (string) = 'CYBERSOURCE', 'GIVEX', 'PAYPAL', 'BRAINTREE', 'AFTERPAY',
8    status (string) = 'APPROVED', 'DECLINED', 'PROCESSING',
9    transactionCode (string),
10    transactionId (string),
11    transactionNote (string),
12    transactionRef (string),
13    transactionType (string) = 'PAYMENT', 'REFUND', 'MANUAL REFUND'
14}

Language: java

Name: Response Object

Description:

[Warning: empty required content area]
Example response
1{
2 "transactionId": "123",
3 "transactionRef" : "123",
4 "transactionType" : "REFUND",
5 "transactionCode" : null,
6 "amount" : 0.1,
7 "currency" : "AUD",
8 "paymentProvider": "PAYPAL",
9 "paymentMethod" : "PAYPAL",
10 "cardType" : null,
11 "transactionNote" : "Huge Transaction",
12 "createdOn" : "2016-07-20T00:40:34.845+0000",
13 "status": "APPROVED"
14}

Language: text

Name: Example response

Description:

[Warning: empty required content area]
View all Return Transactions

Retrieve all transactions associated with a Return

GET: 

`api/v4.1/return/{returnId}/transaction`

Request Object
1returnTransactionRequest {
2
3    start (integer, optional),
4    
5    count (integer, optional)
6}

Language: java

Name: Return Transaction request

Description:

[Warning: empty required content area]
Example request
1{
2 "start":"1",
3 "count":"10"
4 }

Language: text

Name: Example request

Description:

[Warning: empty required content area]

Response Object

1returnTransactionResponse {
2
3    count (integer),
4    retailerId (string),
5    returnId (string),
6    returnRef (string),
7    returnType (string),
8    start (integer),
9    total (integer),
10    transactions (array):[
11    {
12    amount (double),
13    cardType (string) = 'MASTERCARD', 'VISA', 'AMEX', 'DINERS',
14    createdOn (string),
15    currency (string) = 'AUD', 'NZD',
16    paymentMethod (string) = 'CREDITCARD', 'PAYPAL', 'GIFTVOUCHER', 'CASH', 'AFTERPAY',
17    paymentProvider (string) = 'CYBERSOURCE', 'GIVEX', 'PAYPAL', 'BRAINTREE', 'AFTERPAY',
18    status (string) = 'APPROVED', 'DECLINED', 'PROCESSING',
19    transactionCode (string),
20    transactionId (string),
21    transactionNote (string),
22    transactionRef (string),
23    transactionType (string) = 'PAYMENT', 'REFUND', 'MANUAL REFUND'
24    }
25    ]
26}

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Example response

1{
2 "start": 1,
3 "count": 100,
4 "total": 1,
5 "retailerId": 333,
6 "returnRef": "1",
7 "returnType": "CUSTOMER_RETURN",
8 "returnId": 1,
9 "transactions": [
10 {
11 "transactionId": "123",
12 "transactionRef": "123",
13 "transactionType": "PAYMENT",
14 "transactionCode": null,
15 "amount": 0.1,
16 "currency": "AUD",
17 "paymentProvider": "PAYPAL",
18 "paymentMethod": "PAYPAL",
19 "cardType": null,
20 "transactionNote": "Huge Transaction",
21 "createdOn": "2016-07-20T00:40:34.845+0000",
22 "status": "APPROVED"
23 }
24 ]
25}

Language: java

Name: Example response

Description:

[Warning: empty required content area]
Update Return Transaction

Edit the Return Transaction information

PUT: 

`/api/v4.1/return/{returnId}/transaction/{transaction id}`

Request Object
1returnTransactionRequest {
2
3    paymentMethod (string, optional) = 'CREDITCARD', 'PAYPAL', 'GIFTVOUCHER', 'CASH', 'AFTERPAY',
4    status (string, optional) = 'APPROVED', 'DECLINED', 'PROCESSING',
5    transactionNote (string, optional),
6    transactionRef (string, optional)
7}

Language: java

Name: Return Transaction request

Description:

[Warning: empty required content area]
Example request
1{
2 "transactionRef" : "123",
3 "status" : "APPROVED",
4 "paymentMethod" : "PAYPAL",
5 "transactionNote" : "Huge Transaction"
6}

Language: text

Name: Example request

Description:

[Warning: empty required content area]

Response Object

1SuccessMessageResponse {
2
3    id (integer, optional)
4}

Language: java

Name: Response object

Description:

[Warning: empty required content area]

Example response

1{
2 "id":"427323"
3}

Language: java

Name: Example response

Description:

[Warning: empty required content area]


Response on Failures

NAME

TYPE

DESCRIPTION

error

Array

Array of errors

message

String

Additional information on the code Unauthorized | Bad Request | Forbidden | Not Found | Status 500 Error

code

String

Status Code for the above messages 401 | 400 | 403 | 404 | 500

Fluent Commerce

Fluent Commerce