Product API
Essential knowledge
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: LongDescription: { "productId" : "345444" } The unique product identifier assigned by Fluent Commerce.2. retailerId
Type: StringDescription: { "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: StringDescription: { "name" : "MAV HUNTER DARK USED" } The Product name.5. status
Type: StringDescription: { "status" : "ACTIVE" } Product status. Possible values are: - ACTIVE (Default) - INACTIVE - UNKNOWN6. prices
Type: ArrayDescription: "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: ArrayDescription: "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: ArrayDescription: "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: ArrayDescription: "categories": [ "234", "328"]An array of category ids associated with the Product.10. createdOn
Type: DateTimeDescription: { "createdOn": "2016-05-06T23:41:12.242Z" } Date/time when the Product was created.11. updatedOn
Type: DateTimeDescription: { "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/productRequest and responseRequest parameters and sample1productRequest {
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}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}1SuccessMessageResponse {
2 id (string, optional)
3}1{
2 "id":"427323"
3}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/345444Response Parameters and sample1productResponse {
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}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}Search Product
Retrieve a list of Products matching the search criteria.GET: /api/v4.1/product-Request and responseRequest parameters and sample1productRequest {
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 }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}
401{
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}View Associated SKUs
Retrieve details of all SKUs associated to the Product.GET: /api/v4.1/product/{productId}/skuRequest and responseRequest parameters and sample1productRequest {
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 }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 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}
41Update Product Details
Edit the Product informationPUT: /api/v4.1/product/{productId}Request and responseRequest parameters and sample1productRequest {
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}
381{
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}
321SuccessMessageResponse {
2 id (string, optional)
3 }1{
2 "id":"427323"
3}
4
5Response 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 |