ingram_micro 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +11 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +4 -0
  6. data/CODE_OF_CONDUCT.md +13 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +123 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +7 -0
  13. data/example.rb +18 -0
  14. data/ingram_micro.gemspec +38 -0
  15. data/lib/.DS_Store +0 -0
  16. data/lib/ingram_micro.rb +42 -0
  17. data/lib/ingram_micro/.DS_Store +0 -0
  18. data/lib/ingram_micro/base_element.rb +32 -0
  19. data/lib/ingram_micro/client.rb +49 -0
  20. data/lib/ingram_micro/configuration.rb +46 -0
  21. data/lib/ingram_micro/elements/credit_card_information.rb +26 -0
  22. data/lib/ingram_micro/elements/customer.rb +23 -0
  23. data/lib/ingram_micro/elements/detail.rb +19 -0
  24. data/lib/ingram_micro/elements/message_header_no_pw.rb +21 -0
  25. data/lib/ingram_micro/elements/message_header_pw.rb +22 -0
  26. data/lib/ingram_micro/elements/purchase_order_information.rb +15 -0
  27. data/lib/ingram_micro/elements/return_authorization_line_item.rb +39 -0
  28. data/lib/ingram_micro/elements/return_authorization_submission.rb +67 -0
  29. data/lib/ingram_micro/elements/return_order_header.rb +29 -0
  30. data/lib/ingram_micro/elements/sales_order_header.rb +27 -0
  31. data/lib/ingram_micro/elements/sales_order_line_item.rb +37 -0
  32. data/lib/ingram_micro/elements/sales_order_submission.rb +62 -0
  33. data/lib/ingram_micro/elements/shipment_information.rb +69 -0
  34. data/lib/ingram_micro/elements/shipment_status.rb +44 -0
  35. data/lib/ingram_micro/elements/shipment_status_line_item.rb +28 -0
  36. data/lib/ingram_micro/errors/invalid_type.rb +2 -0
  37. data/lib/ingram_micro/errors/missing_field.rb +2 -0
  38. data/lib/ingram_micro/request_processor.rb +11 -0
  39. data/lib/ingram_micro/transmission.rb +50 -0
  40. data/lib/ingram_micro/transmissions/check_shipment_status.rb +45 -0
  41. data/lib/ingram_micro/transmissions/return_authorization.rb +50 -0
  42. data/lib/ingram_micro/transmissions/sales_order.rb +55 -0
  43. data/lib/ingram_micro/version.rb +3 -0
  44. data/xsd/.DS_Store +0 -0
  45. data/xsd/BPXML_InventoryStatus.xsd +49 -0
  46. data/xsd/inbound/BPXML-LoadReject.xsd +686 -0
  47. data/xsd/inbound/BPXML-LoadSuccess.xsd +696 -0
  48. data/xsd/inbound/BPXML-ReturnReceipt.xsd +664 -0
  49. data/xsd/inbound/BPXML-ShipAdvice.xsd +758 -0
  50. data/xsd/inbound/BPXML-StandardResponse.xsd +122 -0
  51. data/xsd/outbound/BPXML-ReturnAuthorization.xsd +641 -0
  52. data/xsd/outbound/BPXML-SalesOrder.xsd +753 -0
  53. data/xsd/outbound/BPXML-ShipmentStatus.xsd +232 -0
  54. data/xsd/xml_samples/.DS_Store +0 -0
  55. data/xsd/xml_samples/Sales_order_sample.xml +143 -0
  56. metadata +227 -0
@@ -0,0 +1,44 @@
1
+ class IngramMicro::ShipmentStatus < IngramMicro::BaseElement
2
+
3
+ DEFAULTS = {
4
+ customer_id: nil,
5
+ business_name: nil,
6
+ detail: nil,
7
+ line_items: []
8
+ }
9
+
10
+ def defaults
11
+ DEFAULTS
12
+ end
13
+
14
+ def initialize(options={})
15
+ super
16
+ @element[:order_header] ||= IngramMicro::SalesOrderHeader.new
17
+ check_line_items
18
+ @element[:detail] ||= IngramMicro::Detail.new({line_items: @element[:line_items]})
19
+ end
20
+
21
+ def build(builder)
22
+ builder.send('header') do
23
+ builder.send('customer-information') do
24
+ builder.send 'customer-id', @element[:customer_id]
25
+ builder.send 'business-name', @element[:business_name]
26
+ end
27
+ end
28
+ builder.send('detail') do
29
+ @element[:detail].build(builder)
30
+ end
31
+ end
32
+
33
+ def check_line_items
34
+ if @element[:line_items].empty?
35
+ ss_line_item = IngramMicro::ShipmentStatusLineItem.new
36
+ @element[:line_items] << ss_line_item
37
+ end
38
+ end
39
+
40
+ def valid?
41
+ raise IngramMicro::InvalidType.new('customer_id must be a number') unless integer?(@element[:customer_id])
42
+ true
43
+ end
44
+ end
@@ -0,0 +1,28 @@
1
+ class IngramMicro::ShipmentStatusLineItem < IngramMicro::BaseElement
2
+
3
+ DEFAULTS = {
4
+ :line_no => nil,
5
+ :transaction_document_number => nil,
6
+ :bill_of_lading => nil,
7
+ :customer_order_number => nil,
8
+ :brightpoint_order_number => nil,
9
+ :status_code => nil,
10
+ :status_date => nil,
11
+ :reason_code => nil,
12
+ :signed_by => nil,
13
+ :status_timestamp => nil,
14
+ :comments => nil
15
+ }
16
+
17
+ def line_no
18
+ @element[:line_no]
19
+ end
20
+
21
+ def line_no=(num)
22
+ @element[:line_no] = num
23
+ end
24
+
25
+ def defaults
26
+ DEFAULTS
27
+ end
28
+ end
@@ -0,0 +1,2 @@
1
+ class IngramMicro::InvalidType < Exception
2
+ end
@@ -0,0 +1,2 @@
1
+ class IngramMicro::MissingField < Exception
2
+ end
@@ -0,0 +1,11 @@
1
+ class IngramMicro::RequestProcessor
2
+ attr_accessor :body_xml
3
+
4
+ def initialize(request)
5
+ @body_xml = Nokogiri::XML(request.body.read).to_xml
6
+ end
7
+
8
+ def hashify
9
+ Hash.from_xml(@body_xml)
10
+ end
11
+ end
@@ -0,0 +1,50 @@
1
+ class IngramMicro::Transmission
2
+
3
+ XSD = {
4
+ 'sales-order-submission' => 'outbound/BPXML-SalesOrder.xsd',
5
+ 'shipment-status' => 'outbound/BPXML-ShipmentStatus.xsd',
6
+ 'return-authorization' => 'outbound/BPXML-ReturnAuthorization.xsd',
7
+ 'load-reject' => 'inbound/BPXML-LoadReject.xsd',
8
+ 'load-success' => 'inbound/BPXML-LoadSuccess.xsd',
9
+ 'return-receipt' => 'inbound/BPXML-ReturnReceipt.xsd',
10
+ 'ship-advice' => 'inbound/BPXML-ShipAdvice.xsd',
11
+ 'standard-response' => 'inbound/BPXML-StandardResponse.xsd',
12
+ }
13
+
14
+ attr_reader :errors, :transaction_name
15
+
16
+ def initialize(options={})
17
+ @errors = []
18
+ end
19
+
20
+ def schema_valid?
21
+ xsd = Nokogiri::XML::Schema(File.read("#{IngramMicro::GEM_DIR}/xsd/" +
22
+ XSD[self.transaction_name]))
23
+ valid = true
24
+ xsd.validate(self.order_builder.doc).each do |error|
25
+ errors << error.message
26
+ valid = false
27
+ end
28
+ errors.each { |error| puts 'XML VALIDATION ERROR: ' + error }
29
+ valid
30
+ end
31
+
32
+ def order_builder
33
+ raise Exception('order_builder needs to be implemented in subclass')
34
+ end
35
+
36
+ def add_transaction_info(builder)
37
+ builder.send('transactionInfo') do
38
+ builder.send('eventID')
39
+ end
40
+ end
41
+
42
+ def submit_request
43
+ send_request if schema_valid?
44
+ end
45
+
46
+ def send_request
47
+ client = IngramMicro::Client.new
48
+ client.post(self.order_builder.to_xml)
49
+ end
50
+ end
@@ -0,0 +1,45 @@
1
+ class IngramMicro::CheckShipmentStatus < IngramMicro::Transmission
2
+
3
+ attr_reader :transaction_name
4
+
5
+ def initialize(options={})
6
+ super
7
+ @transaction_name = 'shipment-status'
8
+ @business_name = options[:business_name]
9
+ @customer_id = options[:customer_id]
10
+ @line_items = options[:line_items]
11
+ end
12
+
13
+ def order_builder
14
+ @builder ||= Nokogiri::XML::Builder.new do |builder|
15
+ builder.message do
16
+ add_message_header(builder)
17
+ add_shipment_status(builder)
18
+ add_transaction_info(builder)
19
+ end
20
+ end
21
+ end
22
+
23
+ def add_message_header(builder)
24
+ message_header = IngramMicro::MessageHeaderNoPW.new({
25
+ partner_name: IngramMicro.configuration.partner_name,
26
+ transaction_name: transaction_name})
27
+ builder.send('message-header') do
28
+ message_header.build(builder)
29
+ end
30
+ message_header.valid?
31
+ end
32
+
33
+ def add_shipment_status(builder)
34
+ options = {
35
+ business_name: @business_name,
36
+ customer_id: @customer_id,
37
+ line_items: @line_items
38
+ }
39
+ ss = IngramMicro::ShipmentStatus.new(options)
40
+ builder.send('shipment-status') do
41
+ ss.build(builder)
42
+ end
43
+ ss.valid?
44
+ end
45
+ end
@@ -0,0 +1,50 @@
1
+ class IngramMicro::ReturnAuthorization < IngramMicro::Transmission
2
+ attr_reader :customer, :credit_card_information, :order_header,
3
+ :shipment_information, :detail, :purchase_order_information
4
+
5
+ def initialize(options={})
6
+ super
7
+ @transaction_name = 'return-authorization'
8
+ @customer = options[:customer]
9
+ @shipment_information = options[:shipment_information]
10
+ @credit_card_information = options[:credit_card_information]
11
+ @order_header = options[:order_header]
12
+ @detail = options[:detail]
13
+ @purchase_order_information = options[:purchase_order_information]
14
+ end
15
+
16
+ def order_builder
17
+ @builder ||= Nokogiri::XML::Builder.new do |builder|
18
+ builder.send('message') do
19
+ add_message_header(builder)
20
+ add_return_authorization_submission(builder)
21
+ end
22
+ end
23
+ end
24
+
25
+ def add_message_header(builder)
26
+ message_header = IngramMicro::MessageHeaderPW.new({
27
+ partner_name: IngramMicro.configuration.partner_name,
28
+ transaction_name: transaction_name})
29
+ builder.send('message-header') do
30
+ message_header.build(builder)
31
+ end
32
+ message_header.valid?
33
+ end
34
+
35
+ def add_return_authorization_submission(builder)
36
+ ra_options = {
37
+ customer: customer,
38
+ shipment_information: shipment_information,
39
+ credit_card_information: credit_card_information,
40
+ order_header: order_header,
41
+ detail: detail,
42
+ purchase_order_information: purchase_order_information
43
+ }
44
+ ras = IngramMicro::ReturnAuthorizationSubmission.new(ra_options)
45
+ builder.send('return-authorization-submission') do
46
+ ras.build(builder)
47
+ end
48
+ ras.valid?
49
+ end
50
+ end
@@ -0,0 +1,55 @@
1
+ class IngramMicro::SalesOrder < IngramMicro::Transmission
2
+ attr_reader :customer, :credit_card_information, :order_header,
3
+ :shipment_information, :detail
4
+
5
+ def initialize(options={})
6
+ super(options)
7
+ @transaction_name = 'sales-order-submission'
8
+ @customer = options[:customer]
9
+ @shipment_information = options[:shipment_information]
10
+ @credit_card_information = options[:credit_card_information]
11
+ @order_header = options[:order_header]
12
+ @detail = options[:detail]
13
+ @business_name = options[:business_name]
14
+ @customer_id = options[:customer_id]
15
+ @carrier_name = options[:carrier_name]
16
+ end
17
+
18
+ def order_builder
19
+ @builder ||= Nokogiri::XML::Builder.new do |builder|
20
+ builder.message do
21
+ add_message_header(builder)
22
+ add_sales_order_submission(builder)
23
+ add_transaction_info(builder)
24
+ end
25
+ end
26
+ end
27
+
28
+ def add_message_header(builder)
29
+ message_header = IngramMicro::MessageHeaderPW.new({
30
+ partner_name: IngramMicro.configuration.partner_name,
31
+ transaction_name: transaction_name})
32
+ builder.send('message-header') do
33
+ message_header.build(builder)
34
+ end
35
+ message_header.valid?
36
+ end
37
+
38
+ def add_sales_order_submission(builder)
39
+ sos_options = {
40
+ detail: detail,
41
+ business_name: @business_name,
42
+ customer_id: @customer_id,
43
+ carrier_name: @carrier_name,
44
+ customer: customer,
45
+ shipment_information: shipment_information,
46
+ order_header: order_header,
47
+ credit_card_information: credit_card_information
48
+ }
49
+ sos = IngramMicro::SalesOrderSubmission.new(sos_options)
50
+ builder.send('sales-order-submission') do
51
+ sos.build(builder)
52
+ end
53
+ sos.valid?
54
+ end
55
+ end
@@ -0,0 +1,3 @@
1
+ module IngramMicro
2
+ VERSION = "0.1.1"
3
+ end
data/xsd/.DS_Store ADDED
Binary file
@@ -0,0 +1,49 @@
1
+ <?xml version="1.0"?>
2
+ <xs:schema id="message" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
3
+ <xs:element name="message" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
4
+ <xs:complexType>
5
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
6
+ <xs:element name="message-header">
7
+ <xs:complexType>
8
+ <xs:sequence>
9
+ <xs:element name="message-id" type="xs:string" minOccurs="0" />
10
+ <xs:element name="transaction-name" type="xs:string" minOccurs="0" />
11
+ <xs:element name="partner-name" type="xs:string" minOccurs="0" />
12
+ <xs:element name="source-url" type="xs:string" minOccurs="0" />
13
+ <xs:element name="create-timestamp" type="xs:string" minOccurs="0" />
14
+ <xs:element name="response-request" type="xs:string" minOccurs="0" />
15
+ </xs:sequence>
16
+ </xs:complexType>
17
+ </xs:element>
18
+ <xs:element name="inventory-status">
19
+ <xs:complexType>
20
+ <xs:sequence>
21
+ <xs:element name="status-change" minOccurs="0" maxOccurs="unbounded">
22
+ <xs:complexType>
23
+ <xs:sequence>
24
+ <xs:element name="customer-id" type="xs:string" minOccurs="0" />
25
+ <xs:element name="site-id" type="xs:string" minOccurs="0" />
26
+ <xs:element name="status-date" type="xs:string" minOccurs="0" />
27
+ <xs:element name="transaction-number" type="xs:string" minOccurs="0" />
28
+ <xs:element name="quantity" type="xs:string" minOccurs="0" />
29
+ <xs:element name="unit-of-measure" type="xs:string" minOccurs="0" />
30
+ <xs:element name="customer-item-code" type="xs:string" minOccurs="0" />
31
+ <xs:element name="universal-product-code" type="xs:string" minOccurs="0" />
32
+ <xs:element name="item_description" type="xs:string" minOccurs="0" />
33
+ <xs:element name="from-reason-code" type="xs:string" minOccurs="0" />
34
+ <xs:element name="from-hold-code" type="xs:string" minOccurs="0" />
35
+ <xs:element name="to-reason-code" type="xs:string" minOccurs="0" />
36
+ <xs:element name="to-hold-code" type="xs:string" minOccurs="0" />
37
+ <xs:element name="status-code" type="xs:string" minOccurs="0" />
38
+ <xs:element name="lot-code" type="xs:string" minOccurs="0" />
39
+ <xs:element name="comments" type="xs:string" minOccurs="0" />
40
+ </xs:sequence>
41
+ </xs:complexType>
42
+ </xs:element>
43
+ </xs:sequence>
44
+ </xs:complexType>
45
+ </xs:element>
46
+ </xs:choice>
47
+ </xs:complexType>
48
+ </xs:element>
49
+ </xs:schema>
@@ -0,0 +1,686 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3
+ <xs:annotation>
4
+ <xs:documentation xml:lang="en"> This schema captures the requirement details for the Sales Order Load Reject update process. The XML document generated by Brightpoint will be based on this schema and information available will be based on the elements specified in this transaction. </xs:documentation>
5
+ </xs:annotation>
6
+ <xs:element name="message">
7
+ <xs:annotation>
8
+ <xs:documentation xml:lang="en"> This is the root document element used to encapsulate the entire message. </xs:documentation>
9
+ </xs:annotation>
10
+ <xs:complexType>
11
+ <xs:sequence>
12
+ <xs:element ref="message-header" minOccurs="1" maxOccurs="1"/>
13
+ <xs:element ref="sales-order-rejection" minOccurs="1" maxOccurs="1"/>
14
+ <xs:element ref="transactionInfo" minOccurs="1" maxOccurs="1"/>
15
+ </xs:sequence>
16
+ </xs:complexType>
17
+ </xs:element>
18
+ <xs:element name="message-header">
19
+ <xs:annotation>
20
+ <xs:documentation xml:lang="en"> Collection of basic message information about the original XML Document </xs:documentation>
21
+ </xs:annotation>
22
+ <xs:complexType>
23
+ <xs:sequence>
24
+ <xs:element ref="message-id" maxOccurs="1" minOccurs="1" />
25
+ <xs:element ref="transaction-name" maxOccurs="1" minOccurs="1"/>
26
+ <xs:element ref="partner-name" maxOccurs="1" minOccurs="1"/>
27
+ <xs:element ref="partner-password" minOccurs="0" maxOccurs="1"/>
28
+ <xs:element ref="source-url" minOccurs="0" maxOccurs="1"/>
29
+ <xs:element ref="create-timestamp" minOccurs="1" maxOccurs="1"/>
30
+ <xs:element ref="response-request" minOccurs="1" maxOccurs="1"/>
31
+ </xs:sequence>
32
+ </xs:complexType>
33
+ </xs:element>
34
+ <xs:element name="message-id" type="xs:integer">
35
+ <xs:annotation>
36
+ <xs:documentation xml:lang="en">Unique message identification ID</xs:documentation>
37
+ </xs:annotation>
38
+ </xs:element>
39
+ <xs:element name="transaction-name" type="xs:string" default="sales-order-rejection">
40
+ <xs:annotation>
41
+ <xs:documentation xml:lang="en">The name of the inbound message transaction. In the case of this transaction it is sales-order-rejection.</xs:documentation>
42
+ </xs:annotation>
43
+ </xs:element>
44
+ <xs:element name="partner-name" type="xs:string">
45
+ <xs:annotation>
46
+ <xs:documentation xml:lang="en">Short name of partner be used to identify mappings of data.</xs:documentation>
47
+ </xs:annotation>
48
+ </xs:element>
49
+ <xs:element name="partner-password" nillable="true" type="xs:string">
50
+ <xs:annotation>
51
+ <xs:documentation xml:lang="en">This is an optional password that can be used by the partner to add more validation. This is a message level validation that is not required
52
+ beyond the initial validation of inbound message or the final validation before submitting an outbound message.</xs:documentation>
53
+ </xs:annotation>
54
+ </xs:element>
55
+ <xs:element name="source-url" type="xs:anyURI">
56
+ <xs:annotation>
57
+ <xs:documentation xml:lang="en">Unique Resource Locator that posts the XML Document.</xs:documentation>
58
+ </xs:annotation>
59
+ </xs:element>
60
+ <xs:element name="create-timestamp" type="xs:string">
61
+ <xs:annotation>
62
+ <xs:documentation xml:lang="en">Date and Time at which XML Document was generated from source system. In CCYYMMDDHHMISS.</xs:documentation>
63
+ </xs:annotation>
64
+ </xs:element>
65
+ <xs:element name="response-request" final="#all">
66
+ <xs:annotation>
67
+ <xs:documentation xml:lang="en">Flag to determine if the receiving party is required to send a response back or not. 0: Response Not Required; 1: Response Required</xs:documentation>
68
+ </xs:annotation>
69
+ <xs:simpleType>
70
+ <xs:restriction base="xs:integer">
71
+ <xs:enumeration value="0"/>
72
+ <xs:enumeration value="1"/>
73
+ </xs:restriction>
74
+ </xs:simpleType>
75
+ </xs:element>
76
+ <xs:element name="sales-order-rejection">
77
+ <xs:annotation>
78
+ <xs:documentation xml:lang="en"> Main Element for the Sales Order Rejection XML Document which contains all business related information </xs:documentation>
79
+ </xs:annotation>
80
+ <xs:complexType>
81
+ <xs:sequence>
82
+ <xs:element ref="header" minOccurs="1" maxOccurs="1"/>
83
+ <xs:element ref="detail" minOccurs="1" maxOccurs="1"/>
84
+ </xs:sequence>
85
+ </xs:complexType>
86
+ </xs:element>
87
+ <xs:element name="header">
88
+ <xs:annotation>
89
+ <xs:documentation xml:lang="en"> Header tag of business related information in all XML Documents </xs:documentation>
90
+ </xs:annotation>
91
+ <xs:complexType>
92
+ <xs:sequence>
93
+ <xs:element ref="customer-id" minOccurs="1" maxOccurs="1"/>
94
+ <xs:element ref="business-name" minOccurs="0" maxOccurs="1"/>
95
+ <xs:element ref="carrier-name" minOccurs="0" maxOccurs="1"/>
96
+ <xs:element ref="customer-information" minOccurs="0" maxOccurs="1"/>
97
+ <xs:element ref="shipment-information" minOccurs="1" maxOccurs="1"/>
98
+ <xs:element ref="purchase-order-information" minOccurs="0" maxOccurs="1"/>
99
+ <xs:element ref="credit-card-information" minOccurs="0" maxOccurs="1"/>
100
+ <xs:element ref="order-header" minOccurs="1" maxOccurs="1"/>
101
+ </xs:sequence>
102
+ </xs:complexType>
103
+ </xs:element>
104
+ <xs:element name="customer-id" type="xs:string">
105
+ <xs:annotation>
106
+ <xs:documentation xml:lang="en">Customer Identification number in the Brightpoint's system. This is the value used to identify the customer in the Customer Master table in JD Edwards.</xs:documentation>
107
+ </xs:annotation>
108
+ </xs:element>
109
+ <xs:element name="business-name" type="xs:string">
110
+ <xs:annotation>
111
+ <xs:documentation xml:lang="en">The official name of your business.</xs:documentation>
112
+ </xs:annotation>
113
+ </xs:element>
114
+ <xs:element name="carrier-name" type="xs:string">
115
+ <xs:annotation>
116
+ <xs:documentation xml:lang="en">If you are a third party doing business on behalf of a carrier then you would provide the official name of the carrier here.</xs:documentation>
117
+ </xs:annotation>
118
+ </xs:element>
119
+ <xs:element name="customer-information">
120
+ <xs:annotation>
121
+ <xs:documentation xml:lang="en">Main Element which contains all customer related information.</xs:documentation>
122
+ </xs:annotation>
123
+ <xs:complexType>
124
+ <xs:sequence>
125
+ <xs:element ref="customer-first-name" minOccurs="1" maxOccurs="1"/>
126
+ <xs:element ref="customer-last-name" minOccurs="1" maxOccurs="1"/>
127
+ <xs:element ref="customer-middle-initial" minOccurs="0" maxOccurs="1"/>
128
+ <xs:element ref="customer-address1" minOccurs="1" maxOccurs="1"/>
129
+ <xs:element ref="customer-address2" minOccurs="0" maxOccurs="1"/>
130
+ <xs:element ref="customer-address3" minOccurs="0" maxOccurs="1"/>
131
+ <xs:element ref="customer-city" minOccurs="1" maxOccurs="1"/>
132
+ <xs:element ref="customer-state" minOccurs="1" maxOccurs="1"/>
133
+ <xs:element ref="customer-post-code" minOccurs="1" maxOccurs="1"/>
134
+ <xs:element ref="customer-country-code" minOccurs="1" maxOccurs="1"/>
135
+ <xs:element ref="customer-phone1" minOccurs="0" maxOccurs="1"/>
136
+ <xs:element ref="customer-phone2" minOccurs="0" maxOccurs="1"/>
137
+ <xs:element ref="customer-fax" minOccurs="0" maxOccurs="1"/>
138
+ <xs:element ref="customer-email" minOccurs="0" maxOccurs="1"/>
139
+ </xs:sequence>
140
+ </xs:complexType>
141
+ </xs:element>
142
+ <xs:element name="customer-first-name" type="xs:string"/>
143
+ <xs:element name="customer-last-name" type="xs:string"/>
144
+ <xs:element name="customer-middle-initial" type="xs:string"/>
145
+ <xs:element name="customer-address1" type="xs:string"/>
146
+ <xs:element name="customer-address2" type="xs:string"/>
147
+ <xs:element name="customer-address3" type="xs:string"/>
148
+ <xs:element name="customer-city" type="xs:string"/>
149
+ <xs:element name="customer-state" type="xs:string"/>
150
+ <xs:element name="customer-post-code" type="xs:string"/>
151
+ <xs:element name="customer-country-code" type="xs:string"/>
152
+ <xs:element name="customer-phone1" type="xs:string"/>
153
+ <xs:element name="customer-phone2" type="xs:string"/>
154
+ <xs:element name="customer-fax" type="xs:string"/>
155
+ <xs:element name="customer-email" type="xs:string"/>
156
+ <xs:element name="shipment-information">
157
+ <xs:annotation>
158
+ <xs:documentation xml:lang="en">This element contains all shipment related information for the order.</xs:documentation>
159
+ </xs:annotation>
160
+ <xs:complexType>
161
+ <xs:sequence>
162
+ <xs:element ref="ship-first-name" minOccurs="0" maxOccurs="1"/>
163
+ <xs:element ref="ship-last-name" minOccurs="0" maxOccurs="1"/>
164
+ <xs:element ref="ship-middle-initial" minOccurs="0" maxOccurs="1"/>
165
+ <xs:element ref="ship-address1" minOccurs="0" maxOccurs="1"/>
166
+ <xs:element ref="ship-address2" minOccurs="0" maxOccurs="1"/>
167
+ <xs:element ref="ship-address3" minOccurs="0" maxOccurs="1"/>
168
+ <xs:element ref="ship-city" minOccurs="0" maxOccurs="1"/>
169
+ <xs:element ref="ship-state" minOccurs="0" maxOccurs="1"/>
170
+ <xs:element ref="ship-post-code" minOccurs="0" maxOccurs="1"/>
171
+ <xs:element ref="ship-country-code" minOccurs="0" maxOccurs="1"/>
172
+ <xs:element ref="ship-phone1" minOccurs="0" maxOccurs="1"/>
173
+ <xs:element ref="ship-phone2" minOccurs="0" maxOccurs="1"/>
174
+ <xs:element ref="ship-fax" minOccurs="0" maxOccurs="1"/>
175
+ <xs:element ref="ship-email" minOccurs="0" maxOccurs="1"/>
176
+ <xs:element ref="ship-via" minOccurs="0" maxOccurs="1"/>
177
+ <xs:element ref="ship-request-date" minOccurs="0" maxOccurs="1"/>
178
+ <xs:element ref="ship-request-from" minOccurs="0" maxOccurs="1"/>
179
+ <xs:element ref="ship-request-warehouse" minOccurs="0" maxOccurs="1"/>
180
+ </xs:sequence>
181
+ </xs:complexType>
182
+ </xs:element>
183
+ <xs:element name="ship-first-name" type="xs:string">
184
+ <xs:annotation>
185
+ <xs:documentation xml:lang="en">First Name for person that is receiving the shipment.</xs:documentation>
186
+ </xs:annotation>
187
+ </xs:element>
188
+ <xs:element name="ship-last-name" type="xs:string">
189
+ <xs:annotation>
190
+ <xs:documentation xml:lang="en">Last Name for person that is receiving the shipment.</xs:documentation>
191
+ </xs:annotation>
192
+ </xs:element>
193
+ <xs:element name="ship-middle-initial" type="xs:string">
194
+ <xs:annotation>
195
+ <xs:documentation xml:lang="en">Middle Initial for person receiving the shipment.</xs:documentation>
196
+ </xs:annotation>
197
+ </xs:element>
198
+ <xs:element name="ship-address1" type="xs:string">
199
+ <xs:annotation>
200
+ <xs:documentation xml:lang="en">Address1 field for person receiving the shipment.</xs:documentation>
201
+ </xs:annotation>
202
+ </xs:element>
203
+ <xs:element name="ship-address2" type="xs:string">
204
+ <xs:annotation>
205
+ <xs:documentation xml:lang="en">Address2 field for person receiving the shipment.</xs:documentation>
206
+ </xs:annotation>
207
+ </xs:element>
208
+ <xs:element name="ship-address3" nillable="true" type="xs:string">
209
+ <xs:annotation>
210
+ <xs:documentation xml:lang="en">Address3 field for person receiving the shipment.</xs:documentation>
211
+ </xs:annotation>
212
+ </xs:element>
213
+ <xs:element name="ship-city" type="xs:string">
214
+ <xs:annotation>
215
+ <xs:documentation xml:lang="en">City field for person receiving the shipment.</xs:documentation>
216
+ </xs:annotation>
217
+ </xs:element>
218
+ <xs:element name="ship-state" type="xs:string">
219
+ <xs:annotation>
220
+ <xs:documentation xml:lang="en">State field for person receiving the shipment.</xs:documentation>
221
+ </xs:annotation>
222
+ </xs:element>
223
+ <xs:element name="ship-post-code" type="xs:string">
224
+ <xs:annotation>
225
+ <xs:documentation xml:lang="en">Postal Code field for person receiving the shipment.</xs:documentation>
226
+ </xs:annotation>
227
+ </xs:element>
228
+ <xs:element name="ship-country-code" type="xs:string">
229
+ <xs:annotation>
230
+ <xs:documentation xml:lang="en">Country Code field for person receiving the shipment. Must be compliant with the ISO Standard for Country Codes.</xs:documentation>
231
+ </xs:annotation>
232
+ </xs:element>
233
+ <xs:element name="ship-phone1" type="xs:string">
234
+ <xs:annotation>
235
+ <xs:documentation xml:lang="en">Primary Phone Number for person receiving the shipment.</xs:documentation>
236
+ </xs:annotation>
237
+ </xs:element>
238
+ <xs:element name="ship-phone2" nillable="true" type="xs:string">
239
+ <xs:annotation>
240
+ <xs:documentation xml:lang="en">Secondary Phone Number for person receiving the shipment.</xs:documentation>
241
+ </xs:annotation>
242
+ </xs:element>
243
+ <xs:element name="ship-fax" nillable="true" type="xs:string">
244
+ <xs:annotation>
245
+ <xs:documentation xml:lang="en">Facsimile Number for person receiving the shipment.</xs:documentation>
246
+ </xs:annotation>
247
+ </xs:element>
248
+ <xs:element name="ship-email" type="xs:string">
249
+ <xs:annotation>
250
+ <xs:documentation xml:lang="en">Email Address for person receiving the shipment.</xs:documentation>
251
+ </xs:annotation>
252
+ </xs:element>
253
+ <xs:element name="ship-via" type="xs:string">
254
+ <xs:annotation>
255
+ <xs:documentation xml:lang="en">The Standard Carrier Alpha Code value that is recognized by Brightpoint.</xs:documentation>
256
+ </xs:annotation>
257
+ </xs:element>
258
+ <xs:element name="ship-request-date" type="xs:string">
259
+ <xs:annotation>
260
+ <xs:documentation xml:lang="en">Date on which order is requested for shipment. In CCYYMMDD.</xs:documentation>
261
+ </xs:annotation>
262
+ </xs:element>
263
+ <xs:element name="ship-request-from" type="xs:string">
264
+ <xs:annotation>
265
+ <xs:documentation xml:lang="en">City from which Shipment is requested.</xs:documentation>
266
+ </xs:annotation>
267
+ </xs:element>
268
+ <xs:element name="ship-request-warehouse" type="xs:string">
269
+ <xs:annotation>
270
+ <xs:documentation xml:lang="en">Virtual Warehouse (Site) from which Shipment is requested.</xs:documentation>
271
+ </xs:annotation>
272
+ </xs:element>
273
+ <xs:element name="purchase-order-information">
274
+ <xs:annotation>
275
+ <xs:documentation xml:lang="en">This element contains all purchase order related information for the order.</xs:documentation>
276
+ </xs:annotation>
277
+ <xs:complexType>
278
+ <xs:sequence>
279
+ <xs:element ref="purchase-order-number" minOccurs="1" maxOccurs="1"/>
280
+ <xs:element ref="account-description" minOccurs="1" maxOccurs="1"/>
281
+ <xs:element ref="purchase-order-amount" minOccurs="0" maxOccurs="1"/>
282
+ <xs:element ref="currency-code" minOccurs="0" maxOccurs="1"/>
283
+ <xs:element ref="comments" minOccurs="0" maxOccurs="1"/>
284
+ </xs:sequence>
285
+ </xs:complexType>
286
+ </xs:element>
287
+ <xs:element name="purchase-order-number" type="xs:string">
288
+ <xs:annotation>
289
+ <xs:documentation xml:lang="en">Purchase Order Number to be used.</xs:documentation>
290
+ </xs:annotation>
291
+ </xs:element>
292
+ <xs:element name="account-description" type="xs:string">
293
+ <xs:annotation>
294
+ <xs:documentation xml:lang="en">Description of the account against which PO is generated.</xs:documentation>
295
+ </xs:annotation>
296
+ </xs:element>
297
+ <xs:element name="purchase-order-amount" type="xs:decimal">
298
+ <xs:annotation>
299
+ <xs:documentation xml:lang="en">Total Amount that is assigned to the
300
+ specific Purchase Order.</xs:documentation>
301
+ </xs:annotation>
302
+ </xs:element>
303
+ <xs:element name="currency-code" type="xs:string">
304
+ <xs:annotation>
305
+ <xs:documentation xml:lang="en">Currency Code associated with a Currency Amount. Must be compliant with the ISO Standard for Currency Codes.</xs:documentation>
306
+ </xs:annotation>
307
+ </xs:element>
308
+ <xs:element name="comments" type="xs:string"/>
309
+ <xs:element name="credit-card-information" nillable="true">
310
+ <xs:annotation>
311
+ <xs:documentation xml:lang="en">This element contains all credit card related information for the order.</xs:documentation>
312
+ </xs:annotation>
313
+ <xs:complexType>
314
+ <xs:sequence>
315
+ <xs:element ref="credit-card-number" minOccurs="1" maxOccurs="1"/>
316
+ <xs:element ref="credit-card-expiration-date" minOccurs="1" maxOccurs="1"/>
317
+ <xs:element ref="credit-card-identification" minOccurs="1" maxOccurs="1"/>
318
+ <xs:element ref="global-card-classification-code" minOccurs="1" maxOccurs="1"/>
319
+ <xs:element ref="card-holder-name" minOccurs="1" maxOccurs="1"/>
320
+ <xs:element ref="card-holder-address1" minOccurs="1" maxOccurs="1"/>
321
+ <xs:element ref="card-holder-address2" minOccurs="0" maxOccurs="1"/>
322
+ <xs:element ref="card-holder-city" minOccurs="1" maxOccurs="1"/>
323
+ <xs:element ref="card-holder-state" minOccurs="1" maxOccurs="1"/>
324
+ <xs:element ref="card-holder-post-code" minOccurs="1" maxOccurs="1"/>
325
+ <xs:element ref="card-holder-country-code" minOccurs="1" maxOccurs="1"/>
326
+ </xs:sequence>
327
+ </xs:complexType>
328
+ </xs:element>
329
+ <xs:element name="credit-card-number" type="xs:string">
330
+ <xs:annotation>
331
+ <xs:documentation xml:lang="en">Credit Cart Account Number. This should only have the last 4 digits exposed and the other values must be masked over.</xs:documentation>
332
+ </xs:annotation>
333
+ </xs:element>
334
+ <xs:element name="credit-card-expiration-date" type="xs:string">
335
+ <xs:annotation>
336
+ <xs:documentation xml:lang="en">Date of Expiration on the Credit Card Account. In CCYYMM Format.</xs:documentation>
337
+ </xs:annotation>
338
+ </xs:element>
339
+ <xs:element name="credit-card-identification" type="xs:string">
340
+ <xs:annotation>
341
+ <xs:documentation xml:lang="en">Identification Name of Credit Card issuing authority. Ex: VISA, MC, AMEX.</xs:documentation>
342
+ </xs:annotation>
343
+ </xs:element>
344
+ <xs:element name="global-card-classification-code" type="xs:string">
345
+ <xs:annotation>
346
+ <xs:documentation xml:lang="en">Global Identification of Credit Card issuing authority.</xs:documentation>
347
+ </xs:annotation>
348
+ </xs:element>
349
+ <xs:element name="card-holder-name" type="xs:string">
350
+ <xs:annotation>
351
+ <xs:documentation xml:lang="en">Name of Card Holder.</xs:documentation>
352
+ </xs:annotation>
353
+ </xs:element>
354
+ <xs:element name="card-holder-address1" type="xs:string">
355
+ <xs:annotation>
356
+ <xs:documentation xml:lang="en">Address1 field for Credit Card Holder.</xs:documentation>
357
+ </xs:annotation>
358
+ </xs:element>
359
+ <xs:element name="card-holder-address2" type="xs:string">
360
+ <xs:annotation>
361
+ <xs:documentation xml:lang="en">Address2 field for Credit Card Holder.</xs:documentation>
362
+ </xs:annotation>
363
+ </xs:element>
364
+ <xs:element name="card-holder-city" type="xs:string">
365
+ <xs:annotation>
366
+ <xs:documentation xml:lang="en">City field for Credit Card Holder.</xs:documentation>
367
+ </xs:annotation>
368
+ </xs:element>
369
+ <xs:element name="card-holder-state" type="xs:string">
370
+ <xs:annotation>
371
+ <xs:documentation xml:lang="en">State field for Credit Card Holder.</xs:documentation>
372
+ </xs:annotation>
373
+ </xs:element>
374
+ <xs:element name="card-holder-post-code" type="xs:string">
375
+ <xs:annotation>
376
+ <xs:documentation xml:lang="en">Post Code field for Credit Card Holder.</xs:documentation>
377
+ </xs:annotation>
378
+ </xs:element>
379
+ <xs:element name="card-holder-country-code" type="xs:string">
380
+ <xs:annotation>
381
+ <xs:documentation xml:lang="en">Country Code field for Credit Card Holder. Must be compliant with the ISO Standard for Currency Codes.</xs:documentation>
382
+ </xs:annotation>
383
+ </xs:element>
384
+ <xs:element name="order-header">
385
+ <xs:annotation>
386
+ <xs:documentation xml:lang="en">Main Element that contains all basic order related information.</xs:documentation>
387
+ </xs:annotation>
388
+ <xs:complexType>
389
+ <xs:sequence>
390
+ <xs:element ref="customer-order-number" minOccurs="1" maxOccurs="1"/>
391
+ <xs:element ref="customer-order-date" minOccurs="0" maxOccurs="1"/>
392
+ <xs:element ref="brightpoint-order-number" minOccurs="0" maxOccurs="1"/>
393
+ <xs:element ref="order-reference" minOccurs="0" maxOccurs="1"/>
394
+ <xs:element ref="order-sub-total" minOccurs="0" maxOccurs="1"/>
395
+ <xs:element ref="order-discount" minOccurs="0" maxOccurs="1"/>
396
+ <xs:element ref="order-tax1" minOccurs="0" maxOccurs="1"/>
397
+ <xs:element ref="order-tax2" minOccurs="0" maxOccurs="1"/>
398
+ <xs:element ref="order-tax3" minOccurs="0" maxOccurs="1"/>
399
+ <xs:element ref="order-shipment-charge" minOccurs="0" maxOccurs="1"/>
400
+ <xs:element ref="order-total-net" minOccurs="0" maxOccurs="1"/>
401
+ <xs:element ref="order-type" minOccurs="0" maxOccurs="1"/>
402
+ <xs:element ref="gift-flag" minOccurs="0" maxOccurs="1"/>
403
+ </xs:sequence>
404
+ </xs:complexType>
405
+ </xs:element>
406
+ <xs:element name="customer-order-number" type="xs:string">
407
+ <xs:annotation>
408
+ <xs:documentation xml:lang="en">Order number on sender's system. Evavi to decide if Customer Order Number and Customer PO number are different or not. </xs:documentation>
409
+ </xs:annotation>
410
+ </xs:element>
411
+ <xs:element name="customer-order-date" type="xs:string">
412
+ <xs:annotation>
413
+ <xs:documentation xml:lang="en">Order Date on sender's system. This is pass-through information.</xs:documentation>
414
+ </xs:annotation>
415
+ </xs:element>
416
+ <xs:element name="brightpoint-order-number" type="xs:string">
417
+ <xs:annotation>
418
+ <xs:documentation xml:lang="en">This is the Order Number generated within the Brightpoint system, which can be used to reference orders within Brightpoint.</xs:documentation>
419
+ </xs:annotation>
420
+ </xs:element>
421
+ <xs:element name="order-reference" type="xs:string">
422
+ <xs:annotation>
423
+ <xs:documentation xml:lang="en">This is the Order Reference. This is a pass-through information.</xs:documentation>
424
+ </xs:annotation>
425
+ </xs:element>
426
+ <xs:element name="order-sub-total" type="xs:decimal">
427
+ <xs:annotation>
428
+ <xs:documentation xml:lang="en">Sub-total amount for the order. This is pass-through information. </xs:documentation>
429
+ </xs:annotation>
430
+ </xs:element>
431
+ <xs:element name="order-discount" type="xs:decimal">
432
+ <xs:annotation>
433
+ <xs:documentation xml:lang="en">Discounted amount on the order. This is pass-through information. </xs:documentation>
434
+ </xs:annotation>
435
+ </xs:element>
436
+ <xs:element name="order-tax1" type="xs:decimal">
437
+ <xs:annotation>
438
+ <xs:documentation xml:lang="en">Primary tax field. Should contain the value of Sales Tax, Value Added Tax (VAT) etc. This is pass-through information.</xs:documentation>
439
+ </xs:annotation>
440
+ </xs:element>
441
+ <xs:element name="order-tax2" nillable="true" type="xs:decimal">
442
+ <xs:annotation>
443
+ <xs:documentation xml:lang="en">Integration specific second tax field. This is pass-through information.</xs:documentation>
444
+ </xs:annotation>
445
+ </xs:element>
446
+ <xs:element name="order-tax3" nillable="true" type="xs:decimal">
447
+ <xs:annotation>
448
+ <xs:documentation xml:lang="en">Integration specific third tax field. This is pass-through information.</xs:documentation>
449
+ </xs:annotation>
450
+ </xs:element>
451
+ <xs:element name="order-shipment-charge" type="xs:decimal">
452
+ <xs:annotation>
453
+ <xs:documentation xml:lang="en">Charge for shipment of product. If freeze-freight has a value of N, this is pass-through information.</xs:documentation>
454
+ </xs:annotation>
455
+ </xs:element>
456
+ <xs:element name="order-total-net" type="xs:decimal">
457
+ <xs:annotation>
458
+ <xs:documentation xml:lang="en">Net total on Order. This is pass-through information. </xs:documentation>
459
+ </xs:annotation>
460
+ </xs:element>
461
+ <xs:element name="order-type" nillable="true" type="xs:string">
462
+ <xs:annotation>
463
+ <xs:documentation xml:lang="en">Order Type on Brightpoint's system.</xs:documentation>
464
+ </xs:annotation>
465
+ </xs:element>
466
+ <xs:element default="N" final="#all" name="gift-flag">
467
+ <xs:annotation>
468
+ <xs:documentation xml:lang="en">Flag to determine if the product is being shipped as a gift. Y: Yes; N: No. This is pass-through information.
469
+ </xs:documentation>
470
+ </xs:annotation>
471
+ <xs:simpleType>
472
+ <xs:restriction base="xs:string">
473
+ <xs:enumeration value="Y"/>
474
+ <xs:enumeration value="N"/>
475
+ </xs:restriction>
476
+ </xs:simpleType>
477
+ </xs:element>
478
+ <xs:element name="detail">
479
+ <xs:annotation>
480
+ <xs:documentation xml:lang="en">Detail tag of business related information in all XML Documents.</xs:documentation>
481
+ </xs:annotation>
482
+ <xs:complexType>
483
+ <xs:sequence>
484
+ <xs:element ref="line-item" minOccurs="0" maxOccurs="unbounded"/>
485
+ </xs:sequence>
486
+ </xs:complexType>
487
+ </xs:element>
488
+ <xs:element name="line-item">
489
+ <xs:complexType>
490
+ <xs:sequence>
491
+ <xs:element ref="line-no" minOccurs="1" maxOccurs="1"/>
492
+ <xs:element ref="line-reference" minOccurs="0" maxOccurs="1"/>
493
+ <xs:element ref="brightpoint-line-no" minOccurs="0" maxOccurs="1"/>
494
+ <xs:element ref="item-code" minOccurs="1" maxOccurs="1"/>
495
+ <xs:element ref="universal-product-code" minOccurs="0" maxOccurs="1"/>
496
+ <xs:element ref="product-name" minOccurs="0" maxOccurs="1"/>
497
+ <xs:element ref="quantity" minOccurs="1" maxOccurs="1"/>
498
+ <xs:element ref="unit-of-measure" minOccurs="0" maxOccurs="1"/>
499
+ <xs:element ref="serial-numbers" minOccurs="0" maxOccurs="1"/>
500
+ <xs:element ref="market-id" minOccurs="0" maxOccurs="1"/>
501
+ <xs:element ref="line-status" minOccurs="1" maxOccurs="1"/>
502
+ <xs:element ref="comments" minOccurs="0" maxOccurs="1"/>
503
+ <xs:element ref="rejection-date" minOccurs="0" maxOccurs="1"/>
504
+ <xs:element ref="base-price" minOccurs="0" maxOccurs="1"/>
505
+ <xs:element ref="line-discount" minOccurs="0" maxOccurs="1"/>
506
+ <xs:element ref="line-tax1" minOccurs="0" maxOccurs="1"/>
507
+ <xs:element ref="line-tax2" minOccurs="0" maxOccurs="1"/>
508
+ <xs:element ref="line-tax3" minOccurs="0" maxOccurs="1"/>
509
+ <xs:element ref="special-message" minOccurs="0" maxOccurs="1"/>
510
+ </xs:sequence>
511
+ </xs:complexType>
512
+ </xs:element>
513
+ <xs:element name="line-no" type="xs:string">
514
+ <xs:annotation>
515
+ <xs:documentation xml:lang="en">Line Number at the detail level in customer's system.</xs:documentation>
516
+ </xs:annotation>
517
+ </xs:element>
518
+ <xs:element name="line-reference" type="xs:string">
519
+ <xs:annotation>
520
+ <xs:documentation xml:lang="en">The customers line reference value in the customer's system. This is pass-through information. This field has been added since December 2008.</xs:documentation>
521
+ </xs:annotation>
522
+ </xs:element>
523
+ <xs:element name="item-code" type="xs:string">
524
+ <xs:annotation>
525
+ <xs:documentation xml:lang="en">Item Code for the product on Brightpoint's system.</xs:documentation>
526
+ </xs:annotation>
527
+ </xs:element>
528
+ <xs:element name="universal-product-code" nillable="true" type="xs:string">
529
+ <xs:annotation>
530
+ <xs:documentation xml:lang="en">Universal Product Code.</xs:documentation>
531
+ </xs:annotation>
532
+ </xs:element>
533
+ <xs:element name="product-name" type="xs:string">
534
+ <xs:annotation>
535
+ <xs:documentation xml:lang="en">The Product Name in Brightpoint's system.</xs:documentation>
536
+ </xs:annotation>
537
+ </xs:element>
538
+ <xs:element name="quantity" type="xs:decimal">
539
+ <xs:annotation>
540
+ <xs:documentation xml:lang="en">Number of units of product ordered.</xs:documentation>
541
+ </xs:annotation>
542
+ </xs:element>
543
+ <xs:element name="unit-of-measure" type="xs:string">
544
+ <xs:annotation>
545
+ <xs:documentation xml:lang="en">The Unit of Measure used to associate with the quantity. This is to ensure that the proper multiples are used for the order.</xs:documentation>
546
+ </xs:annotation>
547
+ </xs:element>
548
+ <xs:element name="serial-numbers">
549
+ <xs:annotation>
550
+ <xs:documentation xml:lang="en">This element contains a list of serialized-data elements if the product that is being requested is serialized.</xs:documentation>
551
+ </xs:annotation>
552
+ <xs:complexType>
553
+ <xs:sequence>
554
+ <xs:element ref="sid" minOccurs="0" maxOccurs="1"/>
555
+ <xs:element ref="esn" minOccurs="0" maxOccurs="1"/>
556
+ <xs:element ref="min" minOccurs="0" maxOccurs="1"/>
557
+ <xs:element ref="mdn" minOccurs="0" maxOccurs="1"/>
558
+ <xs:element ref="irdb" minOccurs="0" maxOccurs="1"/>
559
+ <xs:element ref="imei" minOccurs="0" maxOccurs="1"/>
560
+ </xs:sequence>
561
+ </xs:complexType>
562
+ </xs:element>
563
+ <xs:element name="min" type="xs:string">
564
+ <xs:annotation>
565
+ <xs:documentation xml:lang="en">MIN for the device</xs:documentation>
566
+ </xs:annotation>
567
+ </xs:element>
568
+ <xs:element name="sid" type="xs:string">
569
+ <xs:annotation>
570
+ <xs:documentation xml:lang="en">SID for the device; going forward, this should only be populated in the serial-numbers segment. It is still outside of that segment for
571
+ backwards compatibility. The change to have this within the serial-numbers is introduced since December 2008.</xs:documentation>
572
+ </xs:annotation>
573
+ </xs:element>
574
+ <xs:element name="mdn" type="xs:string">
575
+ <xs:annotation>
576
+ <xs:documentation xml:lang="en">MDN for the device</xs:documentation>
577
+ </xs:annotation>
578
+ </xs:element>
579
+ <xs:element name="esn" type="xs:string">
580
+ <xs:annotation>
581
+ <xs:documentation xml:lang="en">ESN for the device</xs:documentation>
582
+ </xs:annotation>
583
+ </xs:element>
584
+ <xs:element name="irdb" type="xs:string">
585
+ <xs:annotation>
586
+ <xs:documentation xml:lang="en">IRDB for the device</xs:documentation>
587
+ </xs:annotation>
588
+ </xs:element>
589
+ <xs:element name="imei" type="xs:string">
590
+ <xs:annotation>
591
+ <xs:documentation xml:lang="en">IMEI for the device</xs:documentation>
592
+ </xs:annotation>
593
+ </xs:element>
594
+ <xs:element name="market-id" type="xs:string">
595
+ <xs:annotation>
596
+ <xs:documentation xml:lang="en">The customer-market-id associated with the line in the customer's system. This is used to tie the order with the customer's system. This is pass-through information.</xs:documentation>
597
+ </xs:annotation>
598
+ </xs:element>
599
+ <xs:element name="line-status" type="xs:string">
600
+ <xs:annotation>
601
+ <xs:documentation xml:lang="en">The status of the line within Brightpoint's system.</xs:documentation>
602
+ </xs:annotation>
603
+ </xs:element>
604
+ <xs:element name="rejection-date" type="xs:string">
605
+ <xs:annotation>
606
+ <xs:documentation xml:lang="en">Date on which order was rejected. In CCYYMMDD.</xs:documentation>
607
+ </xs:annotation>
608
+ </xs:element>
609
+ <xs:element name="base-price" type="xs:decimal">
610
+ <xs:annotation>
611
+ <xs:documentation xml:lang="en">Base price of line item.</xs:documentation>
612
+ </xs:annotation>
613
+ </xs:element>
614
+ <xs:element name="line-discount" type="xs:decimal">
615
+ <xs:annotation>
616
+ <xs:documentation xml:lang="en">Discount on Line Item. This is pass-through information.</xs:documentation>
617
+ </xs:annotation>
618
+ </xs:element>
619
+ <xs:element name="line-tax1" nillable="true" type="xs:decimal">
620
+ <xs:annotation>
621
+ <xs:documentation xml:lang="en">Primary tax field for line item. Should contain the value of Sales Tax, Value Added Tax (VAT) etc. This is pass-through information.</xs:documentation>
622
+ </xs:annotation>
623
+ </xs:element>
624
+ <xs:element name="line-tax2" nillable="true" type="xs:decimal">
625
+ <xs:annotation>
626
+ <xs:documentation xml:lang="en">Integration specific second tax field for line item. This is pass-through information.</xs:documentation>
627
+ </xs:annotation>
628
+ </xs:element>
629
+ <xs:element name="line-tax3" nillable="true" type="xs:decimal">
630
+ <xs:annotation>
631
+ <xs:documentation xml:lang="en">Integration specific third tax field for line item. This is pass-through information.</xs:documentation>
632
+ </xs:annotation>
633
+ </xs:element>
634
+ <xs:element name="special-message">
635
+ <xs:annotation>
636
+ <xs:documentation>Cistomer specific special message</xs:documentation>
637
+ </xs:annotation>
638
+ <xs:complexType>
639
+ <xs:sequence>
640
+ <xs:element ref="special-message1" minOccurs="0" maxOccurs="1"/>
641
+ <xs:element ref="special-message2" minOccurs="0" maxOccurs="1"/>
642
+ <xs:element ref="special-message3" minOccurs="0" maxOccurs="1"/>
643
+ <xs:element ref="special-message4" minOccurs="0" maxOccurs="1"/>
644
+ <xs:element ref="special-message5" minOccurs="0" maxOccurs="1"/>
645
+ </xs:sequence>
646
+ </xs:complexType>
647
+ </xs:element>
648
+ <xs:element name="special-message1" type="xs:string">
649
+ <xs:annotation>
650
+ <xs:documentation xml:lang="en">Special Message 1.</xs:documentation>
651
+ </xs:annotation>
652
+ </xs:element>
653
+ <xs:element name="special-message2" type="xs:string">
654
+ <xs:annotation>
655
+ <xs:documentation xml:lang="en">Special Message 2.</xs:documentation>
656
+ </xs:annotation>
657
+ </xs:element>
658
+ <xs:element name="special-message3" type="xs:string">
659
+ <xs:annotation>
660
+ <xs:documentation xml:lang="en">Special Message 3.</xs:documentation>
661
+ </xs:annotation>
662
+ </xs:element>
663
+ <xs:element name="special-message4" type="xs:string">
664
+ <xs:annotation>
665
+ <xs:documentation xml:lang="en">Special Message 4.</xs:documentation>
666
+ </xs:annotation>
667
+ </xs:element>
668
+ <xs:element name="special-message5" type="xs:string">
669
+ <xs:annotation>
670
+ <xs:documentation xml:lang="en">Special Message 5.</xs:documentation>
671
+ </xs:annotation>
672
+ </xs:element>
673
+ <xs:element name="transactionInfo">
674
+ <xs:complexType>
675
+ <xs:sequence>
676
+ <xs:element ref="eventID" minOccurs="1" maxOccurs="1"/>
677
+ </xs:sequence>
678
+ </xs:complexType>
679
+ </xs:element>
680
+ <xs:element name="eventID" type="xs:string">
681
+ <xs:annotation>
682
+ <xs:documentation xml:lang="en">Event ID from the customer's system.</xs:documentation>
683
+ </xs:annotation>
684
+ </xs:element>
685
+
686
+ </xs:schema>