<?xml version="1.0" encoding="UTF-8"?>
<!--
 - UPgates system
 - Copyright (c) 2010 EVici webdesign s.r.o.
 - https://www.upgates.com
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

	<xs:include schemaLocation="_types.xsd" />

	<xs:element name="ORDERS">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ORDER" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:all>
							<xs:element name="HEADER">
								<xs:complexType>
									<xs:all>
										<xs:element name="CODE" type="xs:string"/>
										<xs:element name="STATUS" type="xs:string" minOccurs="0"/>

										<xs:element name="PAID" minOccurs="0">
											<xs:complexType>
												<xs:all>
													<xs:element name="PAID_YN" type="xs:string"/>
													<xs:element name="PAID_DATE" type="xs:string"/>
												</xs:all>
											</xs:complexType>
										</xs:element>

										<xs:element name="INVOICE_NUMBER" type="xs:string" minOccurs="0"/>
										<xs:element name="CUSTOMER_NOTE" type="xs:string" minOccurs="0"/>
										<xs:element name="INTERNAL_NOTE" type="xs:string" minOccurs="0"/>

										<xs:element name="CURRENCY" type="xs:string" minOccurs="0"/>
										<xs:element name="TOTAL_PRICE_WITH_VAT" type="xs:string" minOccurs="0"/>
										<xs:element name="TOTAL_EARNINGS" type="xs:string" minOccurs="0"/>
										<xs:element name="TRACING_CODE" type="xs:string" minOccurs="0"/>
										<xs:element name="CREATED_AT" type="dateTimeType" minOccurs="0"/>
										<xs:element name="UPDATED_AT" type="dateTimeType" minOccurs="0"/>

									</xs:all>
								</xs:complexType>
							</xs:element>

							<xs:element name="CUSTOMER" minOccurs="0">
								<xs:complexType>
									<xs:all>

										<xs:element name="CUSTOMER_ID" type="nonNegativeIntegerType" minOccurs="0"/>
										<xs:element name="CUSTOMER_CODE" type="xs:string" minOccurs="0"/>
										<xs:element name="FIRSTNAME" type="xs:string" minOccurs="0"/>
										<xs:element name="SURNAME" type="xs:string" minOccurs="0"/>

										<xs:element name="COMMUNICATION" minOccurs="0">
											<xs:complexType>
												<xs:all>
													<xs:element name="PHONE" type="xs:string" minOccurs="0"/>
													<xs:element name="EMAIL" type="xs:string" minOccurs="0"/>
												</xs:all>
											</xs:complexType>
										</xs:element>

										<xs:element name="COMPANY_YN" type="boolType" minOccurs="0"/>

										<xs:element name="COMPANY" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="NAME" type="xs:string" minOccurs="0"/>
													<xs:element name="COMPANY_NUMBER" type="xs:string" minOccurs="0"/>
													<xs:element name="VAT_NUMBER" type="xs:string" minOccurs="0"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>

										<xs:element name="ADDRESSES" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="BILLING" minOccurs="0">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="STREET" type="xs:string" minOccurs="0"/>
																<xs:element name="CITY" type="xs:string" minOccurs="0"/>
																<xs:element name="STATE" type="xs:string" minOccurs="0"/>
																<xs:element name="ZIP_CODE" type="xs:string" minOccurs="0"/>
																<xs:element name="COUNTRY_ID" type="xs:string" minOccurs="0"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="POSTAL" minOccurs="0">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="COMPANY_NAME" type="xs:string" minOccurs="0"/>
																<xs:element name="FIRSTNAME" type="xs:string" minOccurs="0"/>
																<xs:element name="SURNAME" type="xs:string" minOccurs="0"/>
																<xs:element name="STREET" type="xs:string" minOccurs="0"/>
																<xs:element name="CITY" type="xs:string" minOccurs="0"/>
																<xs:element name="STATE" type="xs:string" minOccurs="0"/>
																<xs:element name="ZIP_CODE" type="xs:string" minOccurs="0"/>
																<xs:element name="COUNTRY_ID" type="xs:string" minOccurs="0"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>

									</xs:all>
								</xs:complexType>
							</xs:element>

							<xs:element name="ITEMS" maxOccurs="1">
								<xs:complexType>
									<xs:all>

										<xs:element name="ITEM">
											<xs:complexType>
												<xs:all>
													<xs:element name="TITLE" type="xs:string"/>
													<xs:element name="CODE" type="xs:string" minOccurs="0"/>
													<xs:element name="EAN" type="xs:string" minOccurs="0"/>
													<xs:element name="SUPPLIER_CODE" type="xs:string" minOccurs="0"/>
													<xs:element name="PRODUCT_ID" type="xs:positiveInteger" minOccurs="0"/>

													<xs:element name="VARIANT" type="parametersType" maxOccurs="1" minOccurs="0"/>

													<xs:element name="CONFIGURATION" type="parametersType" maxOccurs="1" minOccurs="0"/>

													<xs:element name="LENGTH" maxOccurs="1" minOccurs="0">
														<xs:complexType>
															<xs:all>
																<xs:element name="UNIT" type="xs:string" minOccurs="0"/>
																<xs:element name="VALUE" type="xs:decimal" minOccurs="0"/>
															</xs:all>
														</xs:complexType>
													</xs:element>

													<xs:element name="QUANTITY" type="positiveDoubleType"/>
													<xs:element name="PRICE_WITH_VAT" type="positiveDoubleType"/>
													<xs:element name="VAT" type="positiveDoubleType"/>

												</xs:all>
											</xs:complexType>
										</xs:element>

									</xs:all>
								</xs:complexType>
							</xs:element>

							<xs:element name="DISCOUNTS" maxOccurs="1" minOccurs="0">
								<xs:complexType>
									<xs:all>
										<xs:element name="DISCOUNT_VOUCHER" maxOccurs="1" minOccurs="0">
											<xs:complexType>
												<xs:all>
													<xs:element name="DISCOUNT" minOccurs="1">
														<xs:complexType>
															<xs:simpleContent>
																<xs:extension base="positiveDoubleType">
																	<xs:attribute name="vat" type="positiveDoubleType" use="required"/>
																</xs:extension>
															</xs:simpleContent>
														</xs:complexType>
													</xs:element>
												</xs:all>
												<xs:attribute name="type" type="xs:string" use="required"/>
												<xs:attribute name="amount" type="positiveDoubleType" use="required"/>
												<xs:attribute name="code" type="xs:string" use="required"/>
											</xs:complexType>
										</xs:element>

										<xs:element name="QUANTITY_DISCOUNT" maxOccurs="1" minOccurs="0">
											<xs:complexType>
												<xs:all>
													<xs:element name="DISCOUNT" minOccurs="1">
														<xs:complexType>
															<xs:simpleContent>
																<xs:extension base="positiveDoubleType">
																	<xs:attribute name="vat" type="positiveDoubleType" use="required"/>
																</xs:extension>
															</xs:simpleContent>
														</xs:complexType>
													</xs:element>
												</xs:all>
												<xs:attribute name="type" type="xs:string" use="required"/>
												<xs:attribute name="amount" type="positiveDoubleType" use="required"/>
											</xs:complexType>
										</xs:element>

										<xs:element name="LOYALTY_POINTS" maxOccurs="1" minOccurs="0">
											<xs:complexType>
												<xs:all>
													<xs:element name="DISCOUNT" minOccurs="1">
														<xs:complexType>
															<xs:simpleContent>
																<xs:extension base="positiveDoubleType">
																	<xs:attribute name="vat" type="positiveDoubleType" use="required"/>
																</xs:extension>
															</xs:simpleContent>
														</xs:complexType>
													</xs:element>
												</xs:all>
												<xs:attribute name="type" type="xs:string" use="required"/>
												<xs:attribute name="amount" type="positiveDoubleType" use="required"/>
												<xs:attribute name="price_per_point" type="positiveDoubleType" use="required"/>
											</xs:complexType>
										</xs:element>
									</xs:all>
								</xs:complexType>
							</xs:element>

							<xs:element name="SHIPMENT" maxOccurs="1" minOccurs="0">
								<xs:complexType>
									<xs:all>
										<xs:element name="CODE" type="xs:string" minOccurs="0"/>
										<xs:element name="NAME" type="xs:string" />
										<xs:element name="BRANCH_ID" type="xs:string" />
										<xs:element name="PRICE_WITH_VAT" type="positiveDoubleType" minOccurs="0"/>
										<xs:element name="VAT" type="positiveDoubleType" minOccurs="0"/>
									</xs:all>
								</xs:complexType>
							</xs:element>

							<xs:element name="PAYMENT" maxOccurs="1" minOccurs="0">
								<xs:complexType>
									<xs:all>
										<xs:element name="CODE" type="xs:string" minOccurs="0"/>
										<xs:element name="NAME" type="xs:string" />
										<xs:element name="PRICE_WITH_VAT" type="positiveDoubleType" minOccurs="0"/>
										<xs:element name="VAT" type="positiveDoubleType" minOccurs="0"/>
									</xs:all>
								</xs:complexType>
							</xs:element>

							<xs:element name="AGREEMENTS" maxOccurs="1" minOccurs="0">
								<xs:complexType>
									<xs:all>
										<xs:element name="AGREEMENT" minOccurs="0">
											<xs:complexType>
												<xs:all>
													<xs:element name="NAME" type="xs:string" />
													<xs:element name="VALID_TO" type="dateTimeType" minOccurs="0"/>
													<xs:element name="STATUS" type="boolType" minOccurs="0"/>
												</xs:all>
											</xs:complexType>
										</xs:element>
									</xs:all>
								</xs:complexType>
							</xs:element>

							<xs:element name="METAS" type="metasType" minOccurs="0"/>

						</xs:all>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="version" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>

	<!-- PARAMETERS -->
	<xs:complexType name="parametersType">
		<xs:sequence>
			<xs:element name="PARAMETER" minOccurs="1" maxOccurs="unbounded">
				<xs:complexType>
					<xs:all>
						<xs:element name="NAME" type="xs:string" minOccurs="1" />
						<xs:element name="VALUE" type="xs:string" minOccurs="1" />
					</xs:all>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

</xs:schema>