active_fulfillment 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>