Importing/Exporting Rank and Exclusive Attributes

The promotion attributes Rank and Exclusive are supported in the promotion .xsd.

The promotion.xsd schema is now extended as follows:


<!-- shipping promotion-->
<xsd:complexType name="ShippingPromotionRule" mixed="false">
	<xsd:sequence> 
		<xsd:element
			name="qualifying-products" 
			type="ProductSpecification" 
			minOccurs="0"
			maxOccurs="1" />
		<!-- new element-->
 		<xsd:element 
 			name="shipping-methods"
 			type="PromotedShippingMethods" 
 			minOccurs="1" 
 			maxOccurs="1"/>
		<xsd:element 
			name="discounts" 
			type="TieredShippingDiscounts" />
		<xsd:element 
			name="max-applications" 
			type="MaxApplications" 
			minOccurs="0" 
			maxOccurs="1" /> 
 	</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="ShippingPromotionConditionType">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="shipment-total" />
		<xsd:enumeration value="product-quantity" />
		<!-- new element-->
 	</xsd:restriction>
</xsd:simpleType>

See the Promotion.xsd for further details on the input/output format.

Note: Though the PromotionExclusivity setting is mandatory, the xsd element can't be declared as mandatory for technical reasons. Thus, a default value is set for a new promotion in case the element isn't specified. This default value is no.

The promotion.xsd supports the free discount type.

The complex type BogoProductDiscount includes the discount type.


<xsd:complexType name="BogoProductDiscount" mixed="false">
	<xsd:sequence>
		<xsd:element 
			name="threshold"
			type="Threshold" 
			minOccurs="1" 
			maxOccurs="1" />
	 	<xsd:choice minOccurs="1" maxOccurs="1">
			<xsd:element 
				name="fixed-price" 
				type="Amount" />
			<xsd:element 
				name="percentage" 
				type="Percentage" />
			<xsd:element 
				name="amount" 
				type="Amount" />
			<xsd:element 
				name="free" 
				type="EmptyElement"/> 
			<!-- new element -->
 		</xsd:choice>
 		<xsd:element 
 			name="eligible-quantity" 
 			type="Quantity" 
 			minOccurs="1" 
 			maxOccurs="1"/>
	</xsd:sequence>
</xsd:complexType>

The complex type TieredShippingDiscount also includes the new discount type.


<xsd:complexType name="TieredShippingDiscount" mixed="false">
	<xsd:sequence>
		<xsd:element 
			name="threshold"
			type="Threshold" 
			minOccurs="1" 
			maxOccurs="1" />
 		<xsd:choice minOccurs="1" maxOccurs="1">
 			<xsd:element 
 				name="fixed-price" 
 				type="Amount" />
			<xsd:element 
				name="percentage" 
				type="Percentage" />
			<xsd:element 
				name="amount" 
				type="Amount" />
			<xsd:element 
				name="free" 
				type="EmptyElement"/> 
			<!-- new element -->
		</xsd:choice>
	</xsd:sequence>
</xsd:complexType>

The element free is an empty XML element.

Example:


 ...

<discounts condition-type="product-quantity"> 
	<discount> 
		<threshold>2.0</threshold> 
		<free/>
	</discount>
</discounts>