Skip to main content

Inbound Integration Guide - Product Base Data

Description

This How-to guide explains the integration of following configuration data entities.

  • Merchandise Management Group (mmGroup)
  • Products: MerchandiseProduct, SkuProduct, StyleSizeProduct, and Style Colour Size Product
  • Product Price
  • Selling Code

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.

Overview

Products, prices, and merchandise groups represent the items that are typically sold in a customer transaction.

Merchandise Management Group (mmGroup)

The merchandise hierarchy is managed as a merchandise management group. This group defines the merchandise folder structure that will be used by other entities including products.

There are many different types of group data. The group structure is hierarchical and supports up to 10 levels.

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:mmGroup>
<retail:groupId>FASHION</retail:groupId>
<retail:groupTypeId>mmGroup</retail:groupTypeId>
<retail:groupHierarchyId>FASHION</retail:groupHierarchyId>
<retail:level>1</retail:level>
<retail:level1GroupId>FASHION</retail:level1GroupId>
<retail:name>Fashion</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:mmGroup>
<retail:mmGroup>
<retail:groupId>BOYS</retail:groupId>
<retail:groupTypeId>mmGroup</retail:groupTypeId>
<retail:groupHierarchyId>FASHION</retail:groupHierarchyId>
<retail:level>2</retail:level>
<retail:level10GroupId></retail:level10GroupId>
<retail:level1GroupId>FASHION</retail:level1GroupId>
<retail:level2GroupId>BOYS</retail:level2GroupId>
<retail:level3GroupId></retail:level3GroupId>
<retail:level4GroupId></retail:level4GroupId>
<retail:level5GroupId></retail:level5GroupId>
<retail:level6GroupId></retail:level6GroupId>
<retail:level7GroupId></retail:level7GroupId>
<retail:level8GroupId></retail:level8GroupId>
<retail:level9GroupId></retail:level9GroupId>
<retail:name>Boys</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:fasciaId groupTypeId="fascia"></retail:fasciaId>
</retail:mmGroup>
<retail:mmGroup>
<retail:groupId>BOYS_SHIRTS</retail:groupId>
<retail:groupTypeId>mmGroup</retail:groupTypeId>
<retail:groupHierarchyId>FASHION</retail:groupHierarchyId>
<retail:level>3</retail:level>
<retail:level10GroupId></retail:level10GroupId>
<retail:level1GroupId>FASHION</retail:level1GroupId>
<retail:level2GroupId>BOYS</retail:level2GroupId>
<retail:level3GroupId>BOYS_SHIRTS</retail:level3GroupId>
<retail:level4GroupId></retail:level4GroupId>
<retail:level5GroupId></retail:level5GroupId>
<retail:level6GroupId></retail:level6GroupId>
<retail:level7GroupId></retail:level7GroupId>
<retail:level8GroupId></retail:level8GroupId>
<retail:level9GroupId></retail:level9GroupId>
<retail:name>Boys 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:fasciaId groupTypeId="fascia"></retail:fasciaId>
</retail:mmGroup>
</Batch>

XML Structure

XML TagParent ElementTypeDescriptionData TypeLength
mmgroupRootOuter wrapper for the entityStringn/a
groupIdmmGroupElementUnique ID for the groupString20
groupTypeIdmmGroupElement(Fixed) group type - mmGroupString30
groupHierarchyIdmmGroupElementUnique ID for the hierarchyString20
levelmmGroupElementLevel of group within hierarchy structureInteger11
level1GroupIdmmGroupElementTop level group ID
Required if level >= 1
String20
level2GroupIdmmGroupElementNext level group ID
required if level >= 2
String20
level3GroupIdmmGroupElementNext level group ID
required if level >= 3
String20
level4GroupIdmmGroupElementNext level group ID
required if level >= 4
String20
level5GroupIdmmGroupElementNext level group ID
required if level >= 5
String20
level6GroupIdmmGroupElementNext level group ID
required if level >= 6
String20
level7GroupIdmmGroupElementNext level group ID
required if level >= 7
String20
level8GroupIdmmGroupElementNext level group ID
required if level >= 8
String20
level9GroupIdmmGroupElementNext level group ID
required if level >= 9
String20
level10GroupIdmmGroupElementNext level group ID
required if level == 10
String20
namemmGroupElementDescription of GroupString40
variantGroupIdmmGroupElementRegion Group to which mmGroup belongsString20
variantGroupTypeIdmmGroupElement(Fixed) group type - regionString30
variantGroup
HierarchyId
mmGroupElementRegion Hierarchy to which mmGroup belongsString20
variantLevelmmGroupElementregion hierarchy levelInteger11
fasciaIdmmGroupElementID of fascia to which MMGroup belongsString20
allowPriceEntrymmGroupElementThis mmgroup allows price entryBoolean
concessionmmGroupElementThis mmgroup is a concessionBoolean
forceMessage
Acknowledgement
mmGroupElementOperator must acknowledge operator message (if defined)Boolean
quantityEntrymmGroupElementThis mmgroup allows quantity entryBoolean
exportWarning
Message
mmGroupElementexport warning messageString200
operatorMessagemmGroupElementoperator message (if defined)Locale String
receiptMessagemmGroupElementreceipt message (if defined)Locale String

Locale String

XML TagParent ElementTypeDescriptionData TypeLength
stringproductDescription,
productLong
Description
ElementLocale string definitionString200
variantstringAttribute
languagestringAttributeLocale languageString
countrystringAttributeLocale countryString

Product

The product entity holds the data for the products that will be sold in a transaction.

Many different types of products are supported by Enactor. These include merchandise products, style/color/size products, and SKU products.

Merchandise Product

Merchandise products will use the attributes from mmGroup, brand, and 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:merchandiseProduct>
<retail:productId>270717806</retail:productId>
<retail:type>merchandiseProduct</retail:type>
<retail:productDescription>
<core:string variant="" language="en" country="US">Bulova Women's Watch</core:string>
</retail:productDescription>
<retail:productLongDescription>
<core:string variant="" language="en" country="US">This chic women's watch from the Classic collection by Bulova showcases a rose-gold-tone dial set in a 28mm rose-gold-tone stainless steel case. The matching rose-gold-tone stainless steel bracelet.</core:string>
</retail:productLongDescription>
<retail:productLongDescriptionURL></retail:productLongDescriptionURL>
<retail:productInfo></retail:productInfo>
<retail:fasciaId/>
<retail:imageURL>image://PRODUCT/watch5a.jpg</retail:imageURL>
<retail:imageFilenameId type="jpg" category="PRODUCT">watch5a</retail:imageFilenameId>
<retail:productInformationURL></retail:productInformationURL>
<retail:posDetails>
<retail:productOptionSetDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:productOptionSetDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:posDetails>
<retail:isTemplate>false</retail:isTemplate>
<retail:status>LIVE</retail:status>
<retail:externalReference></retail:externalReference>
<retail:lastUpdated>2020-03-23T13:45:02.822-04:00</retail:lastUpdated>
<retail:taxExemptProhibited>false</retail:taxExemptProhibited>
<retail:exportDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:exportDetails>
<retail:mmGroupId variantGroupHierarchyId="All" variantGroupId="All" variantGroupTypeId="region" groupHierarchyId="SIGNET" groupTypeId="mmGroup">SIG_WATCH_WMN</retail:mmGroupId>
<retail:brandId/>
<retail:rangeId/>
<retail:inventoryDetails>
<retail:allowForLoan>false</retail:allowForLoan>
<retail:allowCustomerOrder>false</retail:allowCustomerOrder>
<retail:isTemplate>false</retail:isTemplate>
</retail:inventoryDetails>
<retail:productDimensions>
<retail:isTemplate>false</retail:isTemplate>
</retail:productDimensions>
<retail:warrantyDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:warrantyDetails>
<retail:standardCostPrice>0.0</retail:standardCostPrice>
<retail:standardMargin>0.0</retail:standardMargin>
</retail:merchandiseProduct>
</Batch>

XML Structure

XML TagParent ElementTypeDescriptionData TypeLength
merchandiseProductRootOuter wrapper for the entityStringn/a
productIdmerchandiseProductElementUnique Id for the productString20
typemerchandiseProductElementFixed: merchandiseProductn/a
product
Description
merchandiseProductElementLocale specific description of productLocale
String
30
productLong
Description
merchandiseProductElementLocale specific long description of productLocale
String
50
productLong
DescriptionURL
merchandiseProductElementURL for product descriptionString
productInfomerchandiseProductElementExtra long description of productString5000
startDatemerchandiseProductElementDate when product is first allowed to be sold,
if omitted, the beginning of time
Date
Time
endDatemerchandiseProductElementDate when product is last allowed to be sold,
If omitted, the end of time
Date
Time
fasciaIdmerchandiseProductElementUnique identifier for a FasciaString
imageURLmerchandiseProductElementURL for product imageString
product
InformationURL
merchandiseProductElementURL for additional product informationString
posDetailsmerchandiseProductElementFixed: posDetails
operatorMessageposDetailsElementMessage to be displayed to the operatorLocale
String
customerMessageposDetailsElementMessage to be displayed to the customerLocale
String
cashierAge
Restrict
posDetailsElementCashier minimum ageInteger
numberCopy
Receipts
posDetailsElementNumber of receipt copies to print
maxDiscountposDetailsElementMaximum discount amountDouble
maxEmployee
Discount
posDetailsElementMaximum employee discount amountDouble
excludeFrom
Employee
Discount
posDetailsElementIf true, exclude this item from employee discountsBoolean
returnsTime
Limit
posDetailsElementNumber of days allowed for returnInteger
maxQtyPer
Transaction
posDetailsElementMaximum quantity of this item allowed per transactionDouble
customerAge
Restriction
posDetailsElementCustomer minimum ageInteger
receiptMessageposDetailsElementMessage to be printed on the receiptLocale
String
captureSerialNoposDetailsElementCapture a product serial numberBoolean
priceEntryposDetailsElementAllow price entryBoolean
quantityEntryposDetailsElementAllow quantity entryBoolean
minimum
SalesUnit
posDetailsElementMinimum sales quantityDouble
allowDiscountsposDetailsElementAllow discounts on productBoolean
capture
ReasonCode
posDetailsElementForce capture of reason codeBoolean
capture
NameAddress
posDetailsElementForce capture of customer name and addressBoolean
capture
ReferenceNo
posDetailsElementForce capture of a reference numberBoolean
taxModifiableposDetailsElementAllow tax to be modifiedBoolean
forceMessage
Acknowledgement
posDetailsElementForce operator to acknowledge displayed operator messageBoolean
forceSalesperson
Capture
posDetailsElementForce capture of salesperson idBoolean
disallowZero
PriceEntry
posDetailsElementIf true, do not allow zero price for productBoolean
disallowReturnsposDetailsElementIf true, do not allow product to be returnedBoolean
disallowPrice
Overrides
posDetailsElementIf true, do not allow price overridesBoolean
disallow
Promotions
posDetailsElementIf true, do not allow promotions on this productBoolean
preventStore
Transaction
posDetailsElementIf true, do not allow a transaction with this product to be stored/recalledBoolean
productOption
SetDetails
posDetailsElement
isTemplateproductOptionSetDetailsElementIf true, this product option set is from a templateBoolean
disallow
QuantityEntry
posDetailsElementIf true, do not allow quantity entryBoolean
perishableposDetailsElementIf true, this product is perishableBoolean
isTemplateposDetailsElementIf true, this posDetails is from a templateBoolean
statusposDetailsElementValue from the Product Status entityString
externalReferenceposDetailsElementExternal product reference numberString
taxExempt
Prohibited
posDetailsElementIf true, tax exempt is not allowed on this productBoolean
taxGroupIdposDetailsElementValue from Tax Groups entityString
exportDetailsposDetailsElement
notForExportexportDetailsElementIf true, product is not allowed for exportBoolean
isTemplateexportDetailsElementIf true, exportDetails is from a templateBoolean
mmGroupIdposDetailsElementValue from mmGroup Group entityString
brandIdposDetailsElementValue from brand Group entityString
rangeIdposDetailsElementValue from range Group entityString
inventoryDetailsposDetailsElement
allowForLoaninventoryDetailsElementIf true, allow product to be loanedBoolean
allowCustomer
Order
inventoryDetailsElementIf true, allow product in customer orderBoolean
allowPurchase
Order
inventoryDetailsElementIf true, allow product in purchase orderBoolean
customerOrder
Only
inventoryDetailsElementIf true, allow product in customer order onlyBoolean
directToStore
Delivery
inventoryDetailsElementIf true, product will be sent directly to storeBoolean
isStockedinventoryDetailsElementIf true, product is stocked in storeBoolean
isTemplateinventoryDetailsElementIf true, inventory details are from a templateBoolean
product
Dimensions
posDetailsElement
heightproductDimensionsElementHeight dimension of the productDouble
lengthproductDimensionsElementLength dimension of the productDouble
widthproductDimensionsElementWidth dimension of the productDouble
weightproductDimensionsElementWeight of the productDouble
sizeDescriptionproductDimensionsElementSize description of the productString
isTemplateproductDimensionsElementIf true, product dimensions are from a templateBoolean
warrantyDetailsposDetailsElement
warrantyPeriod
Months
warrantyDetailsElementIf > 0, number of months for warranty is valid
if = 0, unlimited duration
Integer
localisedWarranty
Information
warrantyDetailsElementDescription of the warrantyLocale
String
extended
WarrantyAvailable
warrantyDetailsElementIf true, an extended warranty is availableBoolean
warranty
Information
warrantyDetailsElementExtended description of the warrantyLocale
String
isTemplatewarrantyDetailsElementIf true, warranty details are from a templateBoolean
seasonIdposDetailsElementValue from Seasons entityString
standardCostPriceposDetailsElementStandard cost of productDouble
standardMarginposDetailsElementStandard margin of productDouble

Locale String

XML TagParent ElementTypeDescriptionData TypeLength
stringproductDescription,
productLong
Description
ElementLocale string definitionString200
variantstringAttribute
languagestringAttributeLocale languageString
countrystringAttributeLocale countryString

SKU Product

The SKU product extends the merchandise product.

XML Example

#### XML Example

```xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:core="[http://www.enactor.com/core](http://www.enactor.com/core)"
xmlns:retail="[http://www.enactor.com/retail](http://www.enactor.com/retail)">
<retail:skuProduct>
<retail:productId>KD092JS-1</retail:productId>
<retail:type>skuProduct</retail:type>
<retail:productDescription>
<core:string variant="" language="en" country="GB">Nike Capri Trainer</core:string>
</retail:productDescription>
<retail:productLongDescription>
<core:string variant="" language="en" country="GB">From Nike. Combination leather and synthetic upper for durability and comfort. Autoclave construction fuses the outsole to the upper for durability and a classic look and feel. Rubber outsole with dot</core:string>
</retail:productLongDescription>
<retail:productLongDescriptionURL></retail:productLongDescriptionURL>
<retail:productInfo>Upper: leather and synthetic. Linings and sock: textile. Sole: other materials.</retail:productInfo>
<retail:fasciaId></retail:fasciaId>
<retail:imageURL>image://PRODUCT/KD092JS-1.jpg</retail:imageURL>
<retail:imageFilenameId type="jpg" category="PRODUCT">KD092JS-1</retail:imageFilenameId>
<retail:productInformationURL></retail:productInformationURL>
<retail:posDetails>
<retail:productOptionSetDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:productOptionSetDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:posDetails>
<retail:isTemplate>false</retail:isTemplate>
<retail:status>LIVE</retail:status>
<retail:externalReference></retail:externalReference>
<retail:taxExemptProhibited>false</retail:taxExemptProhibited>
<retail:taxGroupId>A</retail:taxGroupId>
<retail:exportDetails>
<retail:notForExport>false</retail:notForExport>
<retail:isTemplate>false</retail:isTemplate>
</retail:exportDetails>
<retail:mmGroupId variantGroupHierarchyId="All" variantGroupId="All" variantGroupTypeId="region" groupHierarchyId="FASHION" groupTypeId="mmGroup">MENS_SHOES</retail:mmGroupId>
<retail:brandId variantGroupHierarchyId="All" variantGroupId="All" variantGroupTypeId="region" groupHierarchyId="FASHION" groupTypeId="brand">NIKE</retail:brandId>
<retail:rangeId></retail:rangeId>
<retail:inventoryDetails>
<retail:allowForLoan>false</retail:allowForLoan>
<retail:allowCustomerOrder>true</retail:allowCustomerOrder>
<retail:allowPurchaseOrder>true</retail:allowPurchaseOrder>
<retail:customerOrderOnly>false</retail:customerOrderOnly>
<retail:directToStoreDelivery>false</retail:directToStoreDelivery>
<retail:isStocked>true</retail:isStocked>
<retail:isTemplate>false</retail:isTemplate>
</retail:inventoryDetails>
<retail:productDimensions>
<retail:isTemplate>false</retail:isTemplate>
</retail:productDimensions>
<retail:warrantyDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:warrantyDetails>
<retail:seasonId>ALL</retail:seasonId>
<retail:standardCostPrice>0.0</retail:standardCostPrice>
<retail:standardMargin>0.0</retail:standardMargin>
<retail:colourId colourRangeId="MENS_SHOES">BLACK</retail:colourId>
<retail:sizeId sizeRangeId="MENS_SHOES">12</retail:sizeId>
<retail:styleId>KD092JS</retail:styleId>
<retail:styleAttributeValues/>
</retail:skuProduct>
</Batch>

XML Structure

The skuProduct includes all elements of the merchandiseProduct and the following additional elements.

skuProduct

XML TagParent ElementTypeDescriptionData TypeLength
skuProductRootOuter wrapper for the entityStringn/a
. . .skuProductElementAll merchandiseProduct XML tags
colourIdskuProductElementSee table belowString
sizeIdskuProductElementSee table belowString
styleIdskuProductElementUnique id of a styleColourSizeProduct or styleSizeProductString20

The styleId value links the related skuProducts as a family of products.

colourId

XML TagParent ElementTypeDescriptionData TypeLength
colourIdRootOuter wrapper for the entityStringn/a
colourIdRangecolourIdAttributeValue from the Colour Range entityString
valuecolourIdValueValue for this color choiceString

sizeId

XML TagParent ElementTypeDescriptionData TypeLength
sizeIdRootOuter wrapper for the entityStringn/a
sizeIdRangesizeIdAttributeValue from the Size Range entityString
valuesizeIdValueValue for this size choiceString

Style Size Product

The StyleSizeProduct extends the SKUProduct. The style size product is a collection of products with size choices from the size range.

XML Example

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch>
<retail:styleSizeProduct xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:productId>21110</retail:productId>
<retail:type>styleSizeProduct</retail:type>
<retail:productDescription>
<core:string variant="" language="en" country="CA">Men's Nike Flyknit 4.0</core:string>
<core:string variant="" language="en" country="GB">Men's Nike Flyknit 4.0</core:string>
<core:string variant="" language="en" country="US">Men's Nike Flyknit 4.0</core:string>
<core:string variant="" language="fr" country="CA">Men's Nike Flyknit 4.0</core:string>
</retail:productDescription>
<retail:productLongDescription/>
<retail:productLongDescriptionURL></retail:productLongDescriptionURL>
<retail:productInfo></retail:productInfo>
<retail:fasciaId/>
<retail:imageURL>image://PRODUCT/MNikeShoe.jpg</retail:imageURL>
<retail:imageFilenameId type="jpg" category="PRODUCT">MNikeShoe</retail:imageFilenameId>
<retail:productInformationURL></retail:productInformationURL>
<retail:posDetails>
<retail:productOptionSetDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:productOptionSetDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:posDetails>
<retail:isTemplate>false</retail:isTemplate>
<retail:status>LIVE</retail:status>
<retail:externalReference></retail:externalReference>
<retail:taxExemptProhibited>false</retail:taxExemptProhibited>
<retail:exportDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:exportDetails>
<retail:mmGroupId variantGroupHierarchyId="All" variantGroupId="All" variantGroupTypeId="region" groupHierarchyId="ALL" groupTypeId="mmGroup">SHOES_MEN_ATH</retail:mmGroupId>
<retail:brandId variantGroupHierarchyId="All" variantGroupId="All" variantGroupTypeId="region" groupHierarchyId="SHOES" groupTypeId="brand">SHOES_NIKE</retail:brandId>
<retail:rangeId></retail:rangeId>
<retail:inventoryDetails>
<retail:allowForLoan>false</retail:allowForLoan>
<retail:allowCustomerOrder>true</retail:allowCustomerOrder>
<retail:isTemplate>false</retail:isTemplate>
</retail:inventoryDetails>
<retail:productDimensions>
<retail:isTemplate>false</retail:isTemplate>
</retail:productDimensions>
<retail:warrantyDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:warrantyDetails>
<retail:seasonId></retail:seasonId>
<retail:standardCostPrice>0.0</retail:standardCostPrice>
<retail:standardMargin>0.0</retail:standardMargin>
<retail:sizeRangeId>SHOES</retail:sizeRangeId>
<retail:styleAttributes/>
</retail:styleSizeProduct>
</Batch>

XML Structure

The StyleSizeProduct includes all elements of the SKUProduct and the following additional elements.

XML TagParent ElementTypeDescriptionData TypeLength
StyleSizeProductRootOuter wrapper for the entityStringn/a
. . .StyleSizeProductElementAll merchandiseProduct XML tags
sizeRangeIdStyleSizeProductElementValue from the Size Range entityString

Style Colour Size Product

The StyleColourSizeProduct extends the SKUProduct. The style colour size product is a collection of products with colour and size choices from the colour range and size range.

XML Example

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch>
<retail:styleColourSizeProduct xmlns:core="http://www.enactor.com/core"
xmlns:retail="http://www.enactor.com/retail">
<retail:productId>0DQJOJ4</retail:productId>
<retail:type>styleColourSizeProduct</retail:type>
<retail:productDescription>
<core:string variant="" language="en" country="GB">Tile Print Shorts</core:string>
</retail:productDescription>
<retail:productLongDescription>
<core:string variant="" language="en" country="GB">Enhance your child's ensemble with these childrens girls tile print shorts from Roberto Cavalli. Boasting an all over tile print design, this bold pair feature an clasp closure and belt loops.</core:string>
</retail:productLongDescription>
<retail:productLongDescriptionURL></retail:productLongDescriptionURL>
<retail:productInfo>100% cotton, Machine washable</retail:productInfo>
<retail:fasciaId/>
<retail:imageURL>image://PRODUCT/11_0DQJOJ4.jpg</retail:imageURL>
<retail:imageFilenameId type="jpg" category="PRODUCT">11_0DQJOJ4</retail:imageFilenameId>
<retail:productInformationURL></retail:productInformationURL>
<retail:posDetails>
<retail:productOptionSetDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:productOptionSetDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:posDetails>
<retail:isTemplate>false</retail:isTemplate>
<retail:status>LIVE</retail:status>
<retail:externalReference></retail:externalReference>
<retail:taxExemptProhibited>false</retail:taxExemptProhibited>
<retail:taxGroupId>A</retail:taxGroupId>
<retail:exportDetails>
<retail:notForExport>false</retail:notForExport>
<retail:isTemplate>false</retail:isTemplate>
</retail:exportDetails>
<retail:mmGroupId variantGroupHierarchyId="All" variantGroupId="All" variantGroupTypeId="region" groupHierarchyId="FASHION" groupTypeId="mmGroup">GC_SHORTS_SKIRTS</retail:mmGroupId>
<retail:brandId variantGroupHierarchyId="All" variantGroupId="All" variantGroupTypeId="region" groupHierarchyId="FASHION" groupTypeId="brand">ROBERTO CAVALLI</retail:brandId>
<retail:rangeId></retail:rangeId>
<retail:inventoryDetails>
<retail:allowForLoan>false</retail:allowForLoan>
<retail:allowCustomerOrder>true</retail:allowCustomerOrder>
<retail:allowPurchaseOrder>true</retail:allowPurchaseOrder>
<retail:customerOrderOnly>false</retail:customerOrderOnly>
<retail:directToStoreDelivery>false</retail:directToStoreDelivery>
<retail:isStocked>true</retail:isStocked>
<retail:isTemplate>false</retail:isTemplate>
</retail:inventoryDetails>
<retail:productDimensions>
<retail:isTemplate>false</retail:isTemplate>
</retail:productDimensions>
<retail:warrantyDetails>
<retail:isTemplate>false</retail:isTemplate>
</retail:warrantyDetails>
<retail:seasonId>ALL</retail:seasonId>
<retail:standardCostPrice>0.0</retail:standardCostPrice>
<retail:standardMargin>0.0</retail:standardMargin>
<retail:sizeRangeId>GC_SHORTS_SKIRTS</retail:sizeRangeId>
<retail:styleAttributes/>
<retail:colourRangeId>GC_SHORTS_SKIRTS</retail:colourRangeId>
</retail:styleColourSizeProduct>
</Batch>

XML Structure

The StyleColorSizeProduct includes all elements of the SKUProduct and the following additional elements.

XML TagParent ElementTypeDescriptionData TypeLength
styleColorSizeProductRootOuter wrapper for the entityStringn/a
. . .styleColorSizeProductElementAll merchandiseProduct XML tags
colourRangeIdstyleColorSizeProductElementValue from the Colour Range entityString
sizeRangeIdstyleColorSizeProductElementValue from the Size Range entityString

Product Price

Multiple Prices may be defined for any given Product. An individual ProductPrice may be directly associated with a PriceGroup (defined in Groups) or a Location (which takes precedence if used), but not both.

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:productPrice>
<retail:productId>000001</retail:productId>
<retail:locationId></retail:locationId>
<retail:priceGroupId variantGroupHierarchyId="All" variantGroupId="All" variantGroupTypeId="region" groupHierarchyId="ALL" groupTypeId="priceGroup">UK</retail:priceGroupId>
<retail:currencyId>GBP</retail:currencyId>
<retail:priceType>R</retail:priceType>
<retail:priceContext></retail:priceContext>
<retail:price>0</retail:price>
<retail:pricingMethod></retail:pricingMethod>
</retail:productPrice>
</Batch>

XML Structure

XML TagParent ElementTypeDescriptionData TypeLength
productPriceRootOuter wrapper for the entityStringn/a
productIdproductPriceElementId for the product to which the price is assignedInteger
locationIdproductPriceElementIf using location specific pricing, the location id for which the price is applicableString
priceGroupIdproductPriceElementIf using price groups, the price group Id for which the price is applicableString
currencyIdproductPriceElementCurrency code for the priceString
startDateproductPriceElementDate the price is valid from,
if omitted, the beginning of time
Date
Time
priceTypeproductPriceElementDate the price is valid to,
if omitted, the end of time
Date
Time
priceContextproductPriceElementOption product IDString
priceproductPriceElementPrice in lowest denomination, i.e. pence for GBPInteger
pricingMethodproductPriceElementIf selling by measure system, the unit of measure to sell byString
equivalentMeasure
SystemId
productPriceElementIf selling by measure system, fix to LENGTH_METRIC. Do not provide if sold by whole unitString
equivalentUnitOf
MeasureId
productPriceElementIf selling by measure system, unit price applies to. Do not provide if sold by whole unit. Default values are METRE, CENTIMETER, MILLIMETER (configurable)String
roundingRuleIdproductPriceElementId for the rounding ruleString

Price is a whole number that is a multiple of the lowest denomination of currency for the region to which the price applies. For example, in the UK, the lowest denomination is the pence which is £0.01 so all prices should be expressed using pence. For a price of £12.34, the price value would be 1234.

priceGroupId

XML TagParent ElementTypeDescriptionData TypeLength
priceGroupIdElement
variantGroup
HierarchyId
priceGroupIdAttributeThe group hierarchy id of the region of the price groupString
variantGroupIdpriceGroupIdAttributeThe group id of the region for this price groupString
variantGroupTypeIdpriceGroupIdAttributeFixed: region
groupHierarchyIdpriceGroupIdAttributeThe id of the price groupString
groupTypeIdpriceGroupIdAttributeFixed: priceGroup

Selling Code

A selling code is similar to a barcode for a product. This is a alias or an alternate way to identify a product.

XML Example

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch xmlns:retail="http://www.enactor.com/retail">
<retail:sellingCode>
<retail:regionId groupHierarchyId="All" groupTypeId="region">All</retail:regionId>
<retail:sellingCode>038000138430</retail:sellingCode>
<retail:productId>3800013843</retail:productId>
<retail:effectiveFrom>2017-09-28T00:00:00-04:00</retail:effectiveFrom>
<retail:effectiveTo>2025-12-31T00:00:00-04:00</retail:effectiveFrom>
</retail:sellingCode>
</Batch>

XML Structure

XML TagParent ElementTypeDescriptionData TypeLength
sellingCodeRootOuter wrapper for the entityStringn/a
regionIdsellingCodeElementRegion the selling code applies toString
sellingCodesellingCodeElementBarcodeString
productIdsellingCodeElementProduct id that the code is linked toString
effectiveFromsellingCodeElementDate the code is valid from,
if omitted, the beginning of time
Date
Time
effectiveTosellingCodeElementDate the code is valid to,
if omitted, the end of time
Date
Time

regionId

XML TagParent ElementTypeDescriptionData TypeLength
priceGroupIdElement
groupHierarchyIdpriceGroupIdAttributeThe id of the price groupString
groupTypeIdpriceGroupIdAttributeFixed: priceGroup

MM 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">
<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 mmGroup key to deleteString
typeentityKeyAttributeFixed:GroupKey
variantGroup
HierarchyId
entityKeyAttributeRegion hierarchy idString
variantGroupIdentityKeyAttributeRegion idString
variantGroup
TypeId
entityKeyAttributeFixed:region
groupHierarchyIdentityKeyAttributeHierarchy IdString
groupTypeIdentityKeyAttributefixed:mmGroup

Selling Code 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">

<!-- SellingCodeKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:SellingCodeKey">
<retail:regionId variantGroupHierarchyId="variantGroupHierarchyId" variantGroupId="variantGroupId" variantGroupTypeId="variantGroupTypeId" groupHierarchyId="groupHierarchyId" groupTypeId="groupTypeId">groupId</retail:regionId>
<retail:sellingCode>sellingCode</retail:sellingCode>
</core:entityKey>
</core:entityDeleteRequest>
</Batch>

XML Structure

entityDeleteRequest

XML TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementString
typeentityKeyAttributeFixed:SellingCodeKey
regionIdentityKeyElementThe region id in which the sellingCode appliesString
group
HierarchyId
regionIdAttributeRegion hierarchy idString
groupTypeIdregionIdAttributeFixed:region

Product 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">

<!-- merchandiseProduct - ProductKey -->
<!-- skuProduct - ProductKey -->
<!-- styleSizeProduct - ProductKey -->
<!-- styleColourSizeProduct - ProductKey -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:ProductKey">productKey</core:entityKey>
</core:entityDeleteRequest>
</Batch>

XML Structure

entityDeleteRequest

XML TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementUnique id of the product to deleteString
typeentityKeyAttributeFixed:ProductKey

Product Price 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">

<!-- ProductPriceKey (locationKey) -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:ProductPriceKey">
<retail:productId>productId</retail:productId>
<retail:locationId>locationId</retail:locationId>
<retail:priceGroupId/>
<retail:currencyId>currencyId</retail:currencyId>
<retail:startDate>2000-02-01T00:00:00.000-05:00</retail:startDate>
<retail:endDate>2026-01-31T00:00:00.000-05:00</retail:endDate>
<retail:priceType>priceType</retail:priceType>
<retail:priceContext></retail:priceContext>
</core:entityKey>
</core:entityDeleteRequest>

<!-- ProductPriceKey (priceGroup) -->
<core:entityDeleteRequest>
<core:entityKey xsi:type="retail:ProductPriceKey">
<retail:productId>productId</retail:productId>
<retail:locationId></retail:locationId>
<retail:priceGroupId variantGroupHierarchyId="variantGroupHierarchyId" variantGroupId="variantGroupId" variantGroupTypeId="variantGroupTypeId" groupHierarchyId="groupHierarchyId" groupTypeId="groupTypeId">groupId</retail:priceGroupId>
<retail:currencyId>currencyId</retail:currencyId>
<retail:startDate>2000-02-01T00:00:00.000-05:00</retail:startDate>
<retail:endDate>2026-01-31T00:00:00.000-05:00</retail:endDate>
<retail:priceType>priceType</retail:priceType>
<retail:priceContext></retail:priceContext>
</core:entityKey>
</core:entityDeleteRequest>
</Batch>

XML Structure

entityDeleteRequest

XML TagParent ElementTypeDescriptionData TypeLength
entityKeyentityDelete
Request
ElementUnique id of the product to deleteString
typeentityKeyAttributeFixed:ProductPriceKey
productIdentityKeyElementUnique id of the productString
priceGroupIdentityKeyElementPrice group key for the price to be deletedString
currencyIdentityKeyElementCurrency id for the price to be deletedString
priceTypeentityKeyElementPrice type for the price to be deletedString