<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns="http://seller.marketplace.sears.com/oms/v19" targetNamespace="http://seller.marketplace.sears.com/oms/v19"
	elementFormDefault="qualified">
	<xs:include schemaLocation="../../../../shared/oms/common-fields-v19.xsd" />
	<xs:element name="po-response">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="deprecated" type="xs:date" minOccurs="0" maxOccurs="1" />
				<xs:element name="purchase-order" type="po-type" minOccurs="1" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:complexType name="po-type">
		<xs:sequence>
			<xs:element ref="customer-order-confirmation-number" minOccurs="0" maxOccurs="1" />
			<xs:element ref="customer-email" minOccurs="0" maxOccurs="1" />
			<xs:element ref="po-number" minOccurs="1" maxOccurs="1" />
			<xs:element ref="po-date" minOccurs="1" maxOccurs="1" />
			<xs:element ref="po-time" minOccurs="1" maxOccurs="1" />
			<xs:element name="po-number-with-date" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element ref="unit" minOccurs="0" maxOccurs="1" />
			<xs:element ref="site" minOccurs="0" maxOccurs="1" />
			<xs:element ref="channel" minOccurs="0" maxOccurs="1" />
			<xs:element ref="location-id" minOccurs="0" maxOccurs="1" />
			<xs:element name="lmp-details" type="lmp-type" minOccurs="0" maxOccurs="1" />
			<xs:element name="expected-ship-date" type="xs:date" minOccurs="1" maxOccurs="1" />
			<xs:element ref="promised-date" minOccurs="0" maxOccurs="1" />
			<xs:element name="shipping-detail" type="shipping-detail-type" minOccurs="1" maxOccurs="1" />
			<xs:element name="ship-to-store-detail" type="ship-to-store-detail-type" minOccurs="0" maxOccurs="1" />
			<xs:element name="customer-name" type="name-type" minOccurs="1" maxOccurs="1" />
			<xs:element name="po-line" type="po-line-type" minOccurs="1" maxOccurs="unbounded" />
			<xs:element name="order-total-sell-price" type="xs:decimal" minOccurs="1" maxOccurs="1" />
			<xs:element name="total-commission" type="xs:decimal" minOccurs="1" maxOccurs="1" />
			<xs:element name="total-shipping-handling" type="xs:decimal" minOccurs="1" maxOccurs="1" />
			<xs:element name="total-sales-tax" type="xs:decimal" minOccurs="1" maxOccurs="1" />
			<xs:element name="balance-due" type="xs:decimal" minOccurs="1" maxOccurs="1" />
			<xs:element ref="po-status" minOccurs="1" maxOccurs="1" />
			<xs:element name="po-shipment-info" type="shipment-info-type" minOccurs="0" maxOccurs="1" />
			<xs:element name="tax-reference" type="tax-reference-type"  minOccurs="0" maxOccurs="1" />
			<xs:element name="tax-certificate-url" type="xs:string"  minOccurs="0" maxOccurs="1" />
			<xs:element name="total-shipping-tax" type="xs:decimal"  minOccurs="1" maxOccurs="1" />			
			<xs:element name="total-order-value" type="xs:decimal"  minOccurs="1" maxOccurs="1" />			
		    <xs:element name="tax-remitted-to-seller" type="xs:string" minOccurs="0" maxOccurs="1"/>
		    <xs:element name="lease-order" type="xs:string" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="shipment-info-type">
		<xs:sequence>
			<xs:element name="shipment" type="shipment-details-type" minOccurs="1" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="shipment-details-type">
		<xs:sequence>
			<xs:element name="ship-method" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="shipment-tracking-number" type="shipment-tracking-type" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>If tracking number is Null, "Not Available" will be displayed</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="lmp-type">
		<xs:sequence>
			<xs:element name="order-type" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="pickup-ind" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="pickup-location" type="pickup-location-type" minOccurs="1" maxOccurs="1" />
			<xs:element name="delivery-instructions" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="dropoff-ind" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="delivery-date" type="xs:date" minOccurs="0" maxOccurs="1" />
			<xs:element name="expected-pickup-date" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
			<xs:element name="ucc-barcode" type="xs:string" minOccurs="1" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="pickup-location-type">
		<xs:sequence>
			<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element ref="address" minOccurs="1" maxOccurs="unbounded" />
			<xs:element name="city" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="state" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="zipcode" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="phone" type="xs:string" minOccurs="1" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="shipping-detail-type">
		<xs:sequence>
			<xs:element name="ship-to-name" type="name-type" minOccurs="1" maxOccurs="1" />
			<xs:element ref="address" minOccurs="1" maxOccurs="unbounded" />
			<xs:element name="city" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="state" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="zipcode" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="phone" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="shipping-method" type="xs:string" minOccurs="1" maxOccurs="1" />
			<!-- DSS orders should have carrier details along with shipping-method -->
			<xs:element name="carrier" type="xs:string" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="po-line-type">
		<xs:sequence>
			<xs:element name="po-line-header" type="po-line-header-type" minOccurs="1" maxOccurs="1" />
			<xs:element name="po-line-detail" type="po-line-detail-type" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="po-line-header-type">
		<xs:sequence>
			<xs:element ref="line-number" minOccurs="1" maxOccurs="1" />
			<xs:element name="item-id" type="seller-item-id-type" minOccurs="1" maxOccurs="1" />
			<!-- Seller's Item Number -->
			<xs:element ref="item-name" minOccurs="1" maxOccurs="1" />
			<xs:element name="item-class-id" type="xs:positiveInteger" minOccurs="0" maxOccurs="1" />
			<xs:element name="oms-order-item-id" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="oms-parent-order-item-id" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="handling-instructions" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="handling-ind" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="unit-cost" type="xs:decimal" minOccurs="0" maxOccurs="1" />
			<xs:element ref="selling-price-each" minOccurs="1" maxOccurs="1" />
			<xs:element name="order-quantity" type="xs:positiveInteger" minOccurs="1" maxOccurs="1" />
			<xs:element name="commission" type="xs:decimal" minOccurs="1" maxOccurs="1" />
			<xs:element name="sales-tax" type="xs:decimal" minOccurs="0" maxOccurs="1" />
			<xs:element name="shipping-and-handling" type="xs:decimal" minOccurs="1" maxOccurs="1" />
		    <xs:element name="shipping-tax" type="xs:decimal" minOccurs="0" maxOccurs="1" />
		    <xs:element name="fees" type="fees-type" minOccurs="0" maxOccurs="1" />
		    <xs:element name="shipping-commission" type="xs:decimal" minOccurs="0" maxOccurs="1" />
			<xs:element ref="gift-message-details" minOccurs="0" maxOccurs="1" />
			<xs:element name="customer-cancellation-warning" type="xs:string" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="po-line-detail-type">
		<xs:sequence>
			<xs:element ref="po-line-status" minOccurs="1" maxOccurs="1" />
			<xs:element ref="quantity" minOccurs="1" maxOccurs="1" />
			<xs:element name="internal-memo" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="external-memo" type="xs:string" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="ship-to-store-detail-type">
		<xs:sequence>
			<xs:element name="address" minOccurs="1" maxOccurs="1" />
			<xs:element name="city" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="state" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="zipcode" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="phone" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="store-delivery-date" type="xs:date" minOccurs="0" maxOccurs="1" />
			<xs:element name="ucc-barcode" type="xs:string" minOccurs="1" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>

	<xs:simpleType name="seller-item-id-type">
		<xs:restriction base="xs:string">
			<xs:maxLength value="50" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="name-type">
		<xs:restriction base="xs:string">
			<xs:maxLength value="100" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="shipment-tracking-type">
		<xs:restriction base="xs:string">
			<xs:maxLength value="45" />
		</xs:restriction>
	</xs:simpleType>
	

	<xs:complexType name="tax-reference-type">
        <xs:sequence>
            <xs:element name="delivery-tax-code" type="xs:string" minOccurs="0"  maxOccurs="1" />
            <xs:element name="tax-rate" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="avp-taxing-jx-geo-code" type="xs:string" minOccurs="0" maxOccurs="1"  /> <!-- AVP Taxing Jurisdiction Geo Code (char 2) -->
            <xs:element name="avp-taxing-jx-county" type="xs:string" minOccurs="0" maxOccurs="1"  /> <!-- AVP Taxing Jurisdiction County Number (char 3) -->
            <xs:element name="transfer-to-state-code" type="xs:string" minOccurs="0" maxOccurs="1"  />
            <xs:element name="ship-to-taxware-geo" type="xs:string" minOccurs="0" maxOccurs="1"  />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="fees-type">
        <xs:sequence>
            <xs:element name="fee" type="fee-type" minOccurs="1" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="fee-type">
        <xs:simpleContent>
            <xs:extension base="xs:decimal">
                <xs:attribute name="type" type="xs:string" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    
</xs:schema>
