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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| mmgroup | Root | Outer wrapper for the entity | String | n/a | |
| groupId | mmGroup | Element | Unique ID for the group | String | 20 |
| groupTypeId | mmGroup | Element | (Fixed) group type - mmGroup | String | 30 |
| groupHierarchyId | mmGroup | Element | Unique ID for the hierarchy | String | 20 |
| level | mmGroup | Element | Level of group within hierarchy structure | Integer | 11 |
| level1GroupId | mmGroup | Element | Top level group ID Required if level >= 1 | String | 20 |
| level2GroupId | mmGroup | Element | Next level group ID required if level >= 2 | String | 20 |
| level3GroupId | mmGroup | Element | Next level group ID required if level >= 3 | String | 20 |
| level4GroupId | mmGroup | Element | Next level group ID required if level >= 4 | String | 20 |
| level5GroupId | mmGroup | Element | Next level group ID required if level >= 5 | String | 20 |
| level6GroupId | mmGroup | Element | Next level group ID required if level >= 6 | String | 20 |
| level7GroupId | mmGroup | Element | Next level group ID required if level >= 7 | String | 20 |
| level8GroupId | mmGroup | Element | Next level group ID required if level >= 8 | String | 20 |
| level9GroupId | mmGroup | Element | Next level group ID required if level >= 9 | String | 20 |
| level10GroupId | mmGroup | Element | Next level group ID required if level == 10 | String | 20 |
| name | mmGroup | Element | Description of Group | String | 40 |
| variantGroupId | mmGroup | Element | Region Group to which mmGroup belongs | String | 20 |
| variantGroupTypeId | mmGroup | Element | (Fixed) group type - region | String | 30 |
| variantGroup HierarchyId | mmGroup | Element | Region Hierarchy to which mmGroup belongs | String | 20 |
| variantLevel | mmGroup | Element | region hierarchy level | Integer | 11 |
| fasciaId | mmGroup | Element | ID of fascia to which MMGroup belongs | String | 20 |
| allowPriceEntry | mmGroup | Element | This mmgroup allows price entry | Boolean | |
| concession | mmGroup | Element | This mmgroup is a concession | Boolean | |
| forceMessage Acknowledgement | mmGroup | Element | Operator must acknowledge operator message (if defined) | Boolean | |
| quantityEntry | mmGroup | Element | This mmgroup allows quantity entry | Boolean | |
| exportWarning Message | mmGroup | Element | export warning message | String | 200 |
| operatorMessage | mmGroup | Element | operator message (if defined) | Locale String | |
| receiptMessage | mmGroup | Element | receipt message (if defined) | Locale String |
Locale String
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| string | productDescription, productLong Description | Element | Locale string definition | String | 200 |
| variant | string | Attribute | |||
| language | string | Attribute | Locale language | String | |
| country | string | Attribute | Locale country | String |
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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| merchandiseProduct | Root | Outer wrapper for the entity | String | n/a | |
| productId | merchandiseProduct | Element | Unique Id for the product | String | 20 |
| type | merchandiseProduct | Element | Fixed: merchandiseProduct | n/a | |
| product Description | merchandiseProduct | Element | Locale specific description of product | Locale String | 30 |
| productLong Description | merchandiseProduct | Element | Locale specific long description of product | Locale String | 50 |
| productLong DescriptionURL | merchandiseProduct | Element | URL for product description | String | |
| productInfo | merchandiseProduct | Element | Extra long description of product | String | 5000 |
| startDate | merchandiseProduct | Element | Date when product is first allowed to be sold, if omitted, the beginning of time | Date Time | |
| endDate | merchandiseProduct | Element | Date when product is last allowed to be sold, If omitted, the end of time | Date Time | |
| fasciaId | merchandiseProduct | Element | Unique identifier for a Fascia | String | |
| imageURL | merchandiseProduct | Element | URL for product image | String | |
| product InformationURL | merchandiseProduct | Element | URL for additional product information | String | |
| posDetails | merchandiseProduct | Element | Fixed: posDetails | ||
| operatorMessage | posDetails | Element | Message to be displayed to the operator | Locale String | |
| customerMessage | posDetails | Element | Message to be displayed to the customer | Locale String | |
| cashierAge Restrict | posDetails | Element | Cashier minimum age | Integer | |
| numberCopy Receipts | posDetails | Element | Number of receipt copies to print | ||
| maxDiscount | posDetails | Element | Maximum discount amount | Double | |
| maxEmployee Discount | posDetails | Element | Maximum employee discount amount | Double | |
| excludeFrom Employee Discount | posDetails | Element | If true, exclude this item from employee discounts | Boolean | |
| returnsTime Limit | posDetails | Element | Number of days allowed for return | Integer | |
| maxQtyPer Transaction | posDetails | Element | Maximum quantity of this item allowed per transaction | Double | |
| customerAge Restriction | posDetails | Element | Customer minimum age | Integer | |
| receiptMessage | posDetails | Element | Message to be printed on the receipt | Locale String | |
| captureSerialNo | posDetails | Element | Capture a product serial number | Boolean | |
| priceEntry | posDetails | Element | Allow price entry | Boolean | |
| quantityEntry | posDetails | Element | Allow quantity entry | Boolean | |
| minimum SalesUnit | posDetails | Element | Minimum sales quantity | Double | |
| allowDiscounts | posDetails | Element | Allow discounts on product | Boolean | |
| capture ReasonCode | posDetails | Element | Force capture of reason code | Boolean | |
| capture NameAddress | posDetails | Element | Force capture of customer name and address | Boolean | |
| capture ReferenceNo | posDetails | Element | Force capture of a reference number | Boolean | |
| taxModifiable | posDetails | Element | Allow tax to be modified | Boolean | |
| forceMessage Acknowledgement | posDetails | Element | Force operator to acknowledge displayed operator message | Boolean | |
| forceSalesperson Capture | posDetails | Element | Force capture of salesperson id | Boolean | |
| disallowZero PriceEntry | posDetails | Element | If true, do not allow zero price for product | Boolean | |
| disallowReturns | posDetails | Element | If true, do not allow product to be returned | Boolean | |
| disallowPrice Overrides | posDetails | Element | If true, do not allow price overrides | Boolean | |
| disallow Promotions | posDetails | Element | If true, do not allow promotions on this product | Boolean | |
| preventStore Transaction | posDetails | Element | If true, do not allow a transaction with this product to be stored/recalled | Boolean | |
| productOption SetDetails | posDetails | Element | |||
| isTemplate | productOptionSetDetails | Element | If true, this product option set is from a template | Boolean | |
| disallow QuantityEntry | posDetails | Element | If true, do not allow quantity entry | Boolean | |
| perishable | posDetails | Element | If true, this product is perishable | Boolean | |
| isTemplate | posDetails | Element | If true, this posDetails is from a template | Boolean | |
| status | posDetails | Element | Value from the Product Status entity | String | |
| externalReference | posDetails | Element | External product reference number | String | |
| taxExempt Prohibited | posDetails | Element | If true, tax exempt is not allowed on this product | Boolean | |
| taxGroupId | posDetails | Element | Value from Tax Groups entity | String | |
| exportDetails | posDetails | Element | |||
| notForExport | exportDetails | Element | If true, product is not allowed for export | Boolean | |
| isTemplate | exportDetails | Element | If true, exportDetails is from a template | Boolean | |
| mmGroupId | posDetails | Element | Value from mmGroup Group entity | String | |
| brandId | posDetails | Element | Value from brand Group entity | String | |
| rangeId | posDetails | Element | Value from range Group entity | String | |
| inventoryDetails | posDetails | Element | |||
| allowForLoan | inventoryDetails | Element | If true, allow product to be loaned | Boolean | |
| allowCustomer Order | inventoryDetails | Element | If true, allow product in customer order | Boolean | |
| allowPurchase Order | inventoryDetails | Element | If true, allow product in purchase order | Boolean | |
| customerOrder Only | inventoryDetails | Element | If true, allow product in customer order only | Boolean | |
| directToStore Delivery | inventoryDetails | Element | If true, product will be sent directly to store | Boolean | |
| isStocked | inventoryDetails | Element | If true, product is stocked in store | Boolean | |
| isTemplate | inventoryDetails | Element | If true, inventory details are from a template | Boolean | |
| product Dimensions | posDetails | Element | |||
| height | productDimensions | Element | Height dimension of the product | Double | |
| length | productDimensions | Element | Length dimension of the product | Double | |
| width | productDimensions | Element | Width dimension of the product | Double | |
| weight | productDimensions | Element | Weight of the product | Double | |
| sizeDescription | productDimensions | Element | Size description of the product | String | |
| isTemplate | productDimensions | Element | If true, product dimensions are from a template | Boolean | |
| warrantyDetails | posDetails | Element | |||
| warrantyPeriod Months | warrantyDetails | Element | If > 0, number of months for warranty is valid if = 0, unlimited duration | Integer | |
| localisedWarranty Information | warrantyDetails | Element | Description of the warranty | Locale String | |
| extended WarrantyAvailable | warrantyDetails | Element | If true, an extended warranty is available | Boolean | |
| warranty Information | warrantyDetails | Element | Extended description of the warranty | Locale String | |
| isTemplate | warrantyDetails | Element | If true, warranty details are from a template | Boolean | |
| seasonId | posDetails | Element | Value from Seasons entity | String | |
| standardCostPrice | posDetails | Element | Standard cost of product | Double | |
| standardMargin | posDetails | Element | Standard margin of product | Double |
Locale String
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| string | productDescription, productLong Description | Element | Locale string definition | String | 200 |
| variant | string | Attribute | |||
| language | string | Attribute | Locale language | String | |
| country | string | Attribute | Locale country | String |
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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| skuProduct | Root | Outer wrapper for the entity | String | n/a | |
| . . . | skuProduct | Element | All merchandiseProduct XML tags | ||
| colourId | skuProduct | Element | See table below | String | |
| sizeId | skuProduct | Element | See table below | String | |
| styleId | skuProduct | Element | Unique id of a styleColourSizeProduct or styleSizeProduct | String | 20 |
The styleId value links the related skuProducts as a family of products.
colourId
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| colourId | Root | Outer wrapper for the entity | String | n/a | |
| colourIdRange | colourId | Attribute | Value from the Colour Range entity | String | |
| value | colourId | Value | Value for this color choice | String |
sizeId
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| sizeId | Root | Outer wrapper for the entity | String | n/a | |
| sizeIdRange | sizeId | Attribute | Value from the Size Range entity | String | |
| value | sizeId | Value | Value for this size choice | String |
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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| StyleSizeProduct | Root | Outer wrapper for the entity | String | n/a | |
| . . . | StyleSizeProduct | Element | All merchandiseProduct XML tags | ||
| sizeRangeId | StyleSizeProduct | Element | Value from the Size Range entity | String |
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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| styleColorSizeProduct | Root | Outer wrapper for the entity | String | n/a | |
| . . . | styleColorSizeProduct | Element | All merchandiseProduct XML tags | ||
| colourRangeId | styleColorSizeProduct | Element | Value from the Colour Range entity | String | |
| sizeRangeId | styleColorSizeProduct | Element | Value from the Size Range entity | String |
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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| productPrice | Root | Outer wrapper for the entity | String | n/a | |
| productId | productPrice | Element | Id for the product to which the price is assigned | Integer | |
| locationId | productPrice | Element | If using location specific pricing, the location id for which the price is applicable | String | |
| priceGroupId | productPrice | Element | If using price groups, the price group Id for which the price is applicable | String | |
| currencyId | productPrice | Element | Currency code for the price | String | |
| startDate | productPrice | Element | Date the price is valid from, if omitted, the beginning of time | Date Time | |
| priceType | productPrice | Element | Date the price is valid to, if omitted, the end of time | Date Time | |
| priceContext | productPrice | Element | Option product ID | String | |
| price | productPrice | Element | Price in lowest denomination, i.e. pence for GBP | Integer | |
| pricingMethod | productPrice | Element | If selling by measure system, the unit of measure to sell by | String | |
| equivalentMeasure SystemId | productPrice | Element | If selling by measure system, fix to LENGTH_METRIC. Do not provide if sold by whole unit | String | |
| equivalentUnitOf MeasureId | productPrice | Element | If selling by measure system, unit price applies to. Do not provide if sold by whole unit. Default values are METRE, CENTIMETER, MILLIMETER (configurable) | String | |
| roundingRuleId | productPrice | Element | Id for the rounding rule | String |
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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| priceGroupId | Element | ||||
| variantGroup HierarchyId | priceGroupId | Attribute | The group hierarchy id of the region of the price group | String | |
| variantGroupId | priceGroupId | Attribute | The group id of the region for this price group | String | |
| variantGroupTypeId | priceGroupId | Attribute | Fixed: region | ||
| groupHierarchyId | priceGroupId | Attribute | The id of the price group | String | |
| groupTypeId | priceGroupId | Attribute | Fixed: 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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| sellingCode | Root | Outer wrapper for the entity | String | n/a | |
| regionId | sellingCode | Element | Region the selling code applies to | String | |
| sellingCode | sellingCode | Element | Barcode | String | |
| productId | sellingCode | Element | Product id that the code is linked to | String | |
| effectiveFrom | sellingCode | Element | Date the code is valid from, if omitted, the beginning of time | Date Time | |
| effectiveTo | sellingCode | Element | Date the code is valid to, if omitted, the end of time | Date Time |
regionId
| XML Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| priceGroupId | Element | ||||
| groupHierarchyId | priceGroupId | Attribute | The id of the price group | String | |
| groupTypeId | priceGroupId | Attribute | Fixed: 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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | The mmGroup key to delete | String | |
| type | entityKey | Attribute | Fixed:GroupKey | ||
| variantGroup HierarchyId | entityKey | Attribute | Region hierarchy id | String | |
| variantGroupId | entityKey | Attribute | Region id | String | |
| variantGroup TypeId | entityKey | Attribute | Fixed:region | ||
| groupHierarchyId | entityKey | Attribute | Hierarchy Id | String | |
| groupTypeId | entityKey | Attribute | fixed: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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | String | ||
| type | entityKey | Attribute | Fixed:SellingCodeKey | ||
| regionId | entityKey | Element | The region id in which the sellingCode applies | String | |
| group HierarchyId | regionId | Attribute | Region hierarchy id | String | |
| groupTypeId | regionId | Attribute | Fixed: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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | Unique id of the product to delete | String | |
| type | entityKey | Attribute | Fixed: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 Tag | Parent Element | Type | Description | Data Type | Length |
|---|---|---|---|---|---|
| entityKey | entityDelete Request | Element | Unique id of the product to delete | String | |
| type | entityKey | Attribute | Fixed:ProductPriceKey | ||
| productId | entityKey | Element | Unique id of the product | String | |
| priceGroupId | entityKey | Element | Price group key for the price to be deleted | String | |
| currencyId | entityKey | Element | Currency id for the price to be deleted | String | |
| priceType | entityKey | Element | Price type for the price to be deleted | String |