Skip to main content

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 TagParent ElementTypeDescriptionData TypeLength
sizeRangeRootOuter wrapper for the entityStringn/a
sizeRangeIdsizeRangeElementUnique ID of the Size RangeInteger20
descriptionsizeRangeElementDescription of the Size RangeString30
sizeIdsizeRangeElementUnique ID of the size within the Size RangeString20
sizeRangeIdsizeIdAttributesizeRangeId valueString20

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 TagParent ElementTypeDescriptionData TypeLength
sizeRootOuter wrapper for the entityStringn/a
sizeIdSizeElementUnique ID of the size within the Size RangeString20
sizeRangeIdSizeElementUnique ID of the Size RangeString20
descriptionSizeElementDescription of the SizeString30
localisedDescriptionSizeElementLocale specific description of the sizeLocale
String

Locale String

XML TagParent ElementTypeDescriptionData TypeLength
stringElementLocale string definitionString200
variantstringAttributeString
languagestringAttributeLocale languageString
countrystringAttributeLocale countryString

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 TagParent ElementTypeDescriptionData TypeLength
colourRangeRootOuter wrapper for the entityStringn/a
colourRangeIdsizeRangeElementUnique ID of the Colour RangeInteger20
descriptionsizeRangeElementDescription of the Colour RangeString30
colourIdsizeRangeElementUnique ID of the colour within the Colour RangeString20
colourRangeIdcolourIdAttributecolourRangeId valueString20

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 TagParent ElementTypeDescriptionData TypeLength
colourRootOuter wrapper for the entityStringn/a
colourIdcolourElementUnique ID of the Colour within the Colour RangeString20
colourRangeIdcolourElementUnique ID of the Colour RangeString20
descriptioncolourElementDescription of the ColourString30
imageURLcolourElementLocale specific description of the sizeLocale
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 TypeDescriptionExample
BooleanA predefined type with two possible values: true, falsetrue, false
ChoiceDropdown list of predefined valueschoice 1
choice 2
choice 3
DateDate value21 September 2020
NumericNumeric value1234
PercentagePercentage value10%
TextA string value that can be a single line or multiple linesabcdef

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 TagParent ElementTypeDescriptionData TypeLength
optionSetRootOuter wrapper for the entityn/a
optionSetIdoptionSetElementUnique ID for this attribute option setString40
nameString100
typeoptionSetElementFixed: productAttributeOptionSetfixed40
groupIdoptionSetElementRegion Id for this product option
(see groupId)
groupId20
promptoptionSetElementNot used for Product Attributesn/a
titleoptionSetElementNot used for Product Attributesn/a
subtitleoptionSetElementNot used for Product Attributesn/a
optionsoptionSetElementThe list of product attributes

options

XML TagParent ElementTypeDescriptionData TypeLength
boolean
DataOption
optionsElementData for boolean attribute
(see booleanDataOption)
n/a
choice
DataOption
optionsElementData for choice attribute
(see choiceDataOption)
n/a
text
DataOption
optionsElementData for test attribute
(see textDataOption)
n/a
numeric
DataOption
optionsElementData for numeric attribute
(see numericDataOption)
n/a
date
DataOption
optionsElementData for date attribute
(see dateDataOption)
n/a
percentage
DataOption
optionsElementData for percentage attributen/a

groupId

XML TagParent ElementTypeDescriptionData TypeLength
groupIdElementRegion Id for this attribute option setString20
groupHierarchyIdgroupIdAttributeRegion hierarchy IdString20
groupTypeIdgroupIdAttributeFixed: regionfixedn/a

booleanDataOption

XML TagParent ElementTypeDescriptionData TypeLength
booleanDataOptionoptionsRootn/a
optionIdboolean
DataOption
ElementUnique ID for boolean data optionString
nameboolean
DataOption
ElementName to display in UIString
descriptionboolean
DataOption
ElementDescription of this optionString
titleboolean
DataOption
ElementNot usedn/an/a
subtitleboolean
DataOption
ElementNot usedn/an/a
optionReferencepercentage
DataOption
Elementif provided, the next option to display in UI
(see optionReference)
option
Reference
defaultStateboolean
DataOption
ElementThe default setting for this option valueBoolean

optionReference

XML TagParent ElementTypeDescriptionData TypeLength
optionReferenceElementOuter wrapper for the entityn/a
optionSetIdoption
Reference
ElementThe next option set id for the product
(see optionSetId)
Option
SetId
optionPathoption
Reference
ElementThe next option for the product UI

optionSetId

XML TagParent ElementTypeDescriptionData TypeLength
optionSetIdElementOuter wrapper for the entityn/a
typeoptionSetIdAttributeFixed: productAttributeOptionSetfixed
optionSetIdoptionSetIdAttributeIdString
groupIdoptionSetIdElementRegion hierarchy
(see groupId)
groupId

choiceDataOption

XML TagParent ElementTypeDescriptionData TypeLength
choiceDataOptionoptionsRootOuter wrapper for the entityn/a
optionIdchoice
DataOption
ElementUnique ID for choice data optionString
namechoice
DataOption
ElementName to display in UIString
descriptionchoice
DataOption
ElementDescription of this optionString
mandatorychoice
DataOption
ElementIf a choice must be made, true
otherwise, false
Boolean
titlechoice
DataOption
ElementThe title of this choice list, if anyLocale
String
subtitlechoice
DataOption
ElementThe subtitle of this choice list, if anyLocale
String
optionReferencechoice
DataOption
ElementNext option to display in UI
(see optionReference)
option
Reference
valueschoice
DataOption
ElementThe list of choices
valuevaluesElementA choice for the userString
keyvalueAttributethe unique ID of the choiceString
choiceDataOption
Entry
valueElementchoice data element
(see choiceDataOptionEntry)
labelchoice
DataOption
ElementThe description of the optionString
imageUrlchoice
DataOption
ElementThe URL to an image, if usedString
autoSubmitchoice
DataOption
Elementif provided, true will auto submit the choice
if omitted, false
Boolean
allowMultiSelectchoice
DataOption
Elementif provided, true allows multiple values to be selected
if omitted, false
Boolean
optionSet
OptionReferences
choice
DataOption
Elementif provided, the next field if the choice is selectedoptionSet
Option
References

optionSetOptionReferences

XML TagParent ElementTypeDescriptionData TypeLength
optionSet
OptionReferences
Rootif provided, the next field if the choice is selectedn/a
keyoptionSetOption
References
ElementName to display in UIString
valueoptionSetOption
References
Elementouter tag for option set choiceString
optionSetIdvalueElementThe next option set id for the product
(see optionSetId)
option
SetId
optionPathvalueElementThe next option for the product UIString

textDataOption

XML TagParent ElementTypeDescriptionData TypeLength
textDataOptionoptionsRootn/a
optionIdtextDataOptionElementUnique ID for text data optionString
nametextDataOptionElementName to display in UIString
descriptiontextDataOptionElementDescription of this optionString
titletextDataOptionElementNot usedn/an/a
subtitletextDataOptionElementNot usedn/an/a
optionReferencetextDataOptionElementNext option to display in UI
(see optionReference)
option
Reference
validationDatatextDataOptionElementprovide if data validation is required (see validationData)validation
Data
multiLinetextDataOptionElementif provided, true allows multiple lines to be provided in the UIBoolean

validationData

XML TagParent ElementTypeDescriptionData TypeLength
validationDatatextDataOptionRootn/a
stringField
ValidationData
validationDataElementif provided, use the values to validate the string datastringField
Validation
Data
integerField
ValidationData
validationDataElementif provided, use the values to validate the integer dataInteger
Field
Validation
Data
floatField
ValidationData
validationDataElementif provided, use the values to validate float (decimal) datafloatField
Validation
Data

stringFieldValidationData

XML TagParent ElementTypeDescriptionData TypeLength
stringField
ValidationData
validationDataRootn/a
typestringField
ValidationData
Elementfixed: Stringfixed
allowNullsstringField
ValidationData
Elementif provided, true will allow the field to be blank
if omitted, false
Boolean
maxLengthstringField
ValidationData
Elementif provided, maximum number of characters to allow
if omitted, no maximum limit
Integer
minLengthstringField
ValidationData
Elementif provided, minimum number of characters allowed
if omitted, no minimum limit
Integer
stringFormatstringField
ValidationData
Elementone of the following fixed values:
Alpha, AlphaNumeric, Number, Postcode, Phone, Email, URL, AsciiHex
fixed

integerFieldValidationData

XML TagParent ElementTypeDescriptionData TypeLength
integerField
ValidationData
validationDataRootn/a
typeintegerField
ValidationData
Elementfixed: Integerfixed
maxLengthintegerField
ValidationData
Elementif provided, maximum value allowed
if omitted, no maximum
Integer
minLengthintegerField
ValidationData
Elementif provided, minimum value allowed
if omitted, no minimum
Integer

floatFieldValidationData

XML TagParent ElementTypeDescriptionData TypeLength
floatField
ValidationData
validationDataRootn/a
typefloatField
ValidationData
Elementfixed: Floatfixed
maxLengthfloatField
ValidationData
Elementif provided, maximum value allowed
if omitted, no maximum
Float
minLengthfloatField
ValidationData
Elementif provided, minimum value allowed
if omitted, no minimum
Float

numericDataOption

XML TagParent ElementTypeDescriptionData TypeLength
numericDataOptionoptionsRootn/a
optionIdnumericDataOptionElementUnique ID for numeric data optionString
namenumericDataOptionElementName to display in UIString
descriptionnumericDataOptionElementDescription of this optionString
titlenumericDataOptionElementNot usedn/an/a
subtitlenumericDataOptionElementNot usedn/an/a
optionReferencepercentage
DataOption
Elementif provided, the next option to display in UI
(see optionReference)
option
Reference

dateDataOption

XML TagParent ElementTypeDescriptionData TypeLength
dateDataOptionoptionsRootn/a
optionIddateDataOptionElementUnique ID for date data optionString
namedateDataOptionElementName to display in UIString
descriptiondateDataOptionElementDescription of this optionString
titledateDataOptionElementNot usedn/an/a
subtitledateDataOptionElementNot usedn/an/a
optionReferencepercentage
DataOption
Elementif provided, the next option to display in UI
(see optionReference)
option
Reference

percentageDataOption

XML TagParent ElementTypeDescriptionData TypeLength
percentage
DataOption
optionsRootn/a
optionIdpercentage
DataOption
ElementUnique ID for percentage data optionString
namepercentage
DataOption
ElementName to display in UIString
descriptionpercentage
DataOption
ElementDescription of this optionString
titlepercentage
DataOption
ElementNot usedn/an/a
subtitlepercentage
DataOption
ElementNot usedn/an/a
optionReferencepercentage
DataOption
Elementif 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 TypeDescriptionExample
BooleanA predefined type with two possible values: true, falsetrue, false
ChoiceDropdown list of predefined valueschoice 1
choice 2
choice 3
DateDate value21 September 2020
NumericNumeric value1234
PercentagePercentage value10%
TextA string value that can be a single line or multiple linesabcdef

Product options can also include Group, Compound, Product, List, Product List, and Capture Product Options.

Option TypeDescription
GroupCollection of options under a single Title / Subtitle
CompoundCollection of options similar to a Group and allows one or more options to be required
ProductOptional or Mandatory selection of a single product
Product ListOptional or Mandatory selection of multiple products
Capture Product OptionsOptional 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 TagParent ElementTypeDescriptionData TypeLength
optionSetRootOuter wrapper for the entityn/a
optionSetIdoptionSetElementUnique ID for this attribute option setString40
nameString100
typeoptionSetElementFixed: productOptionOptionSetfixed
groupIdoptionSetElementRegion Id for this product option
(see groupId)
String20
promptoptionSetElementNot used for Product Optionsn/a
titleoptionSetElementNot used for Product Optionsn/a
subtitleoptionSetElementNot used for Product Optionsn/a
optionsoptionSetElementThe 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 TagParent ElementTypeDescriptionData TypeLength
optionGroupoptionSetRootA collection of optionsn/a
optionIdoptionSetElementUnique ID for this optionString
nameoptionSetElementName for this optionString
descriptionoptionSetElementDescription of this optionString
titleoptionSetElementTitle of this optionString
subtitleoptionSetElementSubtitle of this optionString
optionsoptionSetElementThe collection of options

compoundDataOption

XML TagParent ElementTypeDescriptionData TypeLength
compoundData
Option
optionSetRootA collection of optionsn/a
optionIdcompoundData
Option
ElementUnique ID for this optionString
namecompoundData
Option
ElementName for this optionString
descriptioncompoundData
Option
ElementDescription of this optionString
titlecompoundData
Option
ElementTitle of this optionString
subtitlecompoundData
Option
ElementSubtitle of this optionString
typecompoundData
Option
Elementone of the following fixed values:
NONE_REQUIRED
ONE_REQUIRED
ALL_REQUIRED
fixed
optionscompoundData
Option
ElementThe collection of options

productOption

XML TagParent ElementTypeDescriptionData TypeLength
productOptionoptionSetRootAn optional productn/a
optionIdproductOptionElementUnique ID for this optionString
nameproductOptionElementName for this optionString
descriptionproductOptionElementDescription of this optionString
titleproductOptionElementTitle of this optionString
subtitleproductOptionElementSubtitle of this optionString
mandatoryproductOptionElementif true, product is required
if omitted, false
Boolean
allowOptionReturnsproductOptionElementif true, product can be returned
if omitted, false
Boolean
allowOptionVoidsproductOptionElementif true, product can be voided
if omitted, false
Boolean
allowOption
Discounts
productOptionElementif true, product can be discounted
if omitted, false
Boolean
allowOption
PriceOverrides
productOptionElementif true, product allows price override
if omitted, false
Boolean
allowOption
Promotions
productOptionElementif true, product allows promotions
if omitted, false
Boolean

productListOption

XML TagParent ElementTypeDescriptionData TypeLength
productListOptionoptionSetRootA product listn/a
optionIdproductList
Option
ElementUnique ID for this optionString
nameproductList
Option
ElementName for this optionString
descriptionproductList
Option
ElementDescription of this optionString
titleproductList
Option
ElementTitle of this optionString
subtitleproductList
Option
ElementSubtitle of this optionString
mandatoryproductList
Option
Elementif true, product is required
if omitted, false
Boolean
ProductListIdproductList
Option
ElementA list of products
productListIdProductListIdElementthe ID of the product listString
groupIdProductListIdElementsee groupId
allowOptionReturnsproductList
Option
Elementif true, product can be returned
if omitted, false
Boolean
allowOptionVoidsproductList
Option
Elementif true, product can be voided
if omitted, false
Boolean
allowOption
Discounts
productList
Option
Elementif true, product can be discounted
if omitted, false
Boolean
allowOption
PriceOverrides
productList
Option
Elementif true, product allows price override
if omitted, false
Boolean
allowOption
Promotions
productList
Option
Elementif true, product allows promotions
if omitted, false
Boolean
allowMultiSelectproductList
Option
Elementif true, multiple products can be selected
if omitted, false
Boolean
autoSubmitproductList
Option
Elementif true, submit automatically when selected
if omitted, false
Boolean

captureProductOption

XML TagParent ElementTypeDescriptionData TypeLength
captureProduct
Option
optionSetRootA product listn/a
optionIdcaptureProduct
Option
ElementUnique ID for this optionString
nameproductList
Option
ElementName for this optionString
descriptionproductList
Option
ElementDescription of this optionString
titleproductList
Option
ElementTitle of this optionString
subtitleproductList
Option
ElementSubtitle of this optionString
mandatoryproductList
Option
Elementif true, product is required
if omitted, false
Boolean
manualEntryproductList
Option
Elementif 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 TagParent ElementTypeDescriptionData TypeLength
productListRootA product listn/a
productListIdproductListElementThe list of productsString
groupIdproductListElementThe region for this product list
(see groupId)
String
nameproductListElementnot usedn/a
productListItemproductListElementan item for the list

productListItem

XML TagParent ElementTypeDescriptionData TypeLength
productListItemRootA product for a product listn/a
itemNumberproductListItemElementThe position for the item in the listString
productIdproductListItemElementThe unique ID for the productString
descriptionproductListItemElementThe locale description of the productLocale
String
imageUrlproductListItemElementthe URL for the product imageString

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 TagParent ElementTypeDescriptionData TypeLength
mmgroupRootOuter wrapper for the entityStringn/a
groupIdproductGroupElementUnique ID for the groupString20
groupTypeIdproductGroupElementfixed: productGroupfixed30
groupHierarchyIdproductGroupElementUnique ID for the hierarchyString20
levelproductGroupElementLevel of group within hierarchy structureInteger11
level1GroupIdproductGroupElementTop level group ID
Required if level >= 1
String20
level2GroupIdproductGroupElementNext level group ID
required if level >= 2
String20
level3GroupIdproductGroupElementNext level group ID
required if level >= 3
String20
level4GroupIdproductGroupElementNext level group ID
required if level >= 4
String20
level5GroupIdproductGroupElementNext level group ID
required if level >= 5
String20
level6GroupIdproductGroupElementNext level group ID
required if level >= 6
String20
level7GroupIdproductGroupElementNext level group ID
required if level >= 7
String20
level8GroupIdproductGroupElementNext level group ID
required if level >= 8
String20
level9GroupIdproductGroupElementNext level group ID
required if level >= 9
String20
level10GroupIdproductGroupElementNext level group ID
required if level == 10
String20
nameproductGroupElementDescription of GroupString40
variantGroupIdproductGroupElementRegion Group to which productGroup belongsString20
variantGroup
TypeId
productGroupElement(Fixed) group type - regionfixed30
variantGroup
HierarchyId
productGroupElementRegion Hierarchy to which productGroup belongsString20
variantLevelproductGroupElementregion hierarchy levelInteger11

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 TagParent ElementTypeDescriptionData TypeLength
productProduct
Group
RootOuter wrapper for the entityStringn/a
groupIdproductProduct
Group
ElementUnique ID for the group
(see groupId)
groupId20
productIdproductProduct
Group
ElementUnique ID for a productString20

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 TagParent ElementTypeDescriptionData TypeLength
productMediaRootOuter wrapper for the entityStringn/a
productMediaIdproductMediaElementThe unique ID for this mediaString
productIdproductMediaElementThe product IDString20
sortIndexproductMediaElementThe order the images should appear in the POS UIInteger11
mediaTypeproductMediaElementfixed: IMAGEfixed
mediaSubtypeproductMediaElementfixed: THUMB, MEDIUM, LARGE, MAIN_THUMB, MAIN_MEDIUM, or MAIN_LARGEfixed
imageKeyproductMediaElementA unique key for this imageString40
typeimageKeyAttributethe type of image
e.g. jpg, png, bmp
String
categoryimageKeyAttributefixed: PRODUCTfixed
nameproductMediaElementA name for this imageString40
keywordsproductMediaElementkeywords for this imageString100

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 TagParent ElementTypeDescriptionData TypeLength
productMediaRootOuter wrapper for the entityStringn/a
productMediaIdproductMediaElementThe unique ID for this mediaString
productIdproductMediaElementThe product IDString20
sortIndexproductMediaElementThe order the images should appear in the POS UIInteger11
mediaTypeproductMediaElementfixed: IMAGE_URLfixed
mediaSubTypeproductMediaElementfixed: THUMB, MEDIUM, LARGE, MAIN_THUMB, MAIN_MEDIUM, or MAIN_LARGEfixed
imageKeyproductMediaElementThe URL to the imageString40
nameproductMediaElementA name for this imageString40
keywordsproductMediaElementkeywords for this imageString100

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 TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementThe key to deleteString
typeentityKeyAttributeFixed:ColourKeyfixed
colourRangeIdentityKeyAttributeThe colour range id for this colourString

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 TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementThe key to deleteString
typeentityKeyAttributeFixed:ColourRangeKeyfixed

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 TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementThe key to deleteString
typeentityKeyAttributeFixed:ColourKeyfixed
colourRangeIdentityKeyAttributeThe colour range id for this colourString

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 TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementThe key to deleteString
typeentityKeyAttributeFixed:SizeRangeKeyfixed

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 TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementOuter wrapper for the delete
typeentityKeyAttributeFixed:productAttributeOptionSetfixed
optionSetIdentityKeyAttributesee optionSetIdoption
SetId
groupIdentityKeyElementsee groupIdgroupId

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 TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementOuter wrapper for the delete
typeentityKeyAttributeFixed:productOptionOptionSetfixed
optionSetIdentityKeyAttributesee optionSetIdoption
SetId
groupIdentityKeyElementsee groupIdgroupId

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 TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementThe productGroup key to deleteString
typeentityKeyAttributeFixed:GroupKeyfixed
variantGroup
HierarchyId
entityKeyAttributeRegion hierarchy idString
variantGroupIdentityKeyAttributeRegion idString
variantGroup
TypeId
entityKeyAttributeFixed:regionfixed
groupHierarchyIdentityKeyAttributeHierarchy IdString
groupTypeIdentityKeyAttributefixed:productGroupfixed

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 TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementThe productProductGroup key to deleteString
typeentityKeyAttributeFixed:ProductProductGroupKeyfixed
productIdentityKeyElementThe product ID for this groupString
groupIdentityKeyElementThe 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 TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementThe productMedia key to deleteString
typeentityKeyAttributeFixed:ProductMediaKeyfixed
productMediaIdentityKeyAttributeThe media id for this imageString
mediaTypeentityKeyAttributeThe mediaTypeString
mediaSubtypeentityKeyAttributeThe media subtypeString