ValidateIncomingProduct
Changed on:
29 Nov 2023
Overview
Validates the incoming product payload
Plugin Name | Inventory Reference Module |
---|---|
Namespace | [[account.id]].globalinventory |
The Inventory Reference Module is the foundation for inventory related implementations. It provides reference Workflows for inventory ingestion and processing. Extensible by design, use this Module as a base to build a solution to the needs of your customers.
The Inventory Module includes the following areas:
- Product Catalogue workflow
- Inventory Catalogue workflow
- Control Group workflow
- Virtual Catalogue workflow
UI Description
Validates the incoming product payload
Accepts
- PRODUCT_CATALOGUE
Actions
- This rule only validates {ref}, and {type} event attributes and does not produce any action.
Rule parameters
This rule has no Input Parameters.
Event attributes
Main Event Attributes
Parameter | Description | Data Type | Required? |
ref | The ref of the product | String | Required |
type | The type of the product | String | Required |
name | The name of the product | String | Optional |
gtin | The gtin of the product | String | Optional |
standardProductRef | The ref of the parent Standard Product | String | Optional |
categoryRefs | A list of string category references | [String] | Optional |
summary | A brief summary of the product | String | Optional |
prices | A list of prices. See the below table for its attributes | [Price] | Optional |
taxType | Tax type of this product. See the below table for its attributes | Tax | Optional |
attributes | Extra attributes that may be used as part of this product. See the table below for the definition | [Attribute] | Optional |
Price sub-attribute
Parameter | Description | Data Type | Required? |
type | The type of the price | String | Required |
currency | The currency of the price | String | Required E.g. EUR, AUD |
value | The value of the price | Floating Point | Required |
Tax type sub-attribute
Parameter | Description | Data Type | Required? |
country | The country of this tax type | String | Required |
group | The tax group | String | Required |
tariff | The tariff of this tax type | String | Required |
Attribute type sub-attribute
Parameter | Description | Data Type | Required? |
name | The name of the attribute | String | Required |
type | The type of the attribute | String | Required E.g. STRING, INTEGER, BOOLEAN, OBJECT |
value | The value of the attribute | JSON or scalar | Required |
Exceptions
- If rootEntityRef is not found in the event, an IllegalArgumentException will be thrown.
- If attributes in the event can not be converted into a non-null Product object, an IllegalArgumentException will be thrown.
Configuration example
1{
2 "name": "{{accountId}}.globalinventory.ValidateIncomingProduct"
3}
Language: json
Detailed Technical Description
All the event attributes of the incoming event are parsed/deserialized into a "Product" object which has the following structure
1public class Product {
2
3 @NonNull
4 private String ref;
5
6 private String type;
7
8 private String status;
9
10 private String gtin;
11
12 private String name;
13
14 private String summary;
15
16 private List<String> categoryRefs;
17
18 private List<Price> prices;
19
20 private String standardProductRef;
21
22 private TaxType taxType;
23
24 private List<Attribute> attributes;
25}
Language: java
Name: Product
Description:
[Warning: empty required content area]An example JSON payload that represents the event attributes of an incoming event
1{
2 "ref": "VP_1_45",
3 "type": "VARIANT",
4 "status": "ACTIVE",
5 "gtin": "VP_1-45",
6 "name": "Blue Jeans Size 8",
7 "summary": "Variant product summary",
8 "standardProductRef": "STD_1_88",
9 "categoryRefs": [],
10 "prices": [{"type": "RRT", "currency": "AUD", "value": 34.56}],
11 "taxType": {"country": "AU", "tariff": "GST", "group": "GSTG1"},
12 "attributes": [{"name": "isDangerous", "value": false, "type": "BOOLEAN"}]
13}
Language: json
Name: Example JSON
Description:
[Warning: empty required content area]There are no rule parameters required from the workflow. The rule validates the type and ref fields and throws an exception if any one of them is not provided. Event attributes are converted to an attribute map and then into a Product DTO. If the data passes the validation for conversion, the rule returns and no action is produced
Version History
v2.0.0
refers to plugin