Inbound Integration Guide - Product Additional Data
Description
This How-to guide explains the integration of following configuration data entities.
- Size, Size Range
- Colour, Colour Range
- Product Attribute
- Product Option
- Product List
- Product Group
- Product Product Group
- Product Media
Notes
This guide does not cover all possible integration topics. Please see the Enactor Books for detailed information.
See the Inbound Integration Guide - Introduction for the basics of importing and exporting data.
This guide will use manual import and export of data using the Enactor Estate Manager.
Overview
Sizes, Size Range, Colour, and Colour Range data are used to identify collections of products.
Product Attributes and Product Options are used to specify additional product data values that can be controlled by the retailer.
Product Group and Product Product Group are used to build collections of products.
Product Media (Product tab) and Media are used to manage images associated with Products.
Size Range and Size
A style product can come in sizes. A collection of sizes is called a Size Range. You can add sizes when you add the Size Range. Or you can add Sizes for a specified Size Range.
Size Range
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:sizeRange>
<retail:sizeRangeId>MENS_SHIRTS</retail:sizeRangeId>
<retail:description>Mens Shirts</retail:description>
<retail:sizeId sizeRangeId="MENS_SHIRTS">XL</retail:sizeId>
<retail:sizeId sizeRangeId="MENS_SHIRTS">M</retail:sizeId>
<retail:sizeId sizeRangeId="MENS_SHIRTS">L</retail:sizeId>
<retail:sizeId sizeRangeId="MENS_SHIRTS">S</retail:sizeId>
</retail:sizeRange>
</Batch>
XML Structure
sizeRange
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| sizeRange | Root | Outer wrapper for the entity | String | n/a | |
| sizeRangeId | sizeRange | Element | Unique ID of the Size Range | Integer | 20 |
| description | sizeRange | Element | Description of the Size Range | String | 30 |
| sizeId | sizeRange | Element | Unique ID of the size within the Size Range | String | 20 |
| sizeRangeId | sizeId | Attribute | sizeRangeId value | String | 20 |
Size
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:size>
<retail:sizeId>S</retail:sizeId>
<retail:sizeRangeId>SHIRTS</retail:sizeRangeId>
<retail:description>Small</retail:description>
<retail:localisedDescription>
<core:string variant="" language="en" country="US">small</core:string>
<core:string variant="" language="en" country="GB">small</core:string>
<core:string variant="" language="en" country="CA">small</core:string>
<core:string variant="" language="fr" country="CA">small</core:string>
</retail:localisedDescription>
</retail:size>
</Batch>
XML Structure
size
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| size | Root | Outer wrapper for the entity | String | n/a | |
| sizeId | Size | Element | Unique ID of the size within the Size Range | String | 20 |
| sizeRangeId | Size | Element | Unique ID of the Size Range | String | 20 |
| description | Size | Element | Description of the Size | String | 30 |
| localisedDescription | Size | Element | Locale specific description of the size | Locale String |
Locale String
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| string | Element | Locale string definition | String | 200 | |
| variant | string | Attribute | String | ||
| language | string | Attribute | Locale language | String | |
| country | string | Attribute | Locale country | String |
Colour Range and Colour
A style product can come in colours. A collection of colours is called a Colour Range. You can add Colours when you add the Colour Range. Or you can add Colours for a specified Colour Range.
Colour Range
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<retail:colourRange xmlns:core="http://www.enactor.com/core" xmlns:retail="http://www.enactor.com/retail">
<retail:colourRangeId>CR_1000000093</retail:colourRangeId>
<retail:description>Colour Range 1000000093</retail:description>
<retail:colourId colourRangeId="CR_1000000093">SAFARI_CARAMEL_BROWN</retail:colourId>
<retail:colourId colourRangeId="CR_1000000093">URUGUAY_GREY</retail:colourId>
</retail:colourRange>
XML Tags
colourRange
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| colourRange | Root | Outer wrapper for the entity | String | n/a | |
| colourRangeId | sizeRange | Element | Unique ID of the Colour Range | Integer | 20 |
| description | sizeRange | Element | Description of the Colour Range | String | 30 |
| colourId | sizeRange | Element | Unique ID of the colour within the Colour Range | String | 20 |
| colourRangeId | colourId | Attribute | colourRangeId value | String | 20 |
Colour
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<retail:colour xmlns:core="http://www.enactor.com/core" xmlns:retail="http://www.enactor.com/retail">
<retail:colourId>SAFARI_CARAMEL_BROWN/retail:colourId>
<retail:colourRangeId>CR_1000000093</retail:colourRangeId>
<retail:description>Safari Caramel (Brown)</retail:description>
<retail:imageURL>http://images.com/i/dm/Safari Caramel (Brown).png?$v7colourswatch$</retail:imageURL>
</retail:colour>
XML Structure
colour
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| colour | Root | Outer wrapper for the entity | String | n/a | |
| colourId | colour | Element | Unique ID of the Colour within the Colour Range | String | 20 |
| colourRangeId | colour | Element | Unique ID of the Colour Range | String | 20 |
| description | colour | Element | Description of the Colour | String | 30 |
| imageURL | colour | Element | Locale specific description of the size | Locale String |
Product Attribute Option Set
Product Attributes are a way to extend the product entity data with additional values that are not in the product schema. These values are edited in the Estate Manager when modifying a product.
Product Attributes are defined using the Attribute / Option Set entity with the type productAttributeOptionSet.
There are several types of attributes that can be created: Boolean, Choice, Text, Numeric, Date, and Percentage.
| Option Type | Description | Example |
|---|---|---|
| Boolean | A predefined type with two possible values: true, false | true, false |
| Choice | Dropdown list of predefined values | choice 1 choice 2 choice 3 |
| Date | Date value | 21 September 2020 |
| Numeric | Numeric value | 1234 |
| Percentage | Percentage value | 10% |
| Text | A string value that can be a single line or multiple lines | abcdef |
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:optionSet>
<retail:name>brand_option_set</retail:name>
<retail:optionSetId>brand_option_set</retail:optionSetId>
<retail:options>
<retail:textDataOption>
<retail:optionId>brand_option_path</retail:optionId>
<retail:name>brand_option_path</retail:name>
<retail:title/>
<retail:subtitle/>
</retail:textDataOption>
</retail:options>
<retail:type>productAttributeOptionSet</retail:type>
<retail:groupId groupHierarchyId="All" groupTypeId="region">UK</retail:groupId>
<retail:prompt></retail:prompt>
<retail:title/>
<retail:subtitle/>
</retail:optionSet>
<retail:optionSet>
<retail:name>stars_option_set</retail:name>
<retail:optionSetId>stars_option_set</retail:optionSetId>
<retail:options>
<retail:numericDataOption>
<retail:optionId>stars_option_path</retail:optionId>
<retail:name>stars_option_path</retail:name>
<retail:title/>
<retail:subtitle/>
</retail:numericDataOption>
</retail:options>
<retail:type>productAttributeOptionSet</retail:type>
<retail:groupId groupHierarchyId="All" groupTypeId="region">UK</retail:groupId>
<retail:prompt></retail:prompt>
<retail:title/>
<retail:subtitle/>
</retail:optionSet>
</Batch>
XML Structure
optionSet
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| optionSet | Root | Outer wrapper for the entity | n/a | ||
| optionSetId | optionSet | Element | Unique ID for this attribute option set | String | 40 |
| name | String | 100 | |||
| type | optionSet | Element | Fixed: productAttributeOptionSet | fixed | 40 |
| groupId | optionSet | Element | Region Id for this product option (see groupId) | groupId | 20 |
| prompt | optionSet | Element | Not used for Product Attributes | n/a | |
| title | optionSet | Element | Not used for Product Attributes | n/a | |
| subtitle | optionSet | Element | Not used for Product Attributes | n/a | |
| options | optionSet | Element | The list of product attributes |
options
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| boolean DataOption | options | Element | Data for boolean attribute (see booleanDataOption) | n/a | |
| choice DataOption | options | Element | Data for choice attribute (see choiceDataOption) | n/a | |
| text DataOption | options | Element | Data for test attribute (see textDataOption) | n/a | |
| numeric DataOption | options | Element | Data for numeric attribute (see numericDataOption) | n/a | |
| date DataOption | options | Element | Data for date attribute (see dateDataOption) | n/a | |
| percentage DataOption | options | Element | Data for percentage attribute | n/a |
groupId
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| groupId | Element | Region Id for this attribute option set | String | 20 | |
| groupHierarchyId | groupId | Attribute | Region hierarchy Id | String | 20 |
| groupTypeId | groupId | Attribute | Fixed: region | fixed | n/a |
booleanDataOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| booleanDataOption | options | Root | n/a | ||
| optionId | boolean DataOption | Element | Unique ID for boolean data option | String | |
| name | boolean DataOption | Element | Name to display in UI | String | |
| description | boolean DataOption | Element | Description of this option | String | |
| title | boolean DataOption | Element | Not used | n/a | n/a |
| subtitle | boolean DataOption | Element | Not used | n/a | n/a |
| optionReference | percentage DataOption | Element | if provided, the next option to display in UI (see optionReference) | option Reference | |
| defaultState | boolean DataOption | Element | The default setting for this option value | Boolean |
optionReference
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| optionReference | Element | Outer wrapper for the entity | n/a | ||
| optionSetId | option Reference | Element | The next option set id for the product (see optionSetId) | Option SetId | |
| optionPath | option Reference | Element | The next option for the product UI |
optionSetId
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| optionSetId | Element | Outer wrapper for the entity | n/a | ||
| type | optionSetId | Attribute | Fixed: productAttributeOptionSet | fixed | |
| optionSetId | optionSetId | Attribute | Id | String | |
| groupId | optionSetId | Element | Region hierarchy (see groupId) | groupId |
choiceDataOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| choiceDataOption | options | Root | Outer wrapper for the entity | n/a | |
| optionId | choice DataOption | Element | Unique ID for choice data option | String | |
| name | choice DataOption | Element | Name to display in UI | String | |
| description | choice DataOption | Element | Description of this option | String | |
| mandatory | choice DataOption | Element | If a choice must be made, true otherwise, false | Boolean | |
| title | choice DataOption | Element | The title of this choice list, if any | Locale String | |
| subtitle | choice DataOption | Element | The subtitle of this choice list, if any | Locale String | |
| optionReference | choice DataOption | Element | Next option to display in UI (see optionReference) | option Reference | |
| values | choice DataOption | Element | The list of choices | ||
| value | values | Element | A choice for the user | String | |
| key | value | Attribute | the unique ID of the choice | String | |
| choiceDataOption Entry | value | Element | choice data element (see choiceDataOptionEntry) | ||
| label | choice DataOption | Element | The description of the option | String | |
| imageUrl | choice DataOption | Element | The URL to an image, if used | String | |
| autoSubmit | choice DataOption | Element | if provided, true will auto submit the choice if omitted, false | Boolean | |
| allowMultiSelect | choice DataOption | Element | if provided, true allows multiple values to be selected if omitted, false | Boolean | |
| optionSet OptionReferences | choice DataOption | Element | if provided, the next field if the choice is selected | optionSet Option References |
optionSetOptionReferences
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| optionSet OptionReferences | Root | if provided, the next field if the choice is selected | n/a | ||
| key | optionSetOption References | Element | Name to display in UI | String | |
| value | optionSetOption References | Element | outer tag for option set choice | String | |
| optionSetId | value | Element | The next option set id for the product (see optionSetId) | option SetId | |
| optionPath | value | Element | The next option for the product UI | String |
textDataOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| textDataOption | options | Root | n/a | ||
| optionId | textDataOption | Element | Unique ID for text data option | String | |
| name | textDataOption | Element | Name to display in UI | String | |
| description | textDataOption | Element | Description of this option | String | |
| title | textDataOption | Element | Not used | n/a | n/a |
| subtitle | textDataOption | Element | Not used | n/a | n/a |
| optionReference | textDataOption | Element | Next option to display in UI (see optionReference) | option Reference | |
| validationData | textDataOption | Element | provide if data validation is required (see validationData) | validation Data | |
| multiLine | textDataOption | Element | if provided, true allows multiple lines to be provided in the UI | Boolean |
validationData
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| validationData | textDataOption | Root | n/a | ||
| stringField ValidationData | validationData | Element | if provided, use the values to validate the string data | stringField Validation Data | |
| integerField ValidationData | validationData | Element | if provided, use the values to validate the integer data | Integer Field Validation Data | |
| floatField ValidationData | validationData | Element | if provided, use the values to validate float (decimal) data | floatField Validation Data |
stringFieldValidationData
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| stringField ValidationData | validationData | Root | n/a | ||
| type | stringField ValidationData | Element | fixed: String | fixed | |
| allowNulls | stringField ValidationData | Element | if provided, true will allow the field to be blank if omitted, false | Boolean | |
| maxLength | stringField ValidationData | Element | if provided, maximum number of characters to allow if omitted, no maximum limit | Integer | |
| minLength | stringField ValidationData | Element | if provided, minimum number of characters allowed if omitted, no minimum limit | Integer | |
| stringFormat | stringField ValidationData | Element | one of the following fixed values: Alpha, AlphaNumeric, Number, Postcode, Phone, Email, URL, AsciiHex | fixed |
integerFieldValidationData
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| integerField ValidationData | validationData | Root | n/a | ||
| type | integerField ValidationData | Element | fixed: Integer | fixed | |
| maxLength | integerField ValidationData | Element | if provided, maximum value allowed if omitted, no maximum | Integer | |
| minLength | integerField ValidationData | Element | if provided, minimum value allowed if omitted, no minimum | Integer |
floatFieldValidationData
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| floatField ValidationData | validationData | Root | n/a | ||
| type | floatField ValidationData | Element | fixed: Float | fixed | |
| maxLength | floatField ValidationData | Element | if provided, maximum value allowed if omitted, no maximum | Float | |
| minLength | floatField ValidationData | Element | if provided, minimum value allowed if omitted, no minimum | Float |
numericDataOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| numericDataOption | options | Root | n/a | ||
| optionId | numericDataOption | Element | Unique ID for numeric data option | String | |
| name | numericDataOption | Element | Name to display in UI | String | |
| description | numericDataOption | Element | Description of this option | String | |
| title | numericDataOption | Element | Not used | n/a | n/a |
| subtitle | numericDataOption | Element | Not used | n/a | n/a |
| optionReference | percentage DataOption | Element | if provided, the next option to display in UI (see optionReference) | option Reference |
dateDataOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| dateDataOption | options | Root | n/a | ||
| optionId | dateDataOption | Element | Unique ID for date data option | String | |
| name | dateDataOption | Element | Name to display in UI | String | |
| description | dateDataOption | Element | Description of this option | String | |
| title | dateDataOption | Element | Not used | n/a | n/a |
| subtitle | dateDataOption | Element | Not used | n/a | n/a |
| optionReference | percentage DataOption | Element | if provided, the next option to display in UI (see optionReference) | option Reference |
percentageDataOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| percentage DataOption | options | Root | n/a | ||
| optionId | percentage DataOption | Element | Unique ID for percentage data option | String | |
| name | percentage DataOption | Element | Name to display in UI | String | |
| description | percentage DataOption | Element | Description of this option | String | |
| title | percentage DataOption | Element | Not used | n/a | n/a |
| subtitle | percentage DataOption | Element | Not used | n/a | n/a |
| optionReference | percentage DataOption | Element | if provided, the next option to display in UI (see optionReference) | option Reference |
Product Option Option Set
Product Options are values that are prompted to the operator for choices or data entry when a product is included in a transaction. Product Options are similar to Product Attributes in definition and have some of the same types of values.
Product Attributes are defined using the Attribute / Option Set entity with the type productOptionOptionSet.
Product options can include Boolean, Choice, Date, Numeric, Percentage, and Text data types defined exactly the same way as in the Product Attribute.
| Option Type | Description | Example |
|---|---|---|
| Boolean | A predefined type with two possible values: true, false | true, false |
| Choice | Dropdown list of predefined values | choice 1 choice 2 choice 3 |
| Date | Date value | 21 September 2020 |
| Numeric | Numeric value | 1234 |
| Percentage | Percentage value | 10% |
| Text | A string value that can be a single line or multiple lines | abcdef |
Product options can also include Group, Compound, Product, List, Product List, and Capture Product Options.
| Option Type | Description |
|---|---|
| Group | Collection of options under a single Title / Subtitle |
| Compound | Collection of options similar to a Group and allows one or more options to be required |
| Product | Optional or Mandatory selection of a single product |
| Product List | Optional or Mandatory selection of multiple products |
| Capture Product Options | Optional or Mandatory search or scan/key product |
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core" xmlns:retail="http://www.enactor.com/retail">
<retail:optionSet>
<retail:name>Jewelry Warranty</retail:name>
<retail:optionSetId>JEWELRY_WARRANTY</retail:optionSetId>
<retail:options>
<retail:productListOption>
<retail:optionId>EXTENDED_WARRANTY</retail:optionId>
<retail:name>Warranties</retail:name>
<retail:description>Please select from the following optional warranties:</retail:description>
<retail:ProductListId>
<retail:productListId>JEWELRY_WARRANTIES</retail:productListId>
<retail:groupId groupHierarchyId="All" groupTypeId="region">USA</retail:groupId>
</retail:ProductListId>
<retail:allowOptionReturns>false</retail:allowOptionReturns>
<retail:allowOptionVoids>true</retail:allowOptionVoids>
<retail:allowOptionDiscounts>false</retail:allowOptionDiscounts>
<retail:allowOptionPriceOverrides>true</retail:allowOptionPriceOverrides>
<retail:allowOptionPromotions>false</retail:allowOptionPromotions>
<retail:allowMultiSelect>false</retail:allowMultiSelect>
</retail:productListOption>
</retail:options>
<retail:type>productOptionOptionSet</retail:type>
<retail:groupId groupHierarchyId="All" groupTypeId="region">USA</retail:groupId>
<retail:prompt></retail:prompt>
</retail:optionSet>
</Batch>
XML Structure
optionSet
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| optionSet | Root | Outer wrapper for the entity | n/a | ||
| optionSetId | optionSet | Element | Unique ID for this attribute option set | String | 40 |
| name | String | 100 | |||
| type | optionSet | Element | Fixed: productOptionOptionSet | fixed | |
| groupId | optionSet | Element | Region Id for this product option (see groupId) | String | 20 |
| prompt | optionSet | Element | Not used for Product Options | n/a | |
| title | optionSet | Element | Not used for Product Options | n/a | |
| subtitle | optionSet | Element | Not used for Product Options | n/a | |
| options | optionSet | Element | The list of product options |
booleanDataOption (see Product Attribute - booleanDataOption)
choiceDataOption (see Product Attribute - choiceDataOption)
dateDataOption (see Product Attribute - dateDataOption)
numericDataOption (see Product Attribute - numericDataOption)
percentDataOption (see Product Attribute - percentDataOption)
textDataOption (see Product Attribute - textDataOption)
optionGroup
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| optionGroup | optionSet | Root | A collection of options | n/a | |
| optionId | optionSet | Element | Unique ID for this option | String | |
| name | optionSet | Element | Name for this option | String | |
| description | optionSet | Element | Description of this option | String | |
| title | optionSet | Element | Title of this option | String | |
| subtitle | optionSet | Element | Subtitle of this option | String | |
| options | optionSet | Element | The collection of options |
compoundDataOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| compoundData Option | optionSet | Root | A collection of options | n/a | |
| optionId | compoundData Option | Element | Unique ID for this option | String | |
| name | compoundData Option | Element | Name for this option | String | |
| description | compoundData Option | Element | Description of this option | String | |
| title | compoundData Option | Element | Title of this option | String | |
| subtitle | compoundData Option | Element | Subtitle of this option | String | |
| type | compoundData Option | Element | one of the following fixed values: NONE_REQUIRED ONE_REQUIRED ALL_REQUIRED | fixed | |
| options | compoundData Option | Element | The collection of options |
productOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| productOption | optionSet | Root | An optional product | n/a | |
| optionId | productOption | Element | Unique ID for this option | String | |
| name | productOption | Element | Name for this option | String | |
| description | productOption | Element | Description of this option | String | |
| title | productOption | Element | Title of this option | String | |
| subtitle | productOption | Element | Subtitle of this option | String | |
| mandatory | productOption | Element | if true, product is required if omitted, false | Boolean | |
| allowOptionReturns | productOption | Element | if true, product can be returned if omitted, false | Boolean | |
| allowOptionVoids | productOption | Element | if true, product can be voided if omitted, false | Boolean | |
| allowOption Discounts | productOption | Element | if true, product can be discounted if omitted, false | Boolean | |
| allowOption PriceOverrides | productOption | Element | if true, product allows price override if omitted, false | Boolean | |
| allowOption Promotions | productOption | Element | if true, product allows promotions if omitted, false | Boolean |
productListOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| productListOption | optionSet | Root | A product list | n/a | |
| optionId | productList Option | Element | Unique ID for this option | String | |
| name | productList Option | Element | Name for this option | String | |
| description | productList Option | Element | Description of this option | String | |
| title | productList Option | Element | Title of this option | String | |
| subtitle | productList Option | Element | Subtitle of this option | String | |
| mandatory | productList Option | Element | if true, product is required if omitted, false | Boolean | |
| ProductListId | productList Option | Element | A list of products | ||
| productListId | ProductListId | Element | the ID of the product list | String | |
| groupId | ProductListId | Element | see groupId | ||
| allowOptionReturns | productList Option | Element | if true, product can be returned if omitted, false | Boolean | |
| allowOptionVoids | productList Option | Element | if true, product can be voided if omitted, false | Boolean | |
| allowOption Discounts | productList Option | Element | if true, product can be discounted if omitted, false | Boolean | |
| allowOption PriceOverrides | productList Option | Element | if true, product allows price override if omitted, false | Boolean | |
| allowOption Promotions | productList Option | Element | if true, product allows promotions if omitted, false | Boolean | |
| allowMultiSelect | productList Option | Element | if true, multiple products can be selected if omitted, false | Boolean | |
| autoSubmit | productList Option | Element | if true, submit automatically when selected if omitted, false | Boolean |
captureProductOption
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| captureProduct Option | optionSet | Root | A product list | n/a | |
| optionId | captureProduct Option | Element | Unique ID for this option | String | |
| name | productList Option | Element | Name for this option | String | |
| description | productList Option | Element | Description of this option | String | |
| title | productList Option | Element | Title of this option | String | |
| subtitle | productList Option | Element | Subtitle of this option | String | |
| mandatory | productList Option | Element | if true, product is required if omitted, false | Boolean | |
| manualEntry | productList Option | Element | if true, allow manual entry of the product if false, require search for the product if omitted, false | Boolean |
Product List
Product Lists are used with Product Options to display a list of products to the user.
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:productList>
<retail:productListId>JEWELRY_WARRANTIES</retail:productListId>
<retail:groupId groupHierarchyId="All" groupTypeId="region">USA</retail:groupId>
<retail:name>
<core:string variant="" language="en" country="CA">Warranty Options</core:string>
<core:string variant="" language="en" country="GB">Warranty Options</core:string>
<core:string variant="" language="en" country="US">Jewelry Warranty Options</core:string>
<core:string variant="" language="fr" country="CA">Warranty Options</core:string>
</retail:name>
<retail:productListItem>
<retail:itemNumber>1</retail:itemNumber>
<retail:productId>991701</retail:productId>
<retail:description>
<core:string variant="" language="en" country="CA">One year extended warranty</core:string>
<core:string variant="" language="en" country="GB">One year extended warranty</core:string>
<core:string variant="" language="en" country="US">1 year Ext. Warranty</core:string>
<core:string variant="" language="fr" country="CA">One year extended warranty</core:string>
</retail:description>
<retail:imageUrl></retail:imageUrl>
</retail:productListItem>
<retail:productListItem>
<retail:itemNumber>2</retail:itemNumber>
<retail:productId>991703</retail:productId>
<retail:description>
<core:string variant="" language="en" country="CA">One year extended warranty</core:string>
<core:string variant="" language="en" country="GB">One year extended warranty</core:string>
<core:string variant="" language="en" country="US">3 year Ext. Warranty</core:string>
<core:string variant="" language="fr" country="CA">One year extended warranty</core:string>
</retail:description>
<retail:imageUrl></retail:imageUrl>
</retail:productListItem>
</retail:productList>
</Batch>
XML Structure
productList
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| productList | Root | A product list | n/a | ||
| productListId | productList | Element | The list of products | String | |
| groupId | productList | Element | The region for this product list (see groupId) | String | |
| name | productList | Element | not used | n/a | |
| productListItem | productList | Element | an item for the list |
productListItem
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| productListItem | Root | A product for a product list | n/a | ||
| itemNumber | productListItem | Element | The position for the item in the list | String | |
| productId | productListItem | Element | The unique ID for the product | String | |
| description | productListItem | Element | The locale description of the product | Locale String | |
| imageUrl | productListItem | Element | the URL for the product image | String |
Product Group
This will define a group for products which can be used with Product Options or with Promotions.
The products are associated with a through using Product Product Group XML (see productProductGroup).
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:productGroup>
<retail:groupId>MENS_SHIRTS</retail:groupId>
<retail:groupTypeId>productGroup</retail:groupTypeId>
<retail:groupHierarchyId>FASHION</retail:groupHierarchyId>
<retail:level>3</retail:level>
<retail:level10GroupId></retail:level10GroupId>
<retail:level1GroupId>FASHION</retail:level1GroupId>
<retail:level2GroupId>MENS</retail:level2GroupId>
<retail:level3GroupId>MENS_SHIRTS</retail:level3GroupId>
<retail:name>Mens Shirts</retail:name>
<retail:variantGroupId>All</retail:variantGroupId>
<retail:variantGroupTypeId>region</retail:variantGroupTypeId>
<retail:variantGroupHierarchyId>All</retail:variantGroupHierarchyId>
<retail:variantLevel>1</retail:variantLevel>
<retail:allowPriceEntry>false</retail:allowPriceEntry>
<retail:concession>false</retail:concession>
<retail:forceMessageAcknowledgement>false</retail:forceMessageAcknowledgement>
<retail:operatorMessage/>
<retail:quantityEntry>false</retail:quantityEntry>
<retail:receiptMessage/>
<retail:exportWarningMessage></retail:exportWarningMessage>
<retail:fasciaId groupTypeId="fascia"></retail:fasciaId>
</retail:productGroup>
</Batch>
XML Structure
productGroup
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| mmgroup | Root | Outer wrapper for the entity | String | n/a | |
| groupId | productGroup | Element | Unique ID for the group | String | 20 |
| groupTypeId | productGroup | Element | fixed: productGroup | fixed | 30 |
| groupHierarchyId | productGroup | Element | Unique ID for the hierarchy | String | 20 |
| level | productGroup | Element | Level of group within hierarchy structure | Integer | 11 |
| level1GroupId | productGroup | Element | Top level group ID Required if level >= 1 | String | 20 |
| level2GroupId | productGroup | Element | Next level group ID required if level >= 2 | String | 20 |
| level3GroupId | productGroup | Element | Next level group ID required if level >= 3 | String | 20 |
| level4GroupId | productGroup | Element | Next level group ID required if level >= 4 | String | 20 |
| level5GroupId | productGroup | Element | Next level group ID required if level >= 5 | String | 20 |
| level6GroupId | productGroup | Element | Next level group ID required if level >= 6 | String | 20 |
| level7GroupId | productGroup | Element | Next level group ID required if level >= 7 | String | 20 |
| level8GroupId | productGroup | Element | Next level group ID required if level >= 8 | String | 20 |
| level9GroupId | productGroup | Element | Next level group ID required if level >= 9 | String | 20 |
| level10GroupId | productGroup | Element | Next level group ID required if level == 10 | String | 20 |
| name | productGroup | Element | Description of Group | String | 40 |
| variantGroupId | productGroup | Element | Region Group to which productGroup belongs | String | 20 |
| variantGroup TypeId | productGroup | Element | (Fixed) group type - region | fixed | 30 |
| variantGroup HierarchyId | productGroup | Element | Region Hierarchy to which productGroup belongs | String | 20 |
| variantLevel | productGroup | Element | region hierarchy level | Integer | 11 |
Product Product Group
Once the product group has been created, you can add products the the product group with the Product Product Group entity.
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:productProductGroup>
<retail:groupId variantGroupHierarchyId="All" variantGroupId="All" variantGroupTypeId="region" groupHierarchyId="FASHION" groupTypeId="productGroup">MENS_SHIRTS</retail:groupId>
<retail:productId>DF517XM-4</retail:productId>
</retail:productProductGroup>
</Batch>
XML Structure
productProductGroup
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| productProduct Group | Root | Outer wrapper for the entity | String | n/a | |
| groupId | productProduct Group | Element | Unique ID for the group (see groupId) | groupId | 20 |
| productId | productProduct Group | Element | Unique ID for a product | String | 20 |
Product Media
Product Media define the images that are associated with a product.
Media Type can be IMAGE or IMAGE_URL.
If the media type is IMAGE, the image must be uploaded to the Enactor server using the Image entity. The IMAGE_CATEGORY will be PRODUCT for these images.
If the media type is IMAGE_URL, the image is specified using a URL to the image location.
Media Subtype support 6 types of images: thumbnail (THUMB), medium image (MEDIUM), large image (LARGE), main thumbnail (MAIN_THUMB), main medium image (MAIN_MEDIUM), and main large image (MAIN_LARGE).
Internal Media
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:productMedia>
<retail:productMediaId>1</retail:productMediaId>
<retail:productId>ID816BN</retail:productId>
<retail:mediaType>IMAGE</retail:mediaType>
<retail:mediaSubtype>THUMB</retail:mediaSubtype>
<retail:imageKey type="jpg" category="PRODUCT">ID816BN-1</retail:imageKey>
<retail:lastUpdated>2014-04-08T18:12:17.325+01:00</retail:lastUpdated>
</retail:productMedia>
</Batch>
XML Structure
productMedia
productMedia
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| productMedia | Root | Outer wrapper for the entity | String | n/a | |
| productMediaId | productMedia | Element | The unique ID for this media | String | |
| productId | productMedia | Element | The product ID | String | 20 |
| sortIndex | productMedia | Element | The order the images should appear in the POS UI | Integer | 11 |
| mediaType | productMedia | Element | fixed: IMAGE | fixed | |
| mediaSubtype | productMedia | Element | fixed: THUMB, MEDIUM, LARGE, MAIN_THUMB, MAIN_MEDIUM, or MAIN_LARGE | fixed | |
| imageKey | productMedia | Element | A unique key for this image | String | 40 |
| type | imageKey | Attribute | the type of image e.g. jpg, png, bmp | String | |
| category | imageKey | Attribute | fixed: PRODUCT | fixed | |
| name | productMedia | Element | A name for this image | String | 40 |
| keywords | productMedia | Element | keywords for this image | String | 100 |
External Media (URL)
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:productMedia>
<retail:productMediaId>prod_image_02</retail:productMediaId>
<retail:productId>00000</retail:productId>
<retail:sortIndex>2</retail:sortIndex>
<retail:mediaType>IMAGE_URL</retail:mediaType>
<retail:mediaSubtype>THUMB</retail:mediaSubtype>
<retail:mediaData>http://example.com/images/image.jpg</retail:mediaData>
</retail:productMedia>
</Batch>
XML Structure
productMedia
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| productMedia | Root | Outer wrapper for the entity | String | n/a | |
| productMediaId | productMedia | Element | The unique ID for this media | String | |
| productId | productMedia | Element | The product ID | String | 20 |
| sortIndex | productMedia | Element | The order the images should appear in the POS UI | Integer | 11 |
| mediaType | productMedia | Element | fixed: IMAGE_URL | fixed | |
| mediaSubType | productMedia | Element | fixed: THUMB, MEDIUM, LARGE, MAIN_THUMB, MAIN_MEDIUM, or MAIN_LARGE | fixed | |
| imageKey | productMedia | Element | The URL to the image | String | 40 |
| name | productMedia | Element | A name for this image | String | 40 |
| keywords | productMedia | Element | keywords for this image | String | 100 |
Colour Delete
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- ColourKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:ColourKey" colourRangeId="colourRangeId">colourId</core:entityKey>
</core:entityDeleteRequest>
</Batch>
XML Structure
entityDeleteRequest
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | The key to delete | String | |
| type | entityKey | Attribute | Fixed:ColourKey | fixed | |
| colourRangeId | entityKey | Attribute | The colour range id for this colour | String |
Colour Range Delete
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- ColourRangeKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:ColourRangeKey">colourRangeId</core:entityKey>
</core:entityDeleteRequest>
</Batch>
XML Structure
entityDeleteRequest
entityDeleteRequest
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | The key to delete | String | |
| type | entityKey | Attribute | Fixed:ColourRangeKey | fixed |
Size Delete
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- size - SizeKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:SizeKey" sizeRangeId="sizeRangeId">sizeId</core:entityKey>
</core:entityDeleteRequest>
</Batch>
XML Structure
entityDeleteRequest
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | The key to delete | String | |
| type | entityKey | Attribute | Fixed:ColourKey | fixed | |
| colourRangeId | entityKey | Attribute | The colour range id for this colour | String |
Size Range Delete
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- sizeRange - SizeRangeKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:SizeRangeKey">sizeRangeId</core:entityKey>
</core:entityDeleteRequest>
</Batch>
XML Structure
entityDeleteRequest
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | The key to delete | String | |
| type | entityKey | Attribute | Fixed:SizeRangeKey | fixed |
Product Attribute Option Set Delete
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- productAttributeOptionSet - OptionSetKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:OptionSetKey" type="productAttributeOptionSet" optionSetId="optionSetId">
<retail:groupId variantGroupHierarchyId="variantGroupHierarchyId" variantGroupId="variantGroupId" variantGroupTypeId="variantGroupTypeId" groupHierarchyId="groupHierarchyId" groupTypeId="groupTypeId">groupId</retail:groupId>
</core:entityKey>
</core:entityDeleteRequest>
</Batch>
XML Structure
entityDeleteRequest
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | Outer wrapper for the delete | ||
| type | entityKey | Attribute | Fixed:productAttributeOptionSet | fixed | |
| optionSetId | entityKey | Attribute | see optionSetId | option SetId | |
| groupId | entityKey | Element | see groupId | groupId |
Product Option Option Set Delete
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- productOptionOptionSet - OptionSetKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:OptionSetKey" type="productOptionOptionSet" optionSetId="optionSetId">
<retail:groupId variantGroupHierarchyId="variantGroupHierarchyId" variantGroupId="variantGroupId" variantGroupTypeId="variantGroupTypeId" groupHierarchyId="groupHierarchyId" groupTypeId="groupTypeId">groupId</retail:groupId>
</core:entityKey>
</core:entityDeleteRequest>
</Batch>
XML Structure
entityDeleteRequest
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | Outer wrapper for the delete | ||
| type | entityKey | Attribute | Fixed:productOptionOptionSet | fixed | |
| optionSetId | entityKey | Attribute | see optionSetId | option SetId | |
| groupId | entityKey | Element | see groupId | groupId |
Product Group Delete
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- ProductGroup -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="core:GroupKey" variantGroupHierarchyId="variantGroupHierarchyId" variantGroupId="variantGroupId" variantGroupTypeId="variantGroupTypeId" groupHierarchyId="groupHierarchyId" groupTypeId="groupTypeId">groupId</core:entityKey>
</core:entityDeleteRequest>
</Batch>
XML Structure
entityDeleteRequest
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | The productGroup key to delete | String | |
| type | entityKey | Attribute | Fixed:GroupKey | fixed | |
| variantGroup HierarchyId | entityKey | Attribute | Region hierarchy id | String | |
| variantGroupId | entityKey | Attribute | Region id | String | |
| variantGroup TypeId | entityKey | Attribute | Fixed:region | fixed | |
| groupHierarchyId | entityKey | Attribute | Hierarchy Id | String | |
| groupTypeId | entityKey | Attribute | fixed:productGroup | fixed |
Product Product Group Delete
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- ProductProductGroupKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:ProductProductGroupKey">
<retail:productId>productKey</retail:productId>
<retail:groupId variantGroupHierarchyId="variantGroupHierarchyId" variantGroupId="variantGroupId" variantGroupTypeId="variantGroupTypeId" groupHierarchyId="groupHierarchyId" groupTypeId="groupTypeId">groupId</retail:groupId>
</core:entityKey>
</core:entityDeleteRequest>
</Batch>
XML Structure
entityDeleteRequest
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | The productProductGroup key to delete | String | |
| type | entityKey | Attribute | Fixed:ProductProductGroupKey | fixed | |
| productId | entityKey | Element | The product ID for this group | String | |
| groupId | entityKey | Element | The productGroup information (see groupId) | groupId |
Product Media Delete
XML Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- ProductMediaKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:ProductMediaKey" mediaSubtype="MediaSubtype" mediaType="MediaType" productMediaId="productMediaId"/>
</core:entityDeleteRequest>
</Batch>
XML Structure
entityDeleteRequest
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | The productMedia key to delete | String | |
| type | entityKey | Attribute | Fixed:ProductMediaKey | fixed | |
| productMediaId | entityKey | Attribute | The media id for this image | String | |
| mediaType | entityKey | Attribute | The mediaType | String | |
| mediaSubtype | entityKey | Attribute | The media subtype | String |