channeladvisor 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. data/.gitignore +7 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +6 -0
  4. data/.yardopts +8 -0
  5. data/Gemfile +31 -0
  6. data/Guardfile +28 -0
  7. data/LICENSE +19 -0
  8. data/README.md +40 -0
  9. data/Rakefile +69 -0
  10. data/channeladvisor.gemspec +29 -0
  11. data/lib/channeladvisor.rb +27 -0
  12. data/lib/channeladvisor/account_authorization.rb +14 -0
  13. data/lib/channeladvisor/address.rb +39 -0
  14. data/lib/channeladvisor/admin.rb +75 -0
  15. data/lib/channeladvisor/base.rb +34 -0
  16. data/lib/channeladvisor/client.rb +3 -0
  17. data/lib/channeladvisor/configuration.rb +11 -0
  18. data/lib/channeladvisor/error.rb +30 -0
  19. data/lib/channeladvisor/line_item.rb +38 -0
  20. data/lib/channeladvisor/order.rb +179 -0
  21. data/lib/channeladvisor/order_status.rb +14 -0
  22. data/lib/channeladvisor/payment.rb +15 -0
  23. data/lib/channeladvisor/services.rb +11 -0
  24. data/lib/channeladvisor/services/admin_service.rb +47 -0
  25. data/lib/channeladvisor/services/base_service.rb +26 -0
  26. data/lib/channeladvisor/services/inventory_service.rb +90 -0
  27. data/lib/channeladvisor/services/order_service.rb +117 -0
  28. data/lib/channeladvisor/services/shipping_service.rb +164 -0
  29. data/lib/channeladvisor/shipment.rb +71 -0
  30. data/lib/channeladvisor/shopping_cart.rb +26 -0
  31. data/lib/channeladvisor/version.rb +3 -0
  32. data/spec/fixtures/requests/admin_service/get_authorization_list.xml +1 -0
  33. data/spec/fixtures/requests/admin_service/get_authorization_list_with_local_id.xml +1 -0
  34. data/spec/fixtures/requests/admin_service/ping.xml +1 -0
  35. data/spec/fixtures/requests/admin_service/request_access.xml +1 -0
  36. data/spec/fixtures/requests/inventory_service/ping.xml +1 -0
  37. data/spec/fixtures/requests/inventory_service/update_inventory_item_quantity_and_price_list/with_one_item/price_only.xml +1 -0
  38. data/spec/fixtures/requests/inventory_service/update_inventory_item_quantity_and_price_list/with_one_item/quantity_and_price.xml +1 -0
  39. data/spec/fixtures/requests/inventory_service/update_inventory_item_quantity_and_price_list/with_one_item/quantity_only.xml +1 -0
  40. data/spec/fixtures/requests/inventory_service/update_inventory_item_quantity_and_price_list/with_two_items/price_only.xml +1 -0
  41. data/spec/fixtures/requests/inventory_service/update_inventory_item_quantity_and_price_list/with_two_items/quantity_and_price.xml +1 -0
  42. data/spec/fixtures/requests/inventory_service/update_inventory_item_quantity_and_price_list/with_two_items/quantity_only.xml +1 -0
  43. data/spec/fixtures/requests/inventory_service/update_item_price.xml +1 -0
  44. data/spec/fixtures/requests/inventory_service/update_item_quantity.xml +1 -0
  45. data/spec/fixtures/requests/inventory_service/update_item_quantity_and_price.xml +1 -0
  46. data/spec/fixtures/requests/order_service/get_order_list/with_checkout_status_filter.xml +1 -0
  47. data/spec/fixtures/requests/order_service/get_order_list/with_created_from_date.xml +1 -0
  48. data/spec/fixtures/requests/order_service/get_order_list/with_created_to_date.xml +1 -0
  49. data/spec/fixtures/requests/order_service/get_order_list/with_detail_level.xml +1 -0
  50. data/spec/fixtures/requests/order_service/get_order_list/with_distribution_center_code.xml +1 -0
  51. data/spec/fixtures/requests/order_service/get_order_list/with_export_state.xml +1 -0
  52. data/spec/fixtures/requests/order_service/get_order_list/with_join_dates.xml +1 -0
  53. data/spec/fixtures/requests/order_service/get_order_list/with_one_client_order_id.xml +1 -0
  54. data/spec/fixtures/requests/order_service/get_order_list/with_one_order_id.xml +1 -0
  55. data/spec/fixtures/requests/order_service/get_order_list/with_order_state_filter.xml +1 -0
  56. data/spec/fixtures/requests/order_service/get_order_list/with_page_number_filter.xml +1 -0
  57. data/spec/fixtures/requests/order_service/get_order_list/with_page_size.xml +1 -0
  58. data/spec/fixtures/requests/order_service/get_order_list/with_payment_status_filter.xml +1 -0
  59. data/spec/fixtures/requests/order_service/get_order_list/with_refund_status_filter.xml +1 -0
  60. data/spec/fixtures/requests/order_service/get_order_list/with_shipping_status_filter.xml +1 -0
  61. data/spec/fixtures/requests/order_service/get_order_list/with_two_client_order_ids.xml +1 -0
  62. data/spec/fixtures/requests/order_service/get_order_list/with_two_order_ids.xml +1 -0
  63. data/spec/fixtures/requests/order_service/get_order_list/with_updated_from_date.xml +1 -0
  64. data/spec/fixtures/requests/order_service/get_order_list/with_updated_to_date.xml +1 -0
  65. data/spec/fixtures/requests/order_service/get_order_list/without_order_criteria.xml +1 -0
  66. data/spec/fixtures/requests/order_service/ping.xml +1 -0
  67. data/spec/fixtures/requests/order_service/set_orders_export_status/with_one_client_order_id.xml +1 -0
  68. data/spec/fixtures/requests/order_service/set_orders_export_status/with_two_client_order_ids.xml +1 -0
  69. data/spec/fixtures/requests/shipping_service/get_shipping_carrier_list.xml +1 -0
  70. data/spec/fixtures/requests/shipping_service/ping.xml +1 -0
  71. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/full_shipment/with_one_shipment.xml +1 -0
  72. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/full_shipment/with_two_shipments.xml +1 -0
  73. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/full_shipment/without_carrier_code.xml +1 -0
  74. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/full_shipment/without_class_code.xml +1 -0
  75. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/full_shipment/without_client_order_id.xml +1 -0
  76. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/full_shipment/without_seller_id.xml +1 -0
  77. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/full_shipment/without_tracking_number.xml +1 -0
  78. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/partial_shipment/with_one_line_item.xml +1 -0
  79. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/partial_shipment/with_two_line_items.xml +1 -0
  80. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/partial_shipment/with_two_shipments.xml +1 -0
  81. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/partial_shipment/without_carrier_code.xml +1 -0
  82. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/partial_shipment/without_class_code.xml +1 -0
  83. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/partial_shipment/without_seller_id.xml +1 -0
  84. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/partial_shipment/without_tracking_number.xml +1 -0
  85. data/spec/fixtures/requests/shipping_service/submit_order_shipment_list/with_partial_and_full_shipments.xml +1 -0
  86. data/spec/fixtures/responses/admin/get_authorization_list/failure.yml +50 -0
  87. data/spec/fixtures/responses/admin/get_authorization_list/no_authorizations.yml +49 -0
  88. data/spec/fixtures/responses/admin/get_authorization_list/one_authorization.yml +49 -0
  89. data/spec/fixtures/responses/admin/get_authorization_list/success.yml +49 -0
  90. data/spec/fixtures/responses/admin/get_authorization_list/two_authorizations.yml +49 -0
  91. data/spec/fixtures/responses/admin/ping/failure.yml +50 -0
  92. data/spec/fixtures/responses/admin/ping/success.yml +218 -0
  93. data/spec/fixtures/responses/admin/request_access/failure.yml +50 -0
  94. data/spec/fixtures/responses/admin/request_access/success.yml +49 -0
  95. data/spec/fixtures/responses/admin_service/get_authorization_list/with_invalid_local_id.yml +219 -0
  96. data/spec/fixtures/responses/admin_service/get_authorization_list/with_local_id/success.yml +218 -0
  97. data/spec/fixtures/responses/admin_service/get_authorization_list/with_valid_local_id/multiple_authorizations.yml +49 -0
  98. data/spec/fixtures/responses/admin_service/get_authorization_list/with_valid_local_id/no_authorizations.yml +49 -0
  99. data/spec/fixtures/responses/admin_service/get_authorization_list/with_valid_local_id/one_authorization.yml +49 -0
  100. data/spec/fixtures/responses/admin_service/get_authorization_list/with_valid_local_id/success.yml +218 -0
  101. data/spec/fixtures/responses/admin_service/get_authorization_list/without_local_id/multiple_authorizations.yml +49 -0
  102. data/spec/fixtures/responses/admin_service/get_authorization_list/without_local_id/no_authorizations.yml +49 -0
  103. data/spec/fixtures/responses/admin_service/get_authorization_list/without_local_id/one_authorization.yml +49 -0
  104. data/spec/fixtures/responses/admin_service/get_authorization_list/without_local_id/success.yml +218 -0
  105. data/spec/fixtures/responses/admin_service/ping/failure.yml +222 -0
  106. data/spec/fixtures/responses/admin_service/ping/success.yml +218 -0
  107. data/spec/fixtures/responses/admin_service/request_access/failure.yml +219 -0
  108. data/spec/fixtures/responses/admin_service/request_access/success.yml +218 -0
  109. data/spec/fixtures/responses/http_error.yml +48 -0
  110. data/spec/fixtures/responses/inventory_service/ping.yml +1356 -0
  111. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price.yml +1356 -0
  112. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price/price_only.yml +144 -0
  113. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price/quantity_and_price.yml +191 -0
  114. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price/quantity_only.yml +1403 -0
  115. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price_list.yml +243 -0
  116. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price_list/with_one_item/price_only.yml +97 -0
  117. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price_list/with_one_item/quantity_and_price.yml +144 -0
  118. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price_list/with_one_item/quantity_only.yml +51 -0
  119. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price_list/with_two_items/price_only.yml +238 -0
  120. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price_list/with_two_items/quantity_and_price.yml +285 -0
  121. data/spec/fixtures/responses/inventory_service/update_inventory_item_quantity_and_price_list/with_two_items/quantity_only.yml +191 -0
  122. data/spec/fixtures/responses/order/instance_set_export_status.yml +51 -0
  123. data/spec/fixtures/responses/order/instance_set_export_status/failure.yml +51 -0
  124. data/spec/fixtures/responses/order/instance_set_export_status/success/result_false.yml +51 -0
  125. data/spec/fixtures/responses/order/instance_set_export_status/success/result_true.yml +51 -0
  126. data/spec/fixtures/responses/order/list.yml +58 -0
  127. data/spec/fixtures/responses/order/list/failure.yml +56 -0
  128. data/spec/fixtures/responses/order/list/no_matching_orders.yml +56 -0
  129. data/spec/fixtures/responses/order/list/one_matching_order.yml +57 -0
  130. data/spec/fixtures/responses/order/list/two_matching_orders.yml +59 -0
  131. data/spec/fixtures/responses/order/list/with_criteria.yml +52 -0
  132. data/spec/fixtures/responses/order/list/with_no_criteria.yml +58 -0
  133. data/spec/fixtures/responses/order/ping.yml +868 -0
  134. data/spec/fixtures/responses/order/ping/failure.yml +50 -0
  135. data/spec/fixtures/responses/order/ping/success.yml +867 -0
  136. data/spec/fixtures/responses/order/set_export_status/failure.yml +51 -0
  137. data/spec/fixtures/responses/order/set_export_status/success/with_one_client_order_id.yml +51 -0
  138. data/spec/fixtures/responses/order/set_export_status/success/with_two_client_order_ids.yml +51 -0
  139. data/spec/fixtures/responses/order_service/get_order_list/.gitkeep +0 -0
  140. data/spec/fixtures/responses/order_service/get_order_list/with_checkout_status_filter.yml +875 -0
  141. data/spec/fixtures/responses/order_service/get_order_list/with_created_from_date.yml +874 -0
  142. data/spec/fixtures/responses/order_service/get_order_list/with_created_to_date.yml +874 -0
  143. data/spec/fixtures/responses/order_service/get_order_list/with_detail_level.yml +875 -0
  144. data/spec/fixtures/responses/order_service/get_order_list/with_distribution_center_code.yml +872 -0
  145. data/spec/fixtures/responses/order_service/get_order_list/with_export_state.yml +875 -0
  146. data/spec/fixtures/responses/order_service/get_order_list/with_join_dates.yml +869 -0
  147. data/spec/fixtures/responses/order_service/get_order_list/with_one_client_order_id.yml +872 -0
  148. data/spec/fixtures/responses/order_service/get_order_list/with_one_order_id.yml +873 -0
  149. data/spec/fixtures/responses/order_service/get_order_list/with_order_state_filter.yml +875 -0
  150. data/spec/fixtures/responses/order_service/get_order_list/with_page_number_filter.yml +875 -0
  151. data/spec/fixtures/responses/order_service/get_order_list/with_page_size.yml +874 -0
  152. data/spec/fixtures/responses/order_service/get_order_list/with_payment_status_filter.yml +875 -0
  153. data/spec/fixtures/responses/order_service/get_order_list/with_refund_status_filter.yml +875 -0
  154. data/spec/fixtures/responses/order_service/get_order_list/with_shipping_status_filter.yml +875 -0
  155. data/spec/fixtures/responses/order_service/get_order_list/with_two_client_order_ids.yml +872 -0
  156. data/spec/fixtures/responses/order_service/get_order_list/with_two_order_ids.yml +875 -0
  157. data/spec/fixtures/responses/order_service/get_order_list/with_updated_from_date.yml +874 -0
  158. data/spec/fixtures/responses/order_service/get_order_list/with_updated_to_date.yml +874 -0
  159. data/spec/fixtures/responses/order_service/get_order_list/without_order_criteria.yml +871 -0
  160. data/spec/fixtures/responses/order_service/get_order_refund_history/.gitkeep +0 -0
  161. data/spec/fixtures/responses/order_service/order_merge/.gitkeep +0 -0
  162. data/spec/fixtures/responses/order_service/order_split/.gitkeep +0 -0
  163. data/spec/fixtures/responses/order_service/ping/.gitkeep +0 -0
  164. data/spec/fixtures/responses/order_service/ping/failure.yml +871 -0
  165. data/spec/fixtures/responses/order_service/ping/success.yml +868 -0
  166. data/spec/fixtures/responses/order_service/set_orders_export_status/with_one_client_order_id.yml +867 -0
  167. data/spec/fixtures/responses/order_service/set_orders_export_status/with_two_client_order_id.yml +867 -0
  168. data/spec/fixtures/responses/order_service/set_seller_order_id/.gitkeep +0 -0
  169. data/spec/fixtures/responses/order_service/set_seller_order_item_id_list/.gitkeep +0 -0
  170. data/spec/fixtures/responses/order_service/submit_order/.gitkeep +0 -0
  171. data/spec/fixtures/responses/order_service/submit_order_refund/.gitkeep +0 -0
  172. data/spec/fixtures/responses/order_service/update_order_list/.gitkeep +0 -0
  173. data/spec/fixtures/responses/shipment/get_carriers.yml +53 -0
  174. data/spec/fixtures/responses/shipment/get_carriers/failure.yml +52 -0
  175. data/spec/fixtures/responses/shipment/submit.yml +464 -0
  176. data/spec/fixtures/responses/shipment/submit/failure.yml +462 -0
  177. data/spec/fixtures/responses/shipment/submit/one_shipment.yml +464 -0
  178. data/spec/fixtures/responses/shipment/submit/two_shipments.yml +56 -0
  179. data/spec/fixtures/responses/shipping_service/get_shipping_carrier_list.yml +953 -0
  180. data/spec/fixtures/responses/shipping_service/ping/failure.yml +55 -0
  181. data/spec/fixtures/responses/shipping_service/ping/success.yml +460 -0
  182. data/spec/fixtures/responses/shipping_service/submit_order_shipment_list.yml +55 -0
  183. data/spec/fixtures/responses/soap_fault.yml +53 -0
  184. data/spec/lib/channeladvisor/address_spec.rb +107 -0
  185. data/spec/lib/channeladvisor/admin_spec.rb +216 -0
  186. data/spec/lib/channeladvisor/line_item_spec.rb +147 -0
  187. data/spec/lib/channeladvisor/order_spec.rb +623 -0
  188. data/spec/lib/channeladvisor/order_status_spec.rb +36 -0
  189. data/spec/lib/channeladvisor/payment_spec.rb +38 -0
  190. data/spec/lib/channeladvisor/services/admin_service_spec.rb +65 -0
  191. data/spec/lib/channeladvisor/services/base_service_spec.rb +11 -0
  192. data/spec/lib/channeladvisor/services/inventory_service_spec.rb +214 -0
  193. data/spec/lib/channeladvisor/services/order_service_spec.rb +267 -0
  194. data/spec/lib/channeladvisor/services/shipping_service_spec.rb +288 -0
  195. data/spec/lib/channeladvisor/shipment_spec.rb +257 -0
  196. data/spec/lib/channeladvisor/shopping_cart_spec.rb +173 -0
  197. data/spec/lib/channeladvisor_spec.rb +18 -0
  198. data/spec/spec_helper.rb +29 -0
  199. data/spec/support/credentials.rb +15 -0
  200. data/spec/support/matchers/boolean.rb +17 -0
  201. data/spec/support/matchers/markup.rb +50 -0
  202. data/spec/support/rr.rb +38 -0
  203. data/spec/support/shared_examples.rb +4 -0
  204. data/spec/support/vcr.rb +38 -0
  205. metadata +501 -0
@@ -0,0 +1,117 @@
1
+ module ChannelAdvisor
2
+ module Services
3
+ class OrderService < BaseService
4
+ document "https://api.channeladvisor.com/ChannelAdvisorAPI/v6/OrderService.asmx?WSDL"
5
+
6
+ class << self
7
+ # Check authorization for and availability of the order service
8
+ #
9
+ # @return [HTTPI::Response] HTTP response object containing the SOAP XML response
10
+ def ping
11
+ soap_response = client.request :ping do
12
+ soap.header = soap_header
13
+ end
14
+
15
+ @last_request = client.http
16
+ @last_response = soap_response
17
+ end # ping
18
+
19
+ # Retrieve a list of orders filtered by order criteria
20
+ #
21
+ # @example List orders created between 11/11/2011 and 11/15/2011
22
+ # order_service.get_order_list(:created_from => DateTime.new(2011,11,11), :created_to => DateTime.new(2011,11,15))
23
+ #
24
+ # @example List orders with an order ID in the given list
25
+ # order_service.get_order_list(:order_ids => [12345, 67890])
26
+ #
27
+ # @param [optional, Hash] criteria Criteria used to filter the order list
28
+ # @option criteria [DateTime] :created_from Order creation start time in GMT/UTC
29
+ # @option criteria [DateTime] :created_to Order creation end time in GMT/UTC
30
+ # @option criteria [DateTime] :updated_from Order update start time in GMT/UTC
31
+ # @option criteria [DateTime] :updated_to Order update end time in GMT/UTC
32
+ # @option criteria [Boolean] :join_dates `true` indicates that orders satisfy both
33
+ # the created date range and the updated date range
34
+ # @option criteria [String] :detail_level `Low`, `Medium`, `High` or `Complete`
35
+ # @option criteria [String] :export_state `Unknown`, `NotExported` or `Exported`
36
+ # @option criteria [Array<Integer>] :order_ids List of order IDs
37
+ # @option criteria [Array<String>] :client_order_ids List of client order IDs
38
+ # @option criteria [String] :state `Active`, `Archived`, or `Cancelled`
39
+ # @option criteria [String] :payment_status `NoChange`, `NotSubmitted`, `Cleared`, `Submitted`, `Failed`, or `Deposited`
40
+ # @option criteria [String] :checkout_status `NoChange`, `NotVisited`, `Completed`, `Visited`, `Cancelled`, `CompletedOffline`, or `OnHold`
41
+ # @option criteria [String] :shipping_status `NoChange`, `Unshipped`, `PendingShipment`, `PartiallyShipped`, or `Shipped`
42
+ # @option criteria [String] :refund_status `NoRefunds`, `OrderLevel`, `LineItemLevel`, `OrderAndLineItemLevel`, or `FailedAttemptsOnly`
43
+ # @option criteria [String] :distribution_center Only orders containing at least one item from the specified distribution center
44
+ # @option criteria [Integer] :page_number Page number of result set
45
+ # @option criteria [Integer] :page_size Size of each page in result set
46
+ #
47
+ # @return [HTTPI::Response] HTTP response object containing the SOAP XML response
48
+ def get_order_list(criteria = {})
49
+ order_criteria = {}
50
+ order_criteria["ins1:OrderCreationFilterBeginTimeGMT"] = criteria[:created_from]
51
+ order_criteria["ins1:OrderCreationFilterEndTimeGMT"] = criteria[:created_to]
52
+ order_criteria["ins1:StatusUpdateFilterBeginTimeGMT"] = criteria[:updated_from]
53
+ order_criteria["ins1:StatusUpdateFilterEndTimeGMT"] = criteria[:updated_to]
54
+ order_criteria["ins1:JoinDateFiltersWithOr"] = criteria[:join_dates]
55
+
56
+ if order_ids = criteria[:order_ids]
57
+ order_criteria["ins1:OrderIDList"] = {"ins1:int" => order_ids}
58
+ end
59
+
60
+ if client_order_ids = criteria[:client_order_ids]
61
+ order_criteria["ins1:ClientOrderIdentifierList"] = {"ins1:string" => client_order_ids}
62
+ end
63
+
64
+ order_criteria["ins1:DetailLevel"] = criteria[:detail_level] if criteria[:detail_level]
65
+ order_criteria["ins1:ExportState"] = criteria[:export_state] if criteria[:export_state]
66
+ order_criteria["ins1:OrderStateFilter"] = criteria[:state] if criteria[:state]
67
+ order_criteria["ins1:PaymentStatusFilter"] = criteria[:payment_status] if criteria[:payment_status]
68
+ order_criteria["ins1:CheckoutStatusFilter"] = criteria[:checkout_status] if criteria[:checkout_status]
69
+ order_criteria["ins1:ShippingStatusFilter"] = criteria[:shipping_status] if criteria[:shipping_status]
70
+ order_criteria["ins1:RefundStatusFilter"] = criteria[:refund_status] if criteria[:refund_status]
71
+ order_criteria["ins1:DistributionCenterCode"] = criteria[:distribution_center] if criteria[:distribution_center]
72
+ order_criteria["ins1:PageNumberFilter"] = criteria[:page_number]
73
+ order_criteria["ins1:PageSize"] = criteria[:page_size]
74
+
75
+ soap_response = client.request :get_order_list do
76
+ soap.header = soap_header
77
+ soap.body = {
78
+ "ins0:accountID" => creds(:account_id),
79
+ "ins0:orderCriteria" => order_criteria
80
+ }
81
+ end
82
+
83
+ @last_request = client.http
84
+ @last_response = soap_response
85
+ end # get_order_list
86
+
87
+ # Set the export status for a list of orders
88
+ #
89
+ # @example Mark orders as exported
90
+ # order_service.set_orders_export_status(['ABCD1234', 'EFGH5678'], true)
91
+ #
92
+ # @example Mark orders as not exported
93
+ # order_service.set_orders_export_status(['ABCD1234', 'EFGH5678'], false)
94
+ #
95
+ # @param [Array] client_order_ids List of client order identifiers
96
+ # @param [Boolean] mark_as_exported Set the order to exported (`true`) or not exported (`false`)
97
+ #
98
+ # @return [HTTPI::Response] HTTP response object containing the SOAP XML response
99
+ def set_orders_export_status(client_order_ids, mark_as_exported)
100
+ soap_response = client.request :set_orders_export_status do
101
+ soap.header = soap_header
102
+ soap.body = {
103
+ "ins0:accountID" => creds(:account_id),
104
+ "ins0:clientOrderIdentifiers" => {
105
+ "ins0:string" => client_order_ids
106
+ },
107
+ "ins0:markAsExported" => mark_as_exported
108
+ }
109
+ end
110
+
111
+ @last_request = client.http
112
+ @last_response = soap_response
113
+ end # set_orders_export_status
114
+ end
115
+ end # OrderService
116
+ end # Services
117
+ end # ChannelAdvisor
@@ -0,0 +1,164 @@
1
+ module ChannelAdvisor
2
+ module Services
3
+ class ShippingService < BaseService
4
+ document "https://api.channeladvisor.com/ChannelAdvisorAPI/v6/ShippingService.asmx?WSDL"
5
+
6
+ class << self
7
+ # Check authorization for and availability of the shipping service
8
+ #
9
+ # @return [Savon::SOAP::Response] SOAP XML response object
10
+ def ping
11
+ client.request :ping do
12
+ soap.header = soap_header
13
+ end
14
+ end
15
+
16
+ # Submit a list of order shipments (full or partial)
17
+ #
18
+ # @param [Hash, Array<Hash>] shipment_data One or more shipment hashes
19
+ #
20
+ # @return [Savon::SOAP::Response] SOAP XML response object
21
+ #
22
+ # @example Submit a partial shipment
23
+ # partial_shipment = {
24
+ # :order_id => 123456,
25
+ # :client_order_id => "ABCD1234",
26
+ # :type => "Partial",
27
+ # :line_items => [{:sku => "ABCD", :quantity => 5}],
28
+ # :date => DateTime.new(2012,05,19),
29
+ # :carrier => "UPS",
30
+ # :class => "GND",
31
+ # :tracking_number => "1ZABCD2134567890",
32
+ # :seller_id => "999999",
33
+ # :cost => 7.50,
34
+ # :tax => 1.50,
35
+ # :insurance => 2.50
36
+ # }
37
+ #
38
+ # ShippingService.submit_order_shipment_list(partial_shipment)
39
+ #
40
+ # @example Submit a full shipment
41
+ # full_shipment = {
42
+ # :order_id => 123456,
43
+ # :client_order_id => "ABCD1234",
44
+ # :type => "Full",
45
+ # :date => DateTime.new(2012,05,19),
46
+ # :carrier => "UPS",
47
+ # :class => "GND",
48
+ # :tracking_number => "1ZABCD2134567890",
49
+ # :seller_id => "999999",
50
+ # :cost => 7.50,
51
+ # :tax => 1.50,
52
+ # :insurance => 2.50
53
+ # }
54
+ #
55
+ # ShippingService.submit_order_shipment_list(full_shipment)
56
+ #
57
+ # @example Submit multiple shipments
58
+ # partial_shipment = {
59
+ # :order_id => 123456,
60
+ # :client_order_id => "ABCD1234",
61
+ # :type => "Partial",
62
+ # :line_items => [{:sku => "ABCD", :quantity => 5}],
63
+ # :date => DateTime.new(2012,05,19),
64
+ # :carrier => "UPS",
65
+ # :class => "GND",
66
+ # :tracking_number => "1ZABCD2134567890",
67
+ # :seller_id => "999999",
68
+ # :cost => 7.50,
69
+ # :tax => 1.50,
70
+ # :insurance => 2.50
71
+ # }
72
+ #
73
+ # full_shipment = {
74
+ # :order_id => 123456,
75
+ # :client_order_id => "ABCD1234",
76
+ # :type => "Full",
77
+ # :date => DateTime.new(2012,05,19),
78
+ # :carrier => "UPS",
79
+ # :class => "GND",
80
+ # :tracking_number => "1ZABCD2134567890",
81
+ # :seller_id => "999999",
82
+ # :cost => 7.50,
83
+ # :tax => 1.50,
84
+ # :insurance => 2.50
85
+ # }
86
+ #
87
+ # shipments = []
88
+ # shipments << partial_shipment
89
+ # shipments << full_shipment
90
+ #
91
+ # ShippingService.submit_order_shipment_list(shipments)
92
+ def submit_order_shipment_list(shipment_data)
93
+ shipments = shipment_data.map { |shipment| build_shipment(shipment) }
94
+ order_shipment = shipments.count > 1 ? shipments : shipments.first
95
+
96
+ client.request :submit_order_shipment_list do
97
+ soap.header = soap_header
98
+ soap.body = {
99
+ "ins0:accountID" => creds(:account_id),
100
+ "ins0:ShipmentList" => {
101
+ "ins0:ShipmentList" => {
102
+ "ins0:OrderShipment" => order_shipment
103
+ }
104
+ }
105
+ }
106
+ end
107
+ end
108
+
109
+ def get_shipping_carrier_list
110
+ client.request :get_shipping_carrier_list do
111
+ soap.header = soap_header
112
+ soap.body = {"ins0:accountID" => creds(:account_id)}
113
+ end
114
+ end
115
+
116
+ private
117
+
118
+ def build_shipment(shipment)
119
+ order_shipment = {}
120
+ order_shipment["ins0:OrderId"] = shipment[:order_id]
121
+ order_shipment["ins0:ClientOrderIdentifier"] = shipment[:client_order_id] if shipment[:client_order_id]
122
+ order_shipment["ins0:ShipmentType"] = shipment[:type]
123
+
124
+ if shipment[:type] == "Partial"
125
+ partial_shipment = order_shipment["ins0:PartialShipment"] = {
126
+ "ins0:shipmentContents" => {
127
+ "ins0:LineItemList" => {
128
+ "ins0:LineItem" => []
129
+ }
130
+ }
131
+ }
132
+
133
+ line_items = partial_shipment["ins0:shipmentContents"]["ins0:LineItemList"]["ins0:LineItem"]
134
+
135
+ shipment[:line_items].each do |item|
136
+ line_items << {"ins0:SKU" => item[:sku], "ins0:Quantity" => item[:quantity]}
137
+ end
138
+
139
+ partial_shipment["ins0:dateShippedGMT"] = shipment[:date]
140
+ partial_shipment["ins0:carrierCode"] = shipment[:carrier] if shipment[:carrier]
141
+ partial_shipment["ins0:classCode"] = shipment[:class] if shipment[:class]
142
+ partial_shipment["ins0:trackingNumber"] = shipment[:tracking_number] if shipment[:tracking_number]
143
+ partial_shipment["ins0:sellerFulfillmentID"] = shipment[:seller_id] if shipment[:seller_id]
144
+ partial_shipment["ins0:shipmentCost"] = shipment[:cost]
145
+ partial_shipment["ins0:shipmentTaxCost"] = shipment[:tax]
146
+ partial_shipment["ins0:insuranceCost"] = shipment[:insurance]
147
+ else
148
+ full_shipment = order_shipment["ins0:FullShipment"] = {}
149
+ full_shipment["ins0:dateShippedGMT"] = shipment[:date]
150
+ full_shipment["ins0:carrierCode"] = shipment[:carrier] if shipment[:carrier]
151
+ full_shipment["ins0:classCode"] = shipment[:class] if shipment[:class]
152
+ full_shipment["ins0:trackingNumber"] = shipment[:tracking_number] if shipment[:tracking_number]
153
+ full_shipment["ins0:sellerFulfillmentID"] = shipment[:seller_id] if shipment[:seller_id]
154
+ full_shipment["ins0:shipmentCost"] = shipment[:cost]
155
+ full_shipment["ins0:shipmentTaxCost"] = shipment[:tax]
156
+ full_shipment["ins0:insuranceCost"] = shipment[:insurance]
157
+ end
158
+
159
+ return order_shipment
160
+ end # build_shipment
161
+ end # self
162
+ end # ShippingService
163
+ end # Services
164
+ end # ChannelAdvisor
@@ -0,0 +1,71 @@
1
+ module ChannelAdvisor
2
+ class Shipment < Base
3
+ attr_accessor :shipping_carrier, :shipping_class, :tracking_number
4
+
5
+ def initialize(attrs={})
6
+ @shipping_carrier = attrs[:shipping_carrier]
7
+ @shipping_class = attrs[:shipping_class]
8
+ @tracking_number = attrs[:tracking_number]
9
+ end
10
+
11
+ # Submit shipments for one or more orders. When called with a single shipment the return
12
+ # value will be a single boolean value, otherwise a hash of value will be returned.
13
+ #
14
+ # @param [Hash, Array<Hash>] shipment_data A shipment hash or array of shipment hashes
15
+ #
16
+ # @raise [ServiceFailure] If the service returns a Failure status
17
+ # @raise [SOAPFault] If the service responds with a SOAP fault
18
+ # @raise [HTTPError] If the service responds with an HTTP error
19
+ #
20
+ # @return [Boolean, Hash] Returns a boolean or a hash of order IDs and their corresponding boolean results
21
+ def self.submit(shipment_data)
22
+ handle_errors do
23
+ shipments = arrayify(shipment_data)
24
+
25
+ shipments.each do |shipment|
26
+ shipment[:type] = shipment[:line_items] ? "Partial" : "Full"
27
+ shipment[:date] ||= DateTime.now
28
+ shipment[:cost] = "%.2f" % shipment[:cost].to_f
29
+ shipment[:tax] = "%.2f" % shipment[:tax].to_f
30
+ shipment[:insurance] = "%.2f" % shipment[:insurance].to_f
31
+ end
32
+
33
+ response = Services::ShippingService.submit_order_shipment_list(shipments)
34
+ result = response[:submit_order_shipment_list_response][:submit_order_shipment_list_result]
35
+ check_status_of result
36
+
37
+ shipment_responses = arrayify result[:result_data][:shipment_response]
38
+
39
+ if shipment_responses.count == 1
40
+ return shipment_responses.first[:success]
41
+ else
42
+ result_hash = {}
43
+
44
+ shipment_responses.each do |shipment_response|
45
+ shipments.each do |shipment|
46
+ result_hash[shipment[:order_id].to_s] = shipment_response[:success]
47
+ end
48
+ end
49
+
50
+ return result_hash
51
+ end
52
+ end
53
+ end # self.submit
54
+
55
+ # Get a list of all valid shipping carriers and classes
56
+ #
57
+ # @raise [ServiceFailure] If the service returns a Failure status
58
+ # @raise [SOAPFault] If the service responds with a SOAP fault
59
+ # @raise [HTTPError] If the service responds with an HTTP error
60
+ #
61
+ # @return [Array<Hash>] An array of shipping carrier hashes
62
+ def self.get_carriers
63
+ handle_errors do
64
+ response = Services::ShippingService.get_shipping_carrier_list
65
+ result = response[:get_shipping_carrier_list_response][:get_shipping_carrier_list_result]
66
+ check_status_of result
67
+ arrayify result[:result_data][:shipping_carrier]
68
+ end
69
+ end # self.get_carriers
70
+ end # Shipment
71
+ end # ChannelAdvisor
@@ -0,0 +1,26 @@
1
+ module ChannelAdvisor
2
+ class ShoppingCart < Base
3
+ attr_accessor :id, :checkout_source, :vat_tax_calculation_option, :vat_shipping_option,
4
+ :vat_gift_wrap_option, :items, :invoices, :promos
5
+
6
+ def initialize(attrs={})
7
+ @id = attrs[:cart_id]
8
+ @checkout_source = attrs[:checkout_source]
9
+ @vat_tax_calculation_option = attrs[:vat_tax_calculation_option]
10
+ @vat_shipping_option = attrs[:vat_shipping_option]
11
+ @vat_gift_wrap_option = attrs[:vat_gift_wrap_option]
12
+
13
+ if items = attrs[:line_item_sku_list]
14
+ @items = arrayify(items[:order_line_item_item]).map { |l| LineItem.new(l) }
15
+ end
16
+
17
+ if invoices = attrs[:line_item_invoice_list]
18
+ @invoices = arrayify(invoices[:order_line_item_invoice]).map { |i| LineItem.new(i) }
19
+ end
20
+
21
+ if promos = attrs[:line_item_promo_list]
22
+ @promos = arrayify(promos[:order_line_item_promo]).map { |p| LineItem.new(p) }
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,3 @@
1
+ module ChannelAdvisor
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:GetAuthorizationList></ins0:GetAuthorizationList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:GetAuthorizationList><ins0:localID>$$LOCAL_ID$$</ins0:localID></ins0:GetAuthorizationList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:Ping></ins0:Ping></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:RequestAccess><ins0:localID>$$LOCAL_ID$$</ins0:localID></ins0:RequestAccess></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:Ping></ins0:Ping></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:UpdateInventoryItemQuantityAndPriceList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:itemQuantityAndPriceList><ins0:InventoryItemQuantityAndPrice><ins0:Sku>FAKE001</ins0:Sku><ins0:PriceInfo><ins0:Cost>2.99</ins0:Cost><ins0:RetailPrice>11.99</ins0:RetailPrice><ins0:StartingPrice>5.99</ins0:StartingPrice><ins0:ReservePrice>7.99</ins0:ReservePrice><ins0:TakeItPrice>9.99</ins0:TakeItPrice><ins0:SecondChanceOfferPrice>8.99</ins0:SecondChanceOfferPrice><ins0:StorePrice>9.49</ins0:StorePrice></ins0:PriceInfo></ins0:InventoryItemQuantityAndPrice></ins0:itemQuantityAndPriceList></ins0:UpdateInventoryItemQuantityAndPriceList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:UpdateInventoryItemQuantityAndPriceList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:itemQuantityAndPriceList><ins0:InventoryItemQuantityAndPrice><ins0:Sku>FAKE001</ins0:Sku><ins0:QuantityInfo><ins0:UpdateType>Absolute</ins0:UpdateType><ins0:Total>5000</ins0:Total></ins0:QuantityInfo><ins0:PriceInfo><ins0:Cost>2.99</ins0:Cost><ins0:RetailPrice>11.99</ins0:RetailPrice><ins0:StartingPrice>5.99</ins0:StartingPrice><ins0:ReservePrice>7.99</ins0:ReservePrice><ins0:TakeItPrice>9.99</ins0:TakeItPrice><ins0:SecondChanceOfferPrice>8.99</ins0:SecondChanceOfferPrice><ins0:StorePrice>9.49</ins0:StorePrice></ins0:PriceInfo></ins0:InventoryItemQuantityAndPrice></ins0:itemQuantityAndPriceList></ins0:UpdateInventoryItemQuantityAndPriceList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:UpdateInventoryItemQuantityAndPriceList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:itemQuantityAndPriceList><ins0:InventoryItemQuantityAndPrice><ins0:Sku>FAKE001</ins0:Sku><ins0:QuantityInfo><ins0:UpdateType>Absolute</ins0:UpdateType><ins0:Total>5000</ins0:Total></ins0:QuantityInfo></ins0:InventoryItemQuantityAndPrice></ins0:itemQuantityAndPriceList></ins0:UpdateInventoryItemQuantityAndPriceList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:UpdateInventoryItemQuantityAndPriceList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:itemQuantityAndPriceList><ins0:InventoryItemQuantityAndPrice><ins0:Sku>FAKE001</ins0:Sku><ins0:PriceInfo><ins0:Cost>2.99</ins0:Cost><ins0:RetailPrice>11.99</ins0:RetailPrice><ins0:StartingPrice>5.99</ins0:StartingPrice><ins0:ReservePrice>7.99</ins0:ReservePrice><ins0:TakeItPrice>9.99</ins0:TakeItPrice><ins0:SecondChanceOfferPrice>8.99</ins0:SecondChanceOfferPrice><ins0:StorePrice>9.49</ins0:StorePrice></ins0:PriceInfo></ins0:InventoryItemQuantityAndPrice><ins0:InventoryItemQuantityAndPrice><ins0:Sku>FAKE002</ins0:Sku><ins0:PriceInfo><ins0:Cost>3.99</ins0:Cost><ins0:RetailPrice>10.99</ins0:RetailPrice><ins0:StartingPrice>4.99</ins0:StartingPrice><ins0:ReservePrice>7.99</ins0:ReservePrice><ins0:TakeItPrice>8.99</ins0:TakeItPrice><ins0:SecondChanceOfferPrice>6.99</ins0:SecondChanceOfferPrice><ins0:StorePrice>8.49</ins0:StorePrice></ins0:PriceInfo></ins0:InventoryItemQuantityAndPrice></ins0:itemQuantityAndPriceList></ins0:UpdateInventoryItemQuantityAndPriceList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:UpdateInventoryItemQuantityAndPriceList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:itemQuantityAndPriceList><ins0:InventoryItemQuantityAndPrice><ins0:Sku>FAKE001</ins0:Sku><ins0:QuantityInfo><ins0:UpdateType>Absolute</ins0:UpdateType><ins0:Total>5000</ins0:Total></ins0:QuantityInfo><ins0:PriceInfo><ins0:Cost>2.99</ins0:Cost><ins0:RetailPrice>11.99</ins0:RetailPrice><ins0:StartingPrice>5.99</ins0:StartingPrice><ins0:ReservePrice>7.99</ins0:ReservePrice><ins0:TakeItPrice>9.99</ins0:TakeItPrice><ins0:SecondChanceOfferPrice>8.99</ins0:SecondChanceOfferPrice><ins0:StorePrice>9.49</ins0:StorePrice></ins0:PriceInfo></ins0:InventoryItemQuantityAndPrice><ins0:InventoryItemQuantityAndPrice><ins0:Sku>FAKE002</ins0:Sku><ins0:QuantityInfo><ins0:UpdateType>Absolute</ins0:UpdateType><ins0:Total>7500</ins0:Total></ins0:QuantityInfo><ins0:PriceInfo><ins0:Cost>3.99</ins0:Cost><ins0:RetailPrice>10.99</ins0:RetailPrice><ins0:StartingPrice>4.99</ins0:StartingPrice><ins0:ReservePrice>7.99</ins0:ReservePrice><ins0:TakeItPrice>8.99</ins0:TakeItPrice><ins0:SecondChanceOfferPrice>6.99</ins0:SecondChanceOfferPrice><ins0:StorePrice>8.49</ins0:StorePrice></ins0:PriceInfo></ins0:InventoryItemQuantityAndPrice></ins0:itemQuantityAndPriceList></ins0:UpdateInventoryItemQuantityAndPriceList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:UpdateInventoryItemQuantityAndPriceList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:itemQuantityAndPriceList><ins0:InventoryItemQuantityAndPrice><ins0:Sku>FAKE001</ins0:Sku><ins0:QuantityInfo><ins0:UpdateType>Absolute</ins0:UpdateType><ins0:Total>5000</ins0:Total></ins0:QuantityInfo></ins0:InventoryItemQuantityAndPrice><ins0:InventoryItemQuantityAndPrice><ins0:Sku>FAKE002</ins0:Sku><ins0:QuantityInfo><ins0:UpdateType>Absolute</ins0:UpdateType><ins0:Total>7500</ins0:Total></ins0:QuantityInfo></ins0:InventoryItemQuantityAndPrice></ins0:itemQuantityAndPriceList></ins0:UpdateInventoryItemQuantityAndPriceList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:UpdateInventoryItemQuantityAndPrice><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:itemQuantityAndPrice><ins0:Sku>FAKE001</ins0:Sku><ins0:PriceInfo><ins0:Cost>2.99</ins0:Cost><ins0:RetailPrice>11.99</ins0:RetailPrice><ins0:StartingPrice>5.99</ins0:StartingPrice><ins0:ReservePrice>7.99</ins0:ReservePrice><ins0:TakeItPrice>9.99</ins0:TakeItPrice><ins0:SecondChanceOfferPrice>8.99</ins0:SecondChanceOfferPrice><ins0:StorePrice>9.49</ins0:StorePrice></ins0:PriceInfo></ins0:itemQuantityAndPrice></ins0:UpdateInventoryItemQuantityAndPrice></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:UpdateInventoryItemQuantityAndPrice><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:itemQuantityAndPrice><ins0:Sku>FAKE001</ins0:Sku><ins0:QuantityInfo><ins0:UpdateType>Absolute</ins0:UpdateType><ins0:Total>5000</ins0:Total></ins0:QuantityInfo></ins0:itemQuantityAndPrice></ins0:UpdateInventoryItemQuantityAndPrice></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:UpdateInventoryItemQuantityAndPrice><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:itemQuantityAndPrice><ins0:Sku>FAKE001</ins0:Sku><ins0:QuantityInfo><ins0:UpdateType>Absolute</ins0:UpdateType><ins0:Total>5000</ins0:Total></ins0:QuantityInfo><ins0:PriceInfo><ins0:Cost>2.99</ins0:Cost><ins0:RetailPrice>11.99</ins0:RetailPrice><ins0:StartingPrice>5.99</ins0:StartingPrice><ins0:ReservePrice>7.99</ins0:ReservePrice><ins0:TakeItPrice>9.99</ins0:TakeItPrice><ins0:SecondChanceOfferPrice>8.99</ins0:SecondChanceOfferPrice><ins0:StorePrice>9.49</ins0:StorePrice></ins0:PriceInfo></ins0:itemQuantityAndPrice></ins0:UpdateInventoryItemQuantityAndPrice></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/" xmlns:ins1="http://api.channeladvisor.com/datacontracts/orders"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:GetOrderList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:orderCriteria><ins1:OrderCreationFilterBeginTimeGMT xsi:nil="true"/><ins1:OrderCreationFilterEndTimeGMT xsi:nil="true"/><ins1:StatusUpdateFilterBeginTimeGMT xsi:nil="true"/><ins1:StatusUpdateFilterEndTimeGMT xsi:nil="true"/><ins1:JoinDateFiltersWithOr xsi:nil="true"/><ins1:CheckoutStatusFilter>NoChange</ins1:CheckoutStatusFilter><ins1:PageNumberFilter xsi:nil="true"/><ins1:PageSize xsi:nil="true"/></ins0:orderCriteria></ins0:GetOrderList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/" xmlns:ins1="http://api.channeladvisor.com/datacontracts/orders"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:GetOrderList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:orderCriteria><ins1:OrderCreationFilterBeginTimeGMT>2012-05-14T00:00:00+00:00</ins1:OrderCreationFilterBeginTimeGMT><ins1:OrderCreationFilterEndTimeGMT xsi:nil="true"/><ins1:StatusUpdateFilterBeginTimeGMT xsi:nil="true"/><ins1:StatusUpdateFilterEndTimeGMT xsi:nil="true"/><ins1:JoinDateFiltersWithOr xsi:nil="true"/><ins1:PageNumberFilter xsi:nil="true"/><ins1:PageSize xsi:nil="true"/></ins0:orderCriteria></ins0:GetOrderList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/" xmlns:ins1="http://api.channeladvisor.com/datacontracts/orders"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:GetOrderList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:orderCriteria><ins1:OrderCreationFilterBeginTimeGMT xsi:nil="true"/><ins1:OrderCreationFilterEndTimeGMT>2012-05-15T00:00:00+00:00</ins1:OrderCreationFilterEndTimeGMT><ins1:StatusUpdateFilterBeginTimeGMT xsi:nil="true"/><ins1:StatusUpdateFilterEndTimeGMT xsi:nil="true"/><ins1:JoinDateFiltersWithOr xsi:nil="true"/><ins1:PageNumberFilter xsi:nil="true"/><ins1:PageSize xsi:nil="true"/></ins0:orderCriteria></ins0:GetOrderList></env:Body></env:Envelope>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.channeladvisor.com/webservices/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://api.channeladvisor.com/webservices/" xmlns:ins1="http://api.channeladvisor.com/datacontracts/orders"><env:Header><ins0:APICredentials><ins0:DeveloperKey>$$DEVELOPER_KEY$$</ins0:DeveloperKey><ins0:Password>$$PASSWORD$$</ins0:Password></ins0:APICredentials></env:Header><env:Body><ins0:GetOrderList><ins0:accountID>$$ACCOUNT_ID$$</ins0:accountID><ins0:orderCriteria><ins1:OrderCreationFilterBeginTimeGMT xsi:nil="true"/><ins1:OrderCreationFilterEndTimeGMT xsi:nil="true"/><ins1:StatusUpdateFilterBeginTimeGMT xsi:nil="true"/><ins1:StatusUpdateFilterEndTimeGMT xsi:nil="true"/><ins1:JoinDateFiltersWithOr xsi:nil="true"/><ins1:DetailLevel>Low</ins1:DetailLevel><ins1:PageNumberFilter xsi:nil="true"/><ins1:PageSize xsi:nil="true"/></ins0:orderCriteria></ins0:GetOrderList></env:Body></env:Envelope>