channeladvisor 0.1.0

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 (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>