active_fulfillment 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/lib/active_fulfillment.rb +4 -18
  3. data/lib/active_fulfillment/fulfillment/services/amazon_mws.rb +438 -0
  4. data/lib/active_fulfillment/fulfillment/services/shipwire.rb +39 -34
  5. data/lib/active_fulfillment/fulfillment/services/webgistix.rb +5 -1
  6. data/lib/active_fulfillment/fulfillment/version.rb +6 -0
  7. data/test/fixtures/xml/amazon_mws/fulfillment_get_fulfillment_order.xml +114 -0
  8. data/test/fixtures/xml/amazon_mws/fulfillment_get_fulfillment_order_2.xml +90 -0
  9. data/test/fixtures/xml/amazon_mws/fulfillment_get_fullfillment_order_with_multiple_tracking_numbers.xml +121 -0
  10. data/test/fixtures/xml/amazon_mws/fulfillment_list_all_fulfillment_orders.xml +70 -0
  11. data/test/fixtures/xml/amazon_mws/inventory_list_inventory_item_supply.xml +32 -0
  12. data/test/fixtures/xml/amazon_mws/inventory_list_inventory_supply.xml +75 -0
  13. data/test/fixtures/xml/amazon_mws/inventory_list_inventory_supply_by_next_token.xml +38 -0
  14. data/test/fixtures/xml/amazon_mws/tracking_response_error.xml +9 -0
  15. data/test/fixtures/xml/amazon_mws/tracking_response_not_found.xml +9 -0
  16. data/test/fixtures/xml/shipwire/fulfillment_failure_response.xml +7 -0
  17. data/test/fixtures/xml/shipwire/invalid_login_response.xml +7 -0
  18. data/test/fixtures/xml/shipwire/inventory_get_response.xml +44 -0
  19. data/test/fixtures/xml/shipwire/successful_empty_tracking_response.xml +8 -0
  20. data/test/fixtures/xml/shipwire/successful_live_tracking_response.xml +53 -0
  21. data/test/fixtures/xml/shipwire/successful_tracking_response.xml +16 -0
  22. data/test/fixtures/xml/shipwire/successful_tracking_response_with_tracking_urls.xml +31 -0
  23. data/test/fixtures/xml/webgistix/multiple_tracking_response.xml +21 -0
  24. data/test/remote/amazon_mws_test.rb +114 -0
  25. data/test/unit/services/amazon_mws_test.rb +357 -0
  26. data/test/unit/services/shipwire_test.rb +20 -95
  27. data/test/unit/services/webgistix_test.rb +12 -1
  28. metadata +57 -11
  29. data/Rakefile +0 -36
  30. data/VERSION +0 -1
  31. data/active_fulfillment.gemspec +0 -70
  32. data/init.rb +0 -1
@@ -8,17 +8,17 @@ module ActiveMerchant
8
8
  :inventory => 'https://api.shipwire.com/exec/InventoryServices.php',
9
9
  :tracking => 'https://api.shipwire.com/exec/TrackingServices.php'
10
10
  }
11
-
11
+
12
12
  SCHEMA_URLS = { :fulfillment => 'http://www.shipwire.com/exec/download/OrderList.dtd',
13
13
  :inventory => 'http://www.shipwire.com/exec/download/InventoryUpdate.dtd',
14
14
  :tracking => 'http://www.shipwire.com/exec/download/TrackingUpdate.dtd'
15
15
  }
16
-
16
+
17
17
  POST_VARS = { :fulfillment => 'OrderListXML',
18
18
  :inventory => 'InventoryUpdateXML',
19
19
  :tracking => 'TrackingUpdateXML'
20
20
  }
21
-
21
+
22
22
  WAREHOUSES = { 'CHI' => 'Chicago',
23
23
  'LAX' => 'Los Angeles',
24
24
  'REN' => 'Reno',
@@ -26,7 +26,7 @@ module ActiveMerchant
26
26
  'TOR' => 'Toronto',
27
27
  'UK' => 'United Kingdom'
28
28
  }
29
-
29
+
30
30
  INVALID_LOGIN = /(Error with Valid Username\/EmailAddress and Password Required)|(Could not verify Username\/EmailAddress and Password combination)/
31
31
 
32
32
  class_attribute :affiliate_id
@@ -40,32 +40,32 @@ module ActiveMerchant
40
40
  ['International', 'INTL']
41
41
  ].inject(ActiveSupport::OrderedHash.new){|h, (k,v)| h[k] = v; h}
42
42
  end
43
-
43
+
44
44
  # Pass in the login and password for the shipwire account.
45
45
  # Optionally pass in the :test => true to force test mode
46
46
  def initialize(options = {})
47
47
  requires!(options, :login, :password)
48
-
48
+
49
49
  super
50
50
  end
51
51
 
52
52
  def fulfill(order_id, shipping_address, line_items, options = {})
53
53
  commit :fulfillment, build_fulfillment_request(order_id, shipping_address, line_items, options)
54
54
  end
55
-
55
+
56
56
  def fetch_stock_levels(options = {})
57
57
  commit :inventory, build_inventory_request(options)
58
58
  end
59
-
59
+
60
60
  def fetch_tracking_numbers(order_ids)
61
61
  commit :tracking, build_tracking_request(order_ids)
62
62
  end
63
-
63
+
64
64
  def valid_credentials?
65
65
  response = fetch_tracking_numbers([])
66
66
  response.message !~ INVALID_LOGIN
67
67
  end
68
-
68
+
69
69
  def test_mode?
70
70
  true
71
71
  end
@@ -86,11 +86,11 @@ module ActiveMerchant
86
86
  xml.tag! 'OrderList' do
87
87
  add_credentials(xml)
88
88
  xml.tag! 'Referer', 'Active Fulfillment'
89
- add_order(xml, order_id, shipping_address, line_items, options)
89
+ add_order(xml, order_id, shipping_address, line_items, options)
90
90
  end
91
91
  xml.target!
92
92
  end
93
-
93
+
94
94
  def build_inventory_request(options)
95
95
  xml = Builder::XmlMarkup.new :indent => 2
96
96
  xml.instruct!
@@ -102,7 +102,7 @@ module ActiveMerchant
102
102
  xml.tag! 'IncludeEmpty' if include_empty_stock?
103
103
  end
104
104
  end
105
-
105
+
106
106
  def build_tracking_request(order_ids)
107
107
  xml = Builder::XmlMarkup.new
108
108
  xml.instruct!
@@ -144,16 +144,16 @@ module ActiveMerchant
144
144
  xml.tag! 'Name' do
145
145
  xml.tag! 'Full', address[:name]
146
146
  end
147
-
147
+
148
148
  xml.tag! 'Address1', address[:address1]
149
149
  xml.tag! 'Address2', address[:address2]
150
150
 
151
151
  xml.tag! 'Company', address[:company]
152
-
152
+
153
153
  xml.tag! 'City', address[:city]
154
154
  xml.tag! 'State', address[:state] unless address[:state].blank?
155
155
  xml.tag! 'Country', address[:country]
156
-
156
+
157
157
  xml.tag! 'Zip', address[:zip]
158
158
  xml.tag! 'Phone', address[:phone] unless address[:phone].blank?
159
159
  xml.tag! 'Email', options[:email] unless options[:email].blank?
@@ -170,15 +170,15 @@ module ActiveMerchant
170
170
 
171
171
  def commit(action, request)
172
172
  data = ssl_post(SERVICE_URLS[action], "#{POST_VARS[action]}=#{CGI.escape(request)}")
173
-
173
+
174
174
  response = parse_response(action, data)
175
175
  Response.new(response[:success], response[:message], response, :test => test?)
176
176
  end
177
-
177
+
178
178
  def parse_response(action, data)
179
179
  case action
180
180
  when :fulfillment
181
- parse_fulfillment_response(data)
181
+ parse_fulfillment_response(data)
182
182
  when :inventory
183
183
  parse_inventory_response(data)
184
184
  when :tracking
@@ -187,24 +187,24 @@ module ActiveMerchant
187
187
  raise ArgumentError, "Unknown action #{action}"
188
188
  end
189
189
  end
190
-
190
+
191
191
  def parse_fulfillment_response(xml)
192
192
  response = {}
193
-
193
+
194
194
  document = REXML::Document.new(xml)
195
195
  document.root.elements.each do |node|
196
196
  response[node.name.underscore.to_sym] = text_content(node)
197
197
  end
198
-
198
+
199
199
  response[:success] = response[:status] == '0'
200
- response[:message] = response[:success] ? "Successfully submitted the order" : message_from(response[:error_message])
200
+ response[:message] = response[:success] ? "Successfully submitted the order" : message_from(response[:error_message])
201
201
  response
202
202
  end
203
-
203
+
204
204
  def parse_inventory_response(xml)
205
205
  response = {}
206
206
  response[:stock_levels] = {}
207
-
207
+
208
208
  document = REXML::Document.new(xml)
209
209
  document.root.elements.each do |node|
210
210
  if node.name == 'Product'
@@ -217,35 +217,40 @@ module ActiveMerchant
217
217
  response[node.name.underscore.to_sym] = text_content(node)
218
218
  end
219
219
  end
220
-
220
+
221
221
  response[:success] = test? ? response[:status] == 'Test' : response[:status] == '0'
222
222
  response[:message] = response[:success] ? "Successfully received the stock levels" : message_from(response[:error_message])
223
-
223
+
224
224
  response
225
225
  end
226
-
226
+
227
227
  def parse_tracking_response(xml)
228
- response = {}
228
+ response = Hash.new { |hash, key| hash[key] = {} }
229
229
  response[:tracking_numbers] = {}
230
-
230
+
231
231
  document = REXML::Document.new(xml)
232
-
233
232
  document.root.elements.each do |node|
234
233
  if node.name == 'Order'
235
234
  if node.attributes["shipped"] == "YES" && node.elements['TrackingNumber']
236
- tracking_number = node.elements['TrackingNumber'].text
235
+ tracking_number = node.elements['TrackingNumber'].text.strip
237
236
  response[:tracking_numbers][node.attributes['id']] = [tracking_number]
237
+
238
+ tracking_company = node.elements['TrackingNumber'].attributes['carrier']
239
+ response[:tracking_company][node.attributes['id']] = tracking_company.strip if tracking_company
240
+
241
+ tracking_url = node.elements['TrackingNumber'].attributes['href']
242
+ response[:tracking_urls][node.attributes['id']] = [tracking_url.strip] if tracking_url
238
243
  end
239
244
  else
240
245
  response[node.name.underscore.to_sym] = text_content(node)
241
246
  end
242
247
  end
243
-
248
+
244
249
  response[:success] = test? ? (response[:status] == '0' || response[:status] == 'Test') : response[:status] == '0'
245
250
  response[:message] = response[:success] ? "Successfully received the tracking numbers" : message_from(response[:error_message])
246
251
  response
247
252
  end
248
-
253
+
249
254
  def message_from(string)
250
255
  return if string.blank?
251
256
  string.gsub("\n", '').squeeze(" ")
@@ -301,7 +301,11 @@ module ActiveMerchant
301
301
  params = node.elements.to_a.each_with_object({}) {|elem, hash| hash[elem.name] = elem.text}
302
302
 
303
303
  tracking = params['ShipmentTrackingNumber']
304
- response[:tracking_numbers][params['InvoiceNumber']] = [tracking] unless tracking == NOT_SHIPPED
304
+
305
+ unless tracking == NOT_SHIPPED
306
+ response[:tracking_numbers][params['InvoiceNumber']] ||= []
307
+ response[:tracking_numbers][params['InvoiceNumber']] << tracking
308
+ end
305
309
  end
306
310
 
307
311
  response
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+ module ActiveMerchant
3
+ module Fulfillment
4
+ VERSION = "2.0.2"
5
+ end
6
+ end
@@ -0,0 +1,114 @@
1
+ <?xml version="1.0"?>
2
+ <GetFulfillmentOrderResponse
3
+ xmlns="http://mws.amazonaws.com/FulfillmentOutboundShipment/2010-10-01/">
4
+ <GetFulfillmentOrderResult>
5
+ <FulfillmentOrderItem>
6
+ <member>
7
+ <SellerSKU>ssof_dev_drt_afn_item</SellerSKU>
8
+ <GiftMessage>test_giftwrap_message</GiftMessage>
9
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_2
10
+ </SellerFulfillmentOrderItemId>
11
+ <EstimatedShipDateTime>2008-03-08T07:07:53Z
12
+ </EstimatedShipDateTime>
13
+ <DisplayableComment>test_displayable_comment</DisplayableComment>
14
+ <OrderItemDisposition>Sellable</OrderItemDisposition>
15
+ <UnfulfillableQuantity>0</UnfulfillableQuantity>
16
+ <CancelledQuantity>1</CancelledQuantity>
17
+ <Quantity>5</Quantity>
18
+ <EstimatedArrivalDateTime>2008-03-08T08:07:53Z
19
+ </EstimatedArrivalDateTime>
20
+ </member>
21
+ <member>
22
+ <SellerSKU>ssof_dev_drt_keep_this_afn_always</SellerSKU>
23
+ <GiftMessage>test_giftwrap_message</GiftMessage>
24
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_1
25
+ </SellerFulfillmentOrderItemId>
26
+ <EstimatedShipDateTime>2008-03-09T07:07:53Z
27
+ </EstimatedShipDateTime>
28
+ <DisplayableComment>test_displayable_comment
29
+ </DisplayableComment>
30
+ <OrderItemDisposition>Sellable</OrderItemDisposition>
31
+ <UnfulfillableQuantity>2</UnfulfillableQuantity>
32
+ <CancelledQuantity>1</CancelledQuantity>
33
+ <Quantity>5</Quantity>
34
+ <EstimatedArrivalDateTime>2008-03-09T08:07:53Z
35
+ </EstimatedArrivalDateTime>
36
+ </member>
37
+ </FulfillmentOrderItem>
38
+ <FulfillmentOrder>
39
+ <ShippingSpeedCategory>Standard</ShippingSpeedCategory>
40
+ <NotificationEmailList>
41
+ <member>o8c2EXAMPLsfr7o@marketplace.amazon.com</member>
42
+ </NotificationEmailList>
43
+ <StatusUpdatedDateTime>2006-09-28T23:48:48Z
44
+ </StatusUpdatedDateTime>
45
+ <SellerFulfillmentOrderId>extern_id_1154539615776
46
+ </SellerFulfillmentOrderId>
47
+ <DestinationAddress>
48
+ <PostalCode>98101</PostalCode>
49
+ <PhoneNumber>206-555-1928</PhoneNumber>
50
+ <Name>Greg Miller</Name>
51
+ <CountryCode>US</CountryCode>
52
+ <Line1>123 Some St.</Line1>
53
+ <StateOrProvinceCode>WA</StateOrProvinceCode>
54
+ <City>Seattle</City>
55
+ <Line2>Apt. 321</Line2>
56
+ </DestinationAddress>
57
+ <FulfillmentMethod>Consumer</FulfillmentMethod>
58
+ <DisplayableOrderDateTime>2006-08-02T17:26:56Z
59
+ </DisplayableOrderDateTime>
60
+ <FulfillmentPolicy>FillOrKill</FulfillmentPolicy>
61
+ <ReceivedDateTime>2006-08-02T17:26:56Z</ReceivedDateTime>
62
+ <DisplayableOrderId>test_displayable_id</DisplayableOrderId>
63
+ <DisplayableOrderComment>Sample comment.
64
+ </DisplayableOrderComment>
65
+ <FulfillmentOrderStatus>PROCESSING</FulfillmentOrderStatus>
66
+ </FulfillmentOrder>
67
+ <FulfillmentShipment>
68
+ <member>
69
+ <FulfillmentShipmentStatus>PENDING</FulfillmentShipmentStatus>
70
+ <FulfillmentShipmentItem>
71
+ <member>
72
+ <SellerSKU>ssof_dev_drt_afn_item</SellerSKU>
73
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_2
74
+ </SellerFulfillmentOrderItemId>
75
+ <Quantity>2</Quantity>
76
+ <PackageNumber>0</PackageNumber>
77
+ </member>
78
+ </FulfillmentShipmentItem>
79
+ <AmazonShipmentId>DnMDLWJWN</AmazonShipmentId>
80
+ <ShippingDateTime>2006-08-04T07:00:00Z</ShippingDateTime>
81
+ <FulfillmentCenterId>RNO1</FulfillmentCenterId>
82
+ <EstimatedArrivalDateTime>2006-08-12T07:00:00Z
83
+ </EstimatedArrivalDateTime>
84
+ </member>
85
+ <member>
86
+ <FulfillmentShipmentStatus>SHIPPED</FulfillmentShipmentStatus>
87
+ <FulfillmentShipmentItem>
88
+ <member>
89
+ <SellerSKU>ssof_dev_drt_afn_item</SellerSKU>
90
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_2
91
+ </SellerFulfillmentOrderItemId>
92
+ <Quantity>1</Quantity>
93
+ <PackageNumber>1</PackageNumber>
94
+ </member>
95
+ </FulfillmentShipmentItem>
96
+ <AmazonShipmentId>DKMKLXJmN</AmazonShipmentId>
97
+ <ShippingDateTime>2006-08-03T07:00:00Z</ShippingDateTime>
98
+ <FulfillmentShipmentPackage>
99
+ <member>
100
+ <TrackingNumber>93ZZ00</TrackingNumber>
101
+ <CarrierCode>UPS</CarrierCode>
102
+ <PackageNumber>1</PackageNumber>
103
+ </member>
104
+ </FulfillmentShipmentPackage>
105
+ <FulfillmentCenterId>TST1</FulfillmentCenterId>
106
+ <EstimatedArrivalDateTime>2006-08-12T07:00:00Z
107
+ </EstimatedArrivalDateTime>
108
+ </member>
109
+ </FulfillmentShipment>
110
+ </GetFulfillmentOrderResult>
111
+ <ResponseMetadata>
112
+ <RequestId>5e5e5694-8e76-11df-929f-87c80302f8f6</RequestId>
113
+ </ResponseMetadata>
114
+ </GetFulfillmentOrderResponse>
@@ -0,0 +1,90 @@
1
+ <?xml version="1.0"?>
2
+ <GetFulfillmentOrderResponse
3
+ xmlns="http://mws.amazonaws.com/FulfillmentOutboundShipment/2010-10-01/">
4
+ <GetFulfillmentOrderResult>
5
+ <FulfillmentOrderItem>
6
+ <member>
7
+ <SellerSKU>ssof_dev_drt_afn_item</SellerSKU>
8
+ <GiftMessage>test_giftwrap_message</GiftMessage>
9
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_2
10
+ </SellerFulfillmentOrderItemId>
11
+ <EstimatedShipDateTime>2008-03-08T07:07:53Z
12
+ </EstimatedShipDateTime>
13
+ <DisplayableComment>test_displayable_comment</DisplayableComment>
14
+ <OrderItemDisposition>Sellable</OrderItemDisposition>
15
+ <UnfulfillableQuantity>0</UnfulfillableQuantity>
16
+ <CancelledQuantity>1</CancelledQuantity>
17
+ <Quantity>5</Quantity>
18
+ <EstimatedArrivalDateTime>2008-03-08T08:07:53Z
19
+ </EstimatedArrivalDateTime>
20
+ </member>
21
+ <member>
22
+ <SellerSKU>ssof_dev_drt_keep_this_afn_always</SellerSKU>
23
+ <GiftMessage>test_giftwrap_message</GiftMessage>
24
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_1
25
+ </SellerFulfillmentOrderItemId>
26
+ <EstimatedShipDateTime>2008-03-09T07:07:53Z
27
+ </EstimatedShipDateTime>
28
+ <DisplayableComment>test_displayable_comment
29
+ </DisplayableComment>
30
+ <OrderItemDisposition>Sellable</OrderItemDisposition>
31
+ <UnfulfillableQuantity>2</UnfulfillableQuantity>
32
+ <CancelledQuantity>1</CancelledQuantity>
33
+ <Quantity>5</Quantity>
34
+ <EstimatedArrivalDateTime>2008-03-09T08:07:53Z
35
+ </EstimatedArrivalDateTime>
36
+ </member>
37
+ </FulfillmentOrderItem>
38
+ <FulfillmentOrder>
39
+ <ShippingSpeedCategory>Standard</ShippingSpeedCategory>
40
+ <NotificationEmailList>
41
+ <member>o8c2EXAMPLsfr7o@marketplace.amazon.com</member>
42
+ </NotificationEmailList>
43
+ <StatusUpdatedDateTime>2006-09-28T23:48:48Z
44
+ </StatusUpdatedDateTime>
45
+ <SellerFulfillmentOrderId>extern_id_1154539615777
46
+ </SellerFulfillmentOrderId>
47
+ <DestinationAddress>
48
+ <PostalCode>98101</PostalCode>
49
+ <PhoneNumber>206-555-1928</PhoneNumber>
50
+ <Name>Greg Miller</Name>
51
+ <CountryCode>US</CountryCode>
52
+ <Line1>123 Some St.</Line1>
53
+ <StateOrProvinceCode>WA</StateOrProvinceCode>
54
+ <City>Seattle</City>
55
+ <Line2>Apt. 321</Line2>
56
+ </DestinationAddress>
57
+ <FulfillmentMethod>Consumer</FulfillmentMethod>
58
+ <DisplayableOrderDateTime>2006-08-02T17:26:56Z
59
+ </DisplayableOrderDateTime>
60
+ <FulfillmentPolicy>FillOrKill</FulfillmentPolicy>
61
+ <ReceivedDateTime>2006-08-02T17:26:56Z</ReceivedDateTime>
62
+ <DisplayableOrderId>test_displayable_id</DisplayableOrderId>
63
+ <DisplayableOrderComment>Sample comment.
64
+ </DisplayableOrderComment>
65
+ <FulfillmentOrderStatus>PROCESSING</FulfillmentOrderStatus>
66
+ </FulfillmentOrder>
67
+ <FulfillmentShipment>
68
+ <member>
69
+ <FulfillmentShipmentStatus>PENDING</FulfillmentShipmentStatus>
70
+ <FulfillmentShipmentItem>
71
+ <member>
72
+ <SellerSKU>ssof_dev_drt_afn_item</SellerSKU>
73
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_2
74
+ </SellerFulfillmentOrderItemId>
75
+ <Quantity>2</Quantity>
76
+ <PackageNumber>0</PackageNumber>
77
+ </member>
78
+ </FulfillmentShipmentItem>
79
+ <AmazonShipmentId>DnMDLWJWN</AmazonShipmentId>
80
+ <ShippingDateTime>2006-08-04T07:00:00Z</ShippingDateTime>
81
+ <FulfillmentCenterId>RNO1</FulfillmentCenterId>
82
+ <EstimatedArrivalDateTime>2006-08-12T07:00:00Z
83
+ </EstimatedArrivalDateTime>
84
+ </member>
85
+ </FulfillmentShipment>
86
+ </GetFulfillmentOrderResult>
87
+ <ResponseMetadata>
88
+ <RequestId>5e5e5694-8e76-11df-929f-87c80302f8f6</RequestId>
89
+ </ResponseMetadata>
90
+ </GetFulfillmentOrderResponse>
@@ -0,0 +1,121 @@
1
+ <?xml version="1.0"?>
2
+ <GetFulfillmentOrderResponse
3
+ xmlns="http://mws.amazonaws.com/FulfillmentOutboundShipment/2010-10-01/">
4
+ <GetFulfillmentOrderResult>
5
+ <FulfillmentOrderItem>
6
+ <member>
7
+ <SellerSKU>ssof_dev_drt_afn_item</SellerSKU>
8
+ <GiftMessage>test_giftwrap_message</GiftMessage>
9
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_2
10
+ </SellerFulfillmentOrderItemId>
11
+ <EstimatedShipDateTime>2008-03-08T07:07:53Z
12
+ </EstimatedShipDateTime>
13
+ <DisplayableComment>test_displayable_comment</DisplayableComment>
14
+ <OrderItemDisposition>Sellable</OrderItemDisposition>
15
+ <UnfulfillableQuantity>0</UnfulfillableQuantity>
16
+ <CancelledQuantity>1</CancelledQuantity>
17
+ <Quantity>5</Quantity>
18
+ <EstimatedArrivalDateTime>2008-03-08T08:07:53Z
19
+ </EstimatedArrivalDateTime>
20
+ </member>
21
+ <member>
22
+ <SellerSKU>ssof_dev_drt_keep_this_afn_always</SellerSKU>
23
+ <GiftMessage>test_giftwrap_message</GiftMessage>
24
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_1
25
+ </SellerFulfillmentOrderItemId>
26
+ <EstimatedShipDateTime>2008-03-09T07:07:53Z
27
+ </EstimatedShipDateTime>
28
+ <DisplayableComment>test_displayable_comment
29
+ </DisplayableComment>
30
+ <OrderItemDisposition>Sellable</OrderItemDisposition>
31
+ <UnfulfillableQuantity>2</UnfulfillableQuantity>
32
+ <CancelledQuantity>1</CancelledQuantity>
33
+ <Quantity>5</Quantity>
34
+ <EstimatedArrivalDateTime>2008-03-09T08:07:53Z
35
+ </EstimatedArrivalDateTime>
36
+ </member>
37
+ </FulfillmentOrderItem>
38
+ <FulfillmentOrder>
39
+ <ShippingSpeedCategory>Standard</ShippingSpeedCategory>
40
+ <NotificationEmailList>
41
+ <member>o8c2EXAMPLsfr7o@marketplace.amazon.com</member>
42
+ </NotificationEmailList>
43
+ <StatusUpdatedDateTime>2006-09-28T23:48:48Z
44
+ </StatusUpdatedDateTime>
45
+ <SellerFulfillmentOrderId>extern_id_1154539615776
46
+ </SellerFulfillmentOrderId>
47
+ <DestinationAddress>
48
+ <PostalCode>98101</PostalCode>
49
+ <PhoneNumber>206-555-1928</PhoneNumber>
50
+ <Name>Greg Miller</Name>
51
+ <CountryCode>US</CountryCode>
52
+ <Line1>123 Some St.</Line1>
53
+ <StateOrProvinceCode>WA</StateOrProvinceCode>
54
+ <City>Seattle</City>
55
+ <Line2>Apt. 321</Line2>
56
+ </DestinationAddress>
57
+ <FulfillmentMethod>Consumer</FulfillmentMethod>
58
+ <DisplayableOrderDateTime>2006-08-02T17:26:56Z
59
+ </DisplayableOrderDateTime>
60
+ <FulfillmentPolicy>FillOrKill</FulfillmentPolicy>
61
+ <ReceivedDateTime>2006-08-02T17:26:56Z</ReceivedDateTime>
62
+ <DisplayableOrderId>test_displayable_id</DisplayableOrderId>
63
+ <DisplayableOrderComment>Sample comment.
64
+ </DisplayableOrderComment>
65
+ <FulfillmentOrderStatus>PROCESSING</FulfillmentOrderStatus>
66
+ </FulfillmentOrder>
67
+ <FulfillmentShipment>
68
+ <member>
69
+ <FulfillmentShipmentStatus>SHIPPED</FulfillmentShipmentStatus>
70
+ <FulfillmentShipmentItem>
71
+ <member>
72
+ <SellerSKU>ssof_dev_drt_afn_item</SellerSKU>
73
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_2
74
+ </SellerFulfillmentOrderItemId>
75
+ <Quantity>2</Quantity>
76
+ <PackageNumber>0</PackageNumber>
77
+ </member>
78
+ </FulfillmentShipmentItem>
79
+ <AmazonShipmentId>DnMDLWJWN</AmazonShipmentId>
80
+ <ShippingDateTime>2006-08-04T07:00:00Z</ShippingDateTime>
81
+ <FulfillmentShipmentPackage>
82
+ <member>
83
+ <TrackingNumber>93YY00</TrackingNumber>
84
+ <CarrierCode>UPS</CarrierCode>
85
+ <PackageNumber>1</PackageNumber>
86
+ </member>
87
+ </FulfillmentShipmentPackage>
88
+ <FulfillmentCenterId>RNO1</FulfillmentCenterId>
89
+ <EstimatedArrivalDateTime>2006-08-12T07:00:00Z
90
+ </EstimatedArrivalDateTime>
91
+ </member>
92
+ <member>
93
+ <FulfillmentShipmentStatus>SHIPPED</FulfillmentShipmentStatus>
94
+ <FulfillmentShipmentItem>
95
+ <member>
96
+ <SellerSKU>ssof_dev_drt_afn_item</SellerSKU>
97
+ <SellerFulfillmentOrderItemId>test_merchant_order_item_id_2
98
+ </SellerFulfillmentOrderItemId>
99
+ <Quantity>1</Quantity>
100
+ <PackageNumber>1</PackageNumber>
101
+ </member>
102
+ </FulfillmentShipmentItem>
103
+ <AmazonShipmentId>DKMKLXJmN</AmazonShipmentId>
104
+ <ShippingDateTime>2006-08-03T07:00:00Z</ShippingDateTime>
105
+ <FulfillmentShipmentPackage>
106
+ <member>
107
+ <TrackingNumber>93ZZ00</TrackingNumber>
108
+ <CarrierCode>UPS</CarrierCode>
109
+ <PackageNumber>1</PackageNumber>
110
+ </member>
111
+ </FulfillmentShipmentPackage>
112
+ <FulfillmentCenterId>TST1</FulfillmentCenterId>
113
+ <EstimatedArrivalDateTime>2006-08-12T07:00:00Z
114
+ </EstimatedArrivalDateTime>
115
+ </member>
116
+ </FulfillmentShipment>
117
+ </GetFulfillmentOrderResult>
118
+ <ResponseMetadata>
119
+ <RequestId>5e5e5694-8e76-11df-929f-87c80302f8f6</RequestId>
120
+ </ResponseMetadata>
121
+ </GetFulfillmentOrderResponse>