The Intershop Knowledge Portal uses only technically necessary cookies. We do not track visitors or have visitors tracked by 3rd parties.
Please find further information on privacy in the Intershop Privacy Policy and Legal Notice.
Development Documents
References
17-Jul-2026
Reference - Promotion Data - XML Import Specification
Document Properties
Kbid
4G8419
Added to KB
17-Jul-2026
Status
online
Product
  • ICM 11
  • ICM 13
Last Modified
17-Jul-2026
Public Access
everyone
Doc Type
References
Product
  • ICM 12
  • ICM 14
Document Link
https://knowledge.intershop.com/kb/4G8419

Introduction

This document describes the promotion import XML format.
The XSD schema (promotion.xsd) validates the XML content of promotion data. There can be multiple promotions available in a single XML file.

Promotion Element XML Definition

This is the root element definition of the promotion element. It shows what kind of objects are valid inside this element declaration.

<xsd:element name="promotion">
        <xsd:complexType mixed="false">
            <xsd:sequence>
                <xsd:element name="active" type="xsd:boolean"/>
                <xsd:element name="applications" type="xsd:string" maxOccurs="unbounded"/>
                <xsd:element name="effect-discount-level" type="xsd:boolean"/>
                <xsd:element name="rank" type="xsd:int" minOccurs="0"/>
                <xsd:element name="start-date" type="simpleType.DateTime"/>
                <xsd:element name="end-date" type="simpleType.DateTime"/>
                <xsd:element name="type-code" type="xsd:int"/>
                <xsd:element name="creator-id" type="xsd:string" maxOccurs="1" minOccurs="0"/>
                <xsd:element name="currency" type="simpleType.Generic.Currency.Mnemonic" maxOccurs="1" minOccurs="0"/>
                <xsd:element name="combinable" type="xsd:boolean"/>
                <xsd:element name="default-rank" type="xsd:boolean"/>
                <xsd:element name="multiple-allowed" type="xsd:boolean"/>
                <xsd:element name="available" type="xsd:boolean"/>
                <xsd:element name="stop-further-promotions" type="xsd:boolean"/>
                <!-- 2. TargetGroups -->
                <xsd:element name="target-group" type="TargetGroup" minOccurs="0"/>
                <!-- 3. Budget -->
                <xsd:element name="budget" type="Budget"/>
                <!-- 4. Code Definition -->
                <xsd:element name="promotion-code-definition" type="PromotionCodeDefinition"/>
                <!-- 5. Combination -->
                <xsd:element name="combination" type="xsd:int" minOccurs="0"/>
                <!-- 6. Rebates -->
                <xsd:element name="rebates" type="Rebate" maxOccurs="unbounded" minOccurs="0"/>
                <!-- 7. Content -->
                <xsd:element name="content" type="Content"/>
                <!-- 8. Campaign -->
                <xsd:element name="use-campaign-target-group" type="xsd:boolean"/>
                <xsd:element name="use-campaign-time-frame" type="xsd:boolean"/>
                <xsd:element name="campaign" type="Campaign" minOccurs="0" maxOccurs="1"/>
                <!-- 9. Custom Attributes -->
                <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0" maxOccurs="1"/>
                <!-- Attachments -->
                <xsd:element name="attachments" type="AdditionalContent" maxOccurs="unbounded" minOccurs="0"/>
            </xsd:sequence>
            <xsd:attribute name="id" type="simpleType.Generic.String.256" use="required"/>
        </xsd:complexType>
</xsd:element>

Simple Elements of Promotion

Name

Type

Description

active

boolean

Specifies whether the promotion is enabled or disabled.

applications

string

Name of the application type that can use the promotion. Each assigned application type must have its own element.

effect-discount-level

boolean

true if the calculation should affect the discounted price; false for the base price.

rank

int

Priority of the promotion if the default priority should not be used.

start-date

simpleType.DateTime (string)

Date from which the discount promotion can be applied.
Must follow the pattern “YYYY-MM-dd(Thh:MM(:ss)(Z|(+-)hh:MM))” or “YYYYMMdd(ThhMM(ss)(Z|(+-)hhMM))”.

end-date

simpleType.DateTime (string)

Date until when the discount promotion can be used.
Must follow the pattern “YYYY-MM-dd(Thh:MM(:ss)(Z|(+-)hh:MM))” or “YYYYMMdd(ThhMM(ss)(Z|(+-)hhMM))”.

type-code

int

Not used anymore. Use the default value of 0.

creator-id

string

ID of the user who created the promotion.
Relates to BasicProfile.UUID

currency

simpleType.Generic.Currency.Mnemonic (string)

Three letter currency code for which the promotion is applicable, e.g., USD.

combinable

boolean

If true, the promotion can be combined with other promotions.
In case the promotion should only be combinable with certain promotion types, they need to be specified as a custom attribute. See the example section for details. More information is available at Concept - Promotion Priority and Combination | Promotion Combination.

default-rank

boolean

If true, the default priority for the Rebate Action is used.

multiple-allowed

boolean

If true, other promotions are allowed together with this one at a product.

available

boolean

Specifies whether the promotion is currently available for use.

stop-further-promotions

boolean

If true, promotions with a lower priority are stopped.

combination

int

An aggregation of combinable and multiple- allowed. It is calculated during import and can be set to an arbitrary value.

use-campaign-target-group

boolean

If true, the target group of the assigned campaign is used.

use-campaign-time-frame

boolean

If true, the start and end date of the assigned campaign is used.

id (attribute)

simpleType.Generic.String.256 (string)

ID of the promotion. Limited to 256 characters.

Complex Type TargetGroup

The TargetGroup defines any number of UserGroupRef, which holds a reference to customer segments that are assigned to the promotion.

<xsd:complexType name="TargetGroup">
        <xsd:sequence>
            <xsd:element name="usergroups" type="UserGroupRef" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="UserGroupRef">
        <xsd:attribute name="id" type="xsd:string" use="required"/>
        <xsd:attribute name="domain" type="xsd:string" use="required"/>
</xsd:complexType>

Name

Type

Description

id

string

The ID of the customer segment, e.g., “IG_NewUsers“, or the campaign user group, e.g., “CAMPAIGN_0PkKDgBjE4IAAAFAe.0dFJqS.”, which consists of the prefix “CAMPAIGN_“ followed by the campaign UUID.

domain

string

The domain to which the user group belongs. It is the Anonymous domain for customer segments, e.g., inSPIRED-inTRONICS-Anonymous. When using the campaign target group, it is the channel domain, e.g., "inSPIRED-inTRONICS".

Complex Type Budget

<xsd:complexType name="Budget">
        <xsd:sequence>
            <xsd:element name="budget-amount" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="budget-currency" type="simpleType.Generic.Currency.Mnemonic" minOccurs="0"/>
            <xsd:element name="budget-id" type="xsd:string" minOccurs="0"/>
            <xsd:element name="budget-notification-threshold" type="xsd:double" minOccurs="0"/>
            <xsd:element name="budget-notification-email" type="xsd:string" minOccurs="0"/>
            <xsd:element name="send-mail-if-budget-reached" type="xsd:boolean" minOccurs="0"/>
            <xsd:element name="send-mail-if-threshold-reached" type="xsd:boolean" minOccurs="0"/>
            <xsd:element name="disable-by-budget" type="xsd:boolean" minOccurs="0"/>
            <xsd:element name="unlimited" type="xsd:boolean"/>
            <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
</xsd:complexType>

Name

Type

Description

budget-amount

decimal

Defines the promotion's available budget.

budget-currency

simpleType.Generic.Currency.Mnemonic (string)

Three letter currency code, e.g., USD. If budget-amount is used without this element, the promotion's currency is used.

budget-id

string

UUID of the budget. Typically not used when importing new promotions.

budget-notification-threshold

double

Value from 0 to 100. Defines the percentage at which a notification is sent to the address defined in budget-notification-email upon reaching the threshold.

budget-notification-email

string

E-mail address to which budget notifications are sent.

send-mail-if-budget-reached

boolean

If true, an e-mail is sent to the budget-notification-email when the budget has reached the budget-amount.

send-mail-if-threshold-reached

boolean

If true, an e-mail is sent to the budget-notification-email when the budget has reached the budget-notification-threshold.

disable-by-budget

boolean

If true, the promotion will be disabled when budget-amount has been reached.

unlimited

boolean

If true, the promotion has no budget.

Complex Type PromotionCodeDefinition

<xsd:complexType name="PromotionCodeDefinition">
        <xsd:sequence>
            <xsd:element name="promotion-code-required" type="xsd:boolean"/>
            <xsd:element name="single-code" type="xsd:string"/>
            <xsd:element name="single-code-total" type="xsd:int"/>
            <xsd:element name="unlimited" type="xsd:boolean"/>
            <xsd:element name="code-customer-unlimited" type="xsd:boolean"/>
            <xsd:element name="use-promotion-code-groups" type="xsd:boolean"/>
            <xsd:element name="promotion-code-groups" type="PromotionCodeGroups" maxOccurs="1" minOccurs="0"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="PromotionCodeGroups">
        <xsd:sequence>
            <xsd:element name="code-group-id" type="simpleType.Generic.String.256" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
</xsd:complexType>

PromotionCodeDefinition:

Name

Type

Description

promotion-code-required

boolean

If true, a promotion code is required to apply the promotion.

single-code

string

Defines a single promotion code that can be used for this promotion. Only relevant if use-promotion-code-groups is false.

single-code-total

int

Defines how often the single-code can be used in total across customers.

unlimited

boolean

If true, the promotion code can be used any number of times. If false, it is recommended to set single-code-total to Integer Max Value.

code-customer-unlimited

boolean

If true, one customer can use the promotion code any number of times, else only once.

use-promotion-code-groups

boolean

If true, promotion codes from the given promotion code groups will be used. Each promotion code group defines the setting for their own promotion codes.

PromotionCodeGroups:

Name

Type

Description

code-group-id

simpleType.Generic.String.256 (string)

ID of the promotion code group. Limited to 256 characters.

Complex Type Rebate

<xsd:complexType name="Rebate">
        <xsd:sequence>
            <xsd:element name="currency" type="simpleType.Generic.Currency.Mnemonic" minOccurs="0"/>
            <xsd:element name="type-code" type="xsd:int"/>
            <xsd:element name="classification-type-code" type="xsd:int"/>
            <xsd:element name="position" type="xsd:int"/>
            <xsd:element name="condition-override-application-exclusion" type="xsd:boolean" minOccurs="0"/>
            <xsd:element name="action-override-application-exclusion" type="xsd:boolean" minOccurs="0"/>
            <xsd:element name="condition" type="Condition" maxOccurs="1" minOccurs="0"/>
            <xsd:element name="actions" type="Action" maxOccurs="unbounded" minOccurs="0"/>
            <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Condition">
        <xsd:sequence>
            <xsd:element name="condition-descriptor-id" type="xsd:string"/>
            <xsd:element name="position" type="xsd:int"/>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="type-code" type="xsd:int"/>
            <xsd:element name="sub-conditions" type="Condition" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="inclusions-exclusions" type="InclusionsExclusions" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Action">
        <xsd:sequence>
            <xsd:element name="action-descriptor-id" type="xsd:string"/>
            <xsd:element name="position" type="xsd:int"/>
            <xsd:element name="classification" type="xsd:int"/>
            <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="inclusions-exclusions" type="InclusionsExclusions" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="InclusionsExclusions">
        <xsd:sequence>
            <xsd:element name="scope" type="simpleType.FilterObjectScope"/>
            <xsd:element name="category-inclusion" type="CatalogRef" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="product-inclusion" type="CatalogRef" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="category-exclusion" type="CatalogRef" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="product-exclusion" type="CatalogRef" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:simpleType name="simpleType.FilterObjectScope">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="NONE" />
            <xsd:enumeration value="ACTION" />
            <xsd:enumeration value="CONDITION" />
            <xsd:enumeration value="CHANNEL" />
        </xsd:restriction>
</xsd:simpleType>
    
<xsd:complexType name="CatalogRef">
        <xsd:attribute name="id" type="xsd:string" use="required"/>
        <xsd:attribute name="domain" type="xsd:string" use="required"/>
</xsd:complexType>

Name

Type

Description

currency

simpleType.Generic.Currency.Mnemonic

(Optional) Currency mnemonic code associated with the rebate (e.g., USD, EUR)

type-code

int

Reference: Reference - Type Codes

classification-type-code

int

Divides between promotion codes and standard rebates

position

int

Defines the sort/evaluation order of this rebate among multiple rebates

condition-override-application-exclusion

boolean

(Optional) If true, overrides and prevents the application of condition-level exclusions

action-override-application-exclusion

boolean

(Optional) If true, overrides and prevents the application of action-level exclusions

condition

Condition

(Optional) The condition that must be met for the rebate to be applied. The conditions are structured in a tree-like manner and may contain various sub-conditions linked by AND and OR. At most one (compound) condition per rebate.

actions

Action

(Optional, repeatable) One or more actions to be executed when the rebate condition is satisfied

It is not possible to configure a rebate rule with multiple actions, e.g., providing an item percentage off discount and a free shipping discount by entering one promotion code. Currently only the first action is considered.

To configure such multiple actions, multiple promotions need to be combined with each other.

custom-attributes

complexType.CustomAttributes

(Optional) A set of custom key-value attributes for extensibility.

condition / condition-descriptor-id

string

Description ID of the condition, e.g., OperatorAndCondition or ItemInclusionsExclusionsCondition

condition / position

int

Defines the sort/evaluation order of this condition among multiple (sub)conditions

condition / name

string

Name of the condition. Not used by ICM standard, but may be used by custom code.

condition / type-code

int

Type code of the condition:

0 - default condition, no operator* (e.g., ItemInclusionsExclusionsCondition)
1 - operator* with no group
3 - operator* within explicitly grouped conditions
5 - operator* of a type group (implicitly grouped conditions combined with AND)

*operators are OperatorAndCondition and OperatorOrCondition

condition / sub-conditions

Condition

(Optional) List of sub-conditions

condition / custom-attributes

complexType.CustomAttributes

(Optional) A set of custom key-value attributes for extensibility

condition / inclusions-exclusions

InclusionsExclusions

(Optional) Product and Category Inclusions/Exclusions of a condition

action / action-descriptor-id

string

Description ID of the action, e.g., ItemPercentageOffDiscount or ItemInclusionsExclusionsCondition

action / position

int

Defines the sort/evaluation order of this action among multiple actions

action / classification

int

Defines the action classification. Default value is 0.

action / custom-attributes

complexType.CustomAttributes

(Optional) A set of custom key-value attributes for extensibility

action / inclusions-exclusions

InclusionsExclusions

(Optional) Product and Category Inclusions/Exclusions of an action

InclusionsExclusions / scope

simpleType.FilterObjectScope

Scope of the inclusion/exclusion. Could be either "CONDITION" (for an inclusion/exclusion that is part of a condition) or "ACTION" (for an inclusion/exclusion that is part of an action).

InclusionsExclusions / category-inclusion

CatalogRef

(Optional, repeatable) List of Category Inclusions

InclusionsExclusions / product-inclusion

CatalogRef

(Optional, repeatable) List of Product Inclusions

InclusionsExclusions / category-exclusion

CatalogRef

(Optional, repeatable) List of Category Exclusions

InclusionsExclusions / product-exclusion

CatalogRef

(Optional, repeatable) List of Product Exclusions

CatalogRef / id

String

ID of a product or catalog, e.g., “832”

CatalogRef / domain

String

Domain of the product or catalog, e.g., "inSPIRED-inTRONICS-Cameras-Camcorders"

Complex Type Content

<xsd:complexType name="Content">
        <xsd:sequence>
            <xsd:element name="content-activation-type" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>The type of the promotion content activation. <ul>
                        <li>ContentActivationTypes.PROMOTIONDATE: Use promotion start and end
                            date</li>
                        <li>ContentActivationTypes.DEFINEDDATE: Activate content at the defined
                            start</li>
                        <li>and end time ContentActivationTypes.CONTENTDATE: Use the publishing
                            start and end date of content</li>
                    </ul>
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="content-activation-start-date" type="simpleType.DateTime" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="content-activation-end-date" type="simpleType.DateTime" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="content-assignments" type="ContentAssignment" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ContentAssignment">
        <xsd:sequence>
            <xsd:element name="page-variant" type="PageletReferenceType" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="component" type="PageletReferenceType" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="PageletReferenceType">
        <xsd:attribute name="id" type="simpleType.Generic.String.256" use="required"/>
		<xsd:attribute name="domain" type="simpleType.Generic.String.256" use="required"/>
</xsd:complexType> 

Name

Type

Description

content-activation-type

int

Defines how the promotion content is activated. Allowed values: ContentActivationTypes.PROMOTIONDATE – use the promotion's start and end date; ContentActivationTypes.DEFINEDDATE – activate content at the explicitly defined start and end time; ContentActivationTypes.CONTENTDATE – use the publishing start and end date of the content.

content-activation-start-date

simpleType.DateTime

(Optional) The start date and time for content activation. Relevant when content-activation-type is set to DEFINEDDATE.

content-activation-end-date

simpleType.DateTime

(Optional) The end date and time for content activation. Relevant when content-activation-type is set to DEFINEDDATE.

content-assignments

ContentAssignment

(Optional) Assigns specific content items (e.g., banners, creatives) to this promotion content configuration.

ContentAssignment / page-variant

PageletReferenceType

(Optional, repeatable) List of assigned page variants,
e.g., <page-variant id="pg_promo_banner" domain="inSPIRED-inTRONICS"/>

ContentAssignment / component

PageletReferenceType

(Optional, repeatable) List of assigned components,
e.g., <component id="cmp_promoMessage" domain="inSPIRED-inTRONICS"/>

PageletReferenceType / id

simpleType.Generic.String.256

ID of the pagelet reference, e.g., “cmp_promoMessage". Limited to 256 characters.

PageletReferenceType / domain

simpleType.Generic.String.256

Domain of the pagelet reference, e.g., "inSPIRED-inTRONICS". Limited to 256 characters.

Complex Type Campaign

<xsd:complexType name="Campaign">
        <xsd:sequence>
            <xsd:element name="campaign-target-group" type="simpleType.Generic.String.256"/>
            <xsd:element name="start-date" type="simpleType.DateTime"/>
            <xsd:element name="end-date" type="simpleType.DateTime"/>
            <xsd:element name="enabled" type="xsd:boolean"/>
        </xsd:sequence>
</xsd:complexType>

Name

Type

Description

campaign-target-group

simpleType.Generic.String.256

The identifier of the target group associated with this campaign. Maximum length: 256 characters.

start-date

simpleType.DateTime

The date and time when the campaign becomes active.

end-date

simpleType.DateTime

The date and time when the campaign expires.

enabled

boolean

Indicates whether the campaign is active (true) or inactive (false).

Complex Type AdditionalContent

<xsd:complexType name="AdditionalContent">
        <xsd:sequence>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="description" type="xsd:string"/>
            <xsd:element name="value" type="xsd:string"/>
            <xsd:element name="type" type="xsd:string"/>
            <xsd:element name="key" type="xsd:string"/>
        </xsd:sequence>
</xsd:complexType>

Name

Type

Description

name

string

The name of the additional content entry

description

string

A descriptive text explaining the purpose or content of this entry

value

string

The value associated with this additional content entry

type

string

The type classification of this additional content entry

key

string

A unique key identifying this additional content entry

Important Custom Attributes

Name

Type

Localized

Description

displayName

string

yes

Name of the promotion shown in ICM

description

string

yes

Description of the promotion shown in ICM

Title

text

yes

Title that can be displayed in the storefront.
Supports HTML elements.*

LegalContentMessage

text

yes

Legal information that can be displayed in the storefront.
Supports HTML elements.*

* Because XML and HTML use the same structure, the HTML elements need to be encoded, i.e, characters such as < and > to &lt; and &gt;. Characters that need to be encoded in HTML, for example, & or the German umlaut ä, must be double encoded to &amp;amp; or &amp;auml;.

Full XSD Schema

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
    xmlns:jxb="https://jakarta.ee/xml/ns/jaxb"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    elementFormDefault="qualified" jxb:version="3.0">

    <xsd:include schemaLocation="core.xsd"/>
    
    <!-- Promotion -->
    <xsd:element name="promotion">
        <xsd:complexType mixed="false">
            <xsd:annotation>
                <xsd:documentation>Promotions are necessary to administer rebate and - maybe later -
                    web content activities in a useful manner. At the promotion level, a promotion name
                    and description can be defined, a targetgroup can be selected, start and end dates
                    can be set, the promotion can be enabled or disabled. Within the time frame that has
                    been defined by a promotion, all descending rebates are valid, although a rebate is
                    not bound to exactly the same start and end.</xsd:documentation>
            </xsd:annotation>
            <xsd:sequence>
                <xsd:element name="active" type="xsd:boolean"/>
                <xsd:element name="applications" type="xsd:string" maxOccurs="unbounded"/>
                <xsd:element name="effect-discount-level" type="xsd:boolean"/>
                <xsd:element name="rank" type="xsd:int" minOccurs="0"/>
                <xsd:element name="start-date" type="simpleType.DateTime"/>
                <xsd:element name="end-date" type="simpleType.DateTime"/>
                <xsd:element name="type-code" type="xsd:int"/>
                <xsd:element name="creator-id" type="xsd:string" maxOccurs="1" minOccurs="0"/>
                <xsd:element name="currency" type="simpleType.Generic.Currency.Mnemonic" maxOccurs="1" minOccurs="0"/>
                <xsd:element name="combinable" type="xsd:boolean"/>
                <xsd:element name="default-rank" type="xsd:boolean"/>
                <xsd:element name="multiple-allowed" type="xsd:boolean"/>
                <xsd:element name="available" type="xsd:boolean"/>
                <xsd:element name="stop-further-promotions" type="xsd:boolean"/>

                <!-- 2. TargetGroups -->
                <xsd:element name="target-group" type="TargetGroup" minOccurs="0"/>
                
                <!-- 3. Budget -->
                <xsd:element name="budget" type="Budget"/>
                
                <!-- 4. Code Definition -->
                <xsd:element name="promotion-code-definition" type="PromotionCodeDefinition"/>
                
                <!-- 5. Combination -->
                <xsd:element name="combination" type="xsd:int" minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>combinable with the action types listed in the
                            multiple-string attribute CombinationTypes.<br/> - bit 0 = 1: promotion is
                            combinable; = 0 not combinable<br/> - bit 1 = 1: other promotions along with
                            this one affecting a product are allowed; = 0: none of them
                            allowed</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                
                <!-- 6. Rebates -->
                <xsd:element name="rebates" type="Rebate" maxOccurs="unbounded" minOccurs="0"/>
                
                <!-- 7. Content -->
                <xsd:element name="content" type="Content"/>
                
                <!-- 8. Campaign -->
                <xsd:element name="use-campaign-target-group" type="xsd:boolean"/>
                <xsd:element name="use-campaign-time-frame" type="xsd:boolean"/>
                <xsd:element name="campaign" type="Campaign" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Gets the campaign the promotion is assigned
                            to.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                
                <!-- 9. Custom Attributes -->
                <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0"
                maxOccurs="1"/>

                <!-- Attachments -->
                <xsd:element name="attachments" type="AdditionalContent" maxOccurs="unbounded"
                    minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>Gets the attachements.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                
            </xsd:sequence>
            <!-- foreign key -->
            <xsd:attribute name="id" type="simpleType.Generic.String.256" use="required"/>
            
            <!-- for later usage:
            <xsd:attribute name="import-mode" type="simpleType.ImportMode"/>
            -->
        </xsd:complexType>
    </xsd:element>
	
    <!-- Content -->    
    <xsd:complexType name="Content">
        <xsd:sequence>
            <xsd:element name="content-activation-type" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>The type of the promotion content activation. <ul>
                        <li>ContentActivationTypes.PROMOTIONDATE: Use promotion start and end
                            date</li>
                        <li>ContentActivationTypes.DEFINEDDATE: Activate content at the defined
                            start</li>
                        <li>and end time ContentActivationTypes.CONTENTDATE: Use the publishing
                            start and end date of content</li>
                    </ul>
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="content-activation-start-date" type="simpleType.DateTime" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="content-activation-end-date" type="simpleType.DateTime" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="content-assignments" type="ContentAssignment" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <!-- configuration of promotion codes/ code groups -->
    <xsd:complexType name="PromotionCodeDefinition">
        <xsd:sequence>
            <xsd:element name="promotion-code-required" type="xsd:boolean"/>
            <xsd:element name="single-code" type="xsd:string"/>
            <xsd:element name="single-code-total" type="xsd:int"/>
            <xsd:element name="unlimited" type="xsd:boolean"/>
            <xsd:element name="code-customer-unlimited" type="xsd:boolean"/>
            <xsd:element name="use-promotion-code-groups" type="xsd:boolean"/>
            <xsd:element name="promotion-code-groups" type="PromotionCodeGroups" maxOccurs="1" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <!-- PromotionCodeGroups -->
    <xsd:complexType name="PromotionCodeGroups">
        <xsd:sequence>
            <xsd:element name="code-group-id" type="simpleType.Generic.String.256" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <!-- Campaign -->
    <xsd:complexType name="Campaign">
        <xsd:annotation>
            <xsd:documentation>A campaign defines promotions and content to defined target groups in
                a time frame.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="campaign-target-group" type="simpleType.Generic.String.256"/>
            <xsd:element name="start-date" type="simpleType.DateTime"/>
            <xsd:element name="end-date" type="simpleType.DateTime"/>
            <xsd:element name="enabled" type="xsd:boolean">
                <xsd:annotation>
                    <xsd:documentation>Gets flag for an active campaign.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <!-- TargetGroup Assignment -->
    <xsd:complexType name="TargetGroup">
        <xsd:annotation>
            <xsd:documentation>References assigned usergroups.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="usergroups" type="UserGroupRef" minOccurs="0"
                maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="UserGroupRef">
        <xsd:attribute name="id" type="xsd:string" use="required"/>
        <xsd:attribute name="domain" type="xsd:string" use="required"/>
    </xsd:complexType>

    <!-- UserGroup -->
    <xsd:complexType name="UserGroup">
        <xsd:annotation>
            <xsd:documentation>Defines a user group.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="fixed" type="xsd:boolean">
                <xsd:annotation>
                    <xsd:documentation>Is fixed?</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="name" type="complexType.Generic.Attribute.String"/>
            <xsd:element name="description" type="complexType.Generic.Attribute.String"/>
            <xsd:element name="type-code" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>Gets the type code.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="simpleType.Generic.String.256" use="required"/>
    </xsd:complexType>

    <!-- Rebate -->
    <xsd:complexType name="Rebate">
        <xsd:annotation>
            <xsd:documentation>Defines a rebate.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="currency" type="simpleType.Generic.Currency.Mnemonic" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Gets the currency to which the rebate
                        applies.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="type-code" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>Gets the type code.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="classification-type-code" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>Gets the classification type code. Divides between coupons
                        and standard rebates.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="position" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>Gets the position in rebate list.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="condition-override-application-exclusion" type="xsd:boolean" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Optional field, default is false.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="action-override-application-exclusion" type="xsd:boolean" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Optional field, default is false.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="condition" type="Condition" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Gets the root condition of the condition
                        tree.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="actions" type="Action" maxOccurs="unbounded" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Gets the actions.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0"
                maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>


    <!-- Condition -->
    <xsd:complexType name="Condition">
        <xsd:annotation>
            <xsd:documentation>Holds the data of a condition.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="condition-descriptor-id" type="xsd:string">
                <xsd:annotation>
                    <xsd:documentation>Gets the condition descriptor ID.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="position" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>Gets the position under a parent
                        condition.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="type-code" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>Gets the type code of the condition.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="sub-conditions" type="Condition" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>Gets the subconditions in the condition
                        tree.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0"
                maxOccurs="1"/>
            <xsd:element name="inclusions-exclusions" type="InclusionsExclusions" minOccurs="0"
                maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <!-- Action -->
    <xsd:complexType name="Action">
        <xsd:annotation>
            <xsd:documentation>Holds the data of an action.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="action-descriptor-id" type="xsd:string">
                <xsd:annotation>
                    <xsd:documentation>Gets the action descriptor ID.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="position" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>Gets the position under a parent
                        condition.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="classification" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>Gets the classification to determine
                        priority.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0"
                maxOccurs="1"/>
            <xsd:element name="inclusions-exclusions" type="InclusionsExclusions" minOccurs="0"
                maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <!-- Inclusions and Exclusions -->
    <xsd:complexType name="InclusionsExclusions">
        <xsd:sequence>
            <xsd:element name="scope" type="simpleType.FilterObjectScope"/>
            <xsd:element name="category-inclusion" type="CatalogRef" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="product-inclusion" type="CatalogRef" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="category-exclusion" type="CatalogRef" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="product-exclusion" type="CatalogRef" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="CatalogRef">
        <xsd:attribute name="id" type="xsd:string" use="required"/>
        <xsd:attribute name="domain" type="xsd:string" use="required"/>
    </xsd:complexType>
    
    <xsd:simpleType name="simpleType.FilterObjectScope">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="NONE" />
            <xsd:enumeration value="ACTION" />
            <xsd:enumeration value="CONDITION" />
            <xsd:enumeration value="CHANNEL" />
        </xsd:restriction>
    </xsd:simpleType>
    
    <!-- Budget -->
    <xsd:complexType name="Budget">
        <xsd:annotation>
            <xsd:documentation>This class models a budget that can be defined upon a given account
                (within an optional scope). A budget basically provides a time based view upon the
                underlying account that allows to track account spendings in a certain time frame.
                Budgets support two different approaches for defining budget time frames. The simple
                approach is to setup reoccuring budgets that are valid for a fixed period of time
                (e.g., a week, a month or a quarter - the budget amount would be the same for each
                week, month of quarter). The second approach allows the definition of budget
                schedules. A budget schedule supports any number of arbitrary time frames - each
                having a possibly different budget amount.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="budget-amount" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="budget-currency" type="simpleType.Generic.Currency.Mnemonic" minOccurs="0"/>
            <xsd:element name="budget-id" type="xsd:string" minOccurs="0"/>
            <xsd:element name="budget-notification-threshold" type="xsd:double" minOccurs="0"/>
            <xsd:element name="budget-notification-email" type="xsd:string" minOccurs="0"/>
            <xsd:element name="send-mail-if-budget-reached" type="xsd:boolean" minOccurs="0"/>
            <xsd:element name="send-mail-if-threshold-reached" type="xsd:boolean" minOccurs="0"/>
            <xsd:element name="disable-by-budget" type="xsd:boolean" minOccurs="0"/>
            <xsd:element name="unlimited" type="xsd:boolean"/>
            <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <!-- AdditionalContent -->
    <xsd:complexType name="AdditionalContent">
        <xsd:annotation>
            <xsd:documentation>This class implements the methods for AdditionalContent as defined in
                the object model. This class is a wrapper class for additional content that is bind
                to an extensible object by custom attributes. The appropriate custom attributes are
                filtered by special name prefixes.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="description" type="xsd:string"/>
            <xsd:element name="value" type="xsd:string">
                <xsd:annotation>
                    <xsd:documentation>Gets the value.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="type" type="xsd:string">
                <xsd:annotation>
                    <xsd:documentation>Gets the type.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="key" type="xsd:string">
                <xsd:annotation>
                    <xsd:documentation>Gets the key.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <!-- ContentAssignment -->
    <xsd:complexType name="ContentAssignment">
        <xsd:annotation>
            <xsd:documentation>References assigned content.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="page-variant" type="PageletReferenceType" minOccurs="0"
                maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>Gets the page variants.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            
            <xsd:element name="component" type="PageletReferenceType" minOccurs="0"
                maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>Gets the components.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <!-- PageletReferenceType -->
    <xsd:complexType name="PageletReferenceType">
        <xsd:attribute name="id" type="simpleType.Generic.String.256" use="required"/>
		<xsd:attribute name="domain" type="simpleType.Generic.String.256" use="required"/>
    </xsd:complexType>  
    
    <!-- PromotionCode -->
    <!--
    <xsd:complexType name="PromotionCode">
        <xsd:sequence>
            <xsd:element name="secured" type="xsd:boolean"/>
            <xsd:element name="status" type="xsd:int">
                <xsd:annotation>
                    <xsd:documentation>Code Status an integer, identifying one of the stati: <ul>
                        <li>0 (not redeemed)</li>
                        <li>1 (full redeemed)</li>
                        <li>2 (deactivated)</li>
                    </ul>
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="redemption-date" type="simpleType.DateTime"/>
            <xsd:element name="order-numbers" type="complexType.Generic.Attribute.String"
                minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>The order numbers where the promotion code was
                        used.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="custom-attributes" type="complexType.CustomAttributes" minOccurs="0"
                maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="code" type="simpleType.Generic.String.256" use="required"/>
    </xsd:complexType>
    -->
    
</xsd:schema>

Example Custom Attribute For Limited Combinability

This example shows how to specify the promotion types this promotion can be combined with. It contains all available promotion types.
The combinable element of the promotion needs to be set to true.

<custom-attributes>
			<custom-attribute name="CombinationTypes" ns2:dt="string">
				<value>FreeGiftDiscount</value>
				<value>HiddenGiftDiscount</value>
				<value>CashbackDiscount</value>
				<value>ItemPercentageOffDiscount</value>
				<value>ItemTargetPriceDiscount</value>
				<value>ItemValueOffDiscount</value>
				<value>OrderPercentageOffDiscount</value>
				<value>OrderValueOffDiscount</value>
				<value>ShippingPercentageOffDiscount</value>
				<value>ShippingTargetPriceDiscount</value>
				<value>ShippingValueOffDiscount</value>
			</custom-attribute>
</custom-attributes>
Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Website, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Home
Knowledge Base
User Manuals
Product Releases
Highlight Matches
Set Options
Log on to continue
This Knowledge Base document is reserved for registered customers.
Log on with your Intershop Entra ID to continue.
Write an email to supportadmin@intershop.de if you experience login issues,
or if you want to register as customer.