<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2012 rel. 2 (http://www.altova.com) by Alin Pop (Zendor GSI Commerce) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:altova="http://www.altova.com/xml-schema-extensions">
	<xs:element name="inventorySnapshot">
		<xs:annotation>
			<xs:documentation>The inventory root node</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="clientId" type="xs:string">
					<xs:annotation>
						<xs:documentation>It will be a unique identifier assigned to you at the time of integration, this is likely to be your business or brand name, in uppercase.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="distributionCentre" type="xs:string">
					<xs:annotation>
						<xs:documentation>Warehouse code in Radial's fulfilment network. It will be provided at the time of integration.
							E.g. EEUK01; EEDE01</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="includeZeroStock" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>Accepted values are "true" and "false" only.
							The flag denotes whether the export includes the items with stock zero.

							The value "true" would include in the export items with zero stock.

							The value "false" would export only items with stock greater than zero.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="source" type="xs:string">
					<xs:annotation>
						<xs:documentation>The system which has generated the export.
							It will be provided to you at the time of integration.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="transactionDateTime" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>The date and time the stock snapshot has been generated.
							The item's stock listed in the export has been captured at this date and time.
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="item" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>The product nodes</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="stockSummary">
								<xs:annotation>
									<xs:documentation>A summary of item's stock across all stock buckets.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:attribute name="onHandQty" type="number-long" use="required">
										<xs:annotation>
											<xs:documentation>On-hand quantity is the total units available for the given item across all stock buckets.</xs:documentation>
										</xs:annotation>
									</xs:attribute>
									<xs:attribute name="freeQty" type="number-long" use="required">
										<xs:annotation>
											<xs:documentation>The free quantity is the stock the Radial WMS uses to allocate the stock from.

												Note, this is a sum of all free stock across all stock buckets. You should not use this value to promising the stock to end customer.

												Instead you should promise the free stock from the saleable/picking stock pool. The exact code will be provided by Radial team at the time of implementation.</xs:documentation>
										</xs:annotation>
									</xs:attribute>
									<xs:attribute name="allocatedQty" type="number-long"
												  use="required">
										<xs:annotation>
											<xs:documentation>The allocated quantity is the stock which is already allocated to sales orders.
												Do not promise this stock to end customers.</xs:documentation>
										</xs:annotation>
									</xs:attribute>
									<xs:attribute name="lockedQty" type="number-long" use="required">
										<xs:annotation>
											<xs:documentation>Locked quantity is the stock in the warehouse which is not yet put away into a pickable location.

												It has been physically received but not yet put away.</xs:documentation>
										</xs:annotation>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
							<xs:element name="stockPool" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>In the warehouse management system, the stock is segregated  across different stock buckets.

										The exact stock buckets would be provided to you at the time of integration.

										In most of the cases, the stock bucket good (code "A") and damaged (code "C") would suit your business.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:attribute name="name" type="xs:string" use="required">
										<xs:annotation>
											<xs:documentation>The name of the stock bucket. As default code "A" denote the good (saleable) stock. The damaged stock would have the code "C".
											</xs:documentation>
										</xs:annotation>
									</xs:attribute>
									<xs:attribute name="onHandQty" type="number-long" use="required">
										<xs:annotation>
											<xs:documentation>On-hand quantity represents the total stock for the given stock bucket.
												It's the sum of (free + allocated + locked stock).</xs:documentation>
										</xs:annotation>
									</xs:attribute>
									<xs:attribute name="freeQty" type="number-long" use="required">
										<xs:annotation>
											<xs:documentation>The free quantity represents the stock which is used to allocate it to sales orders for the given stock bucket.</xs:documentation>
										</xs:annotation>
									</xs:attribute>
									<xs:attribute name="allocatedQty" type="number-long"
												  use="required">
										<xs:annotation>
											<xs:documentation>The allocated quantity is the stock which is allocated to sales orders. This stock it has been hard allocated already to sales orders and it should not be promised to the end customers.</xs:documentation>
										</xs:annotation>
									</xs:attribute>
									<xs:attribute name="lockedQty" type="number-long" use="required">
										<xs:annotation>
											<xs:documentation>The locked quantity represents the stock in the warehouse which is not yet put away into a pickable location.

												It has been physically received but not yet put away.

												Strongly recommended to not promise it to end customer.</xs:documentation>
										</xs:annotation>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="sku" type="text50" use="required">
							<xs:annotation>
								<xs:documentation>The unique item identifier. The same as bridged in the catalogue interface.

									There will be always one entry per SKU in the export.</xs:documentation>
							</xs:annotation>
						</xs:attribute>
						<xs:attribute name="rucItemId" type="text50" use="required">
							<xs:annotation>
								<xs:documentation>Radial's internal primary item ID used for referencing the product.</xs:documentation>
							</xs:annotation>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
				<xs:element name="messageId" type="number-long" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Numeric unique Radial RUC outbound message ID.
							It's recommended to be used on:
							--------------------------------------
							1) Avoiding duplicate message processing;
							2) Debugging if a certain message has been sent/received/acknowledged.
							Limitation:  Radial doesn't guarantee the delivery of messages in the sequence order.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="text50">
		<xs:restriction base="xs:string">
			<xs:maxLength value="50"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="number-long">
		<xs:restriction base="xs:long"/>
	</xs:simpleType>
</xs:schema>
