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.
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>
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 |
|
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. |
end-date | simpleType.DateTime (string) | Date until when the discount promotion can be used. |
type-code | int | Not used anymore. Use the default value of 0. |
creator-id | string | ID of the user who created the promotion. |
currency | simpleType.Generic.Currency.Mnemonic (string) | Three letter currency code for which the promotion is applicable, e.g., USD. |
combinable | boolean | If |
default-rank | boolean | If |
multiple-allowed | boolean | If |
available | boolean | Specifies whether the promotion is currently available for use. |
stop-further-promotions | boolean | If |
combination | int | An aggregation of |
use-campaign-target-group | boolean | If |
use-campaign-time-frame | boolean | If |
id (attribute) | simpleType.Generic.String.256 (string) | ID of the promotion. Limited to 256 characters. |
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". |
<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-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 | string | E-mail address to which budget notifications are sent. |
send-mail-if-budget-reached | boolean | If |
send-mail-if-threshold-reached | boolean | If |
disable-by-budget | boolean | If |
unlimited | boolean | If |
<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 |
single-code | string | Defines a single promotion code that can be used for this promotion. Only relevant if |
single-code-total | int | Defines how often the |
unlimited | boolean | If |
code-customer-unlimited | boolean | If |
use-promotion-code-groups | boolean | If |
PromotionCodeGroups:
Name | Type | Description |
|---|---|---|
code-group-id | simpleType.Generic.String.256 (string) | ID of the promotion code group. Limited to 256 characters. |
<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 |
action-override-application-exclusion | boolean | (Optional) If |
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) *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" |
<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, |
ContentAssignment / component | PageletReferenceType | (Optional, repeatable) List of assigned components, |
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. |
<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 ( |
<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 |
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. |
LegalContentMessage | text | yes | Legal information that can be displayed in the storefront. |
* Because XML and HTML use the same structure, the HTML elements need to be encoded, i.e, characters such as < and > to < and >. Characters that need to be encoded in HTML, for example, & or the German umlaut ä, must be double encoded to &amp; or &auml;.
<?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>
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>
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.