ValidateVariantProduct
Changed on:
30 Nov 2023
Overview
Validates the incoming variant product event 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 variant product event payload
Accepts
- PRODUCT_CATALOGUE
Actions
- This rule does not produce any Output Actions. It validates the existence of the standard product if the incoming event has an event attribute called standardProductRef. If the standardProductRef value is not empty and there is no corresponding standard product in the product catalogue an IllegalArgumentException will be thrown.
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 there is no standard product for the standard product reference, an IllegalArgumentException will be thrown.
Configuration example
1{
2 "name": "{{accountId}}}}.globalinventory.ValidateVariantProduct"
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: event attributes
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]This rule parses/deserializes all the event attributes into a Product object outlined above. If the product type is not
`VARIANT`
Version History
v2.0.0
refers to plugin