channel_advisor 0.0.8

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 (59) hide show
  1. data/README +46 -0
  2. data/lib/channel_advisor/admin_service/client.rb +63 -0
  3. data/lib/channel_advisor/admin_service/mapping_registry.rb +206 -0
  4. data/lib/channel_advisor/admin_service/types.rb +175 -0
  5. data/lib/channel_advisor/admin_service.rb +14 -0
  6. data/lib/channel_advisor/auth_handler.rb +21 -0
  7. data/lib/channel_advisor/cart_service/client.rb +79 -0
  8. data/lib/channel_advisor/cart_service/mapping_registry.rb +344 -0
  9. data/lib/channel_advisor/cart_service/types.rb +386 -0
  10. data/lib/channel_advisor/cart_service.rb +14 -0
  11. data/lib/channel_advisor/errors.rb +13 -0
  12. data/lib/channel_advisor/inventory_service/client.rb +223 -0
  13. data/lib/channel_advisor/inventory_service/mapping_registry.rb +1765 -0
  14. data/lib/channel_advisor/inventory_service/types.rb +1708 -0
  15. data/lib/channel_advisor/inventory_service.rb +14 -0
  16. data/lib/channel_advisor/listing_service/client.rb +55 -0
  17. data/lib/channel_advisor/listing_service/mapping_registry.rb +153 -0
  18. data/lib/channel_advisor/listing_service/types.rb +125 -0
  19. data/lib/channel_advisor/listing_service.rb +14 -0
  20. data/lib/channel_advisor/marketplace_ad_service/client.rb +71 -0
  21. data/lib/channel_advisor/marketplace_ad_service/mapping_registry.rb +334 -0
  22. data/lib/channel_advisor/marketplace_ad_service/types.rb +317 -0
  23. data/lib/channel_advisor/marketplace_ad_service.rb +14 -0
  24. data/lib/channel_advisor/message_code.rb +30 -0
  25. data/lib/channel_advisor/order_service/client.rb +111 -0
  26. data/lib/channel_advisor/order_service/mapping_registry.rb +1696 -0
  27. data/lib/channel_advisor/order_service/types.rb +1781 -0
  28. data/lib/channel_advisor/order_service.rb +14 -0
  29. data/lib/channel_advisor/service_proxy.rb +62 -0
  30. data/lib/channel_advisor/shared_requires.rb +11 -0
  31. data/lib/channel_advisor/shipping_service/client.rb +79 -0
  32. data/lib/channel_advisor/shipping_service/mapping_registry.rb +500 -0
  33. data/lib/channel_advisor/shipping_service/types.rb +431 -0
  34. data/lib/channel_advisor/shipping_service.rb +14 -0
  35. data/lib/channel_advisor/store_service/client.rb +55 -0
  36. data/lib/channel_advisor/store_service/mapping_registry.rb +250 -0
  37. data/lib/channel_advisor/store_service/types.rb +180 -0
  38. data/lib/channel_advisor/store_service.rb +14 -0
  39. data/lib/channel_advisor/tax_service/client.rb +55 -0
  40. data/lib/channel_advisor/tax_service/mapping_registry.rb +233 -0
  41. data/lib/channel_advisor/tax_service/types.rb +221 -0
  42. data/lib/channel_advisor/tax_service.rb +14 -0
  43. data/lib/channel_advisor.rb +4 -0
  44. data/spec/integration/inventory_sync_spec.rb +55 -0
  45. data/spec/lib/channel_advisor/admin_service_spec.rb +12 -0
  46. data/spec/lib/channel_advisor/auth_handler_spec.rb +46 -0
  47. data/spec/lib/channel_advisor/cart_service_spec.rb +12 -0
  48. data/spec/lib/channel_advisor/errors_spec.rb +23 -0
  49. data/spec/lib/channel_advisor/inventory_service_spec.rb +12 -0
  50. data/spec/lib/channel_advisor/marketplace_ad_service_spec.rb +12 -0
  51. data/spec/lib/channel_advisor/message_code_spec.rb +40 -0
  52. data/spec/lib/channel_advisor/order_service_spec.rb +12 -0
  53. data/spec/lib/channel_advisor/service_proxy_spec.rb +130 -0
  54. data/spec/lib/channel_advisor/shipping_service_spec.rb +12 -0
  55. data/spec/lib/channel_advisor/store_service_spec.rb +12 -0
  56. data/spec/lib/channel_advisor/tax_service_spec.rb +12 -0
  57. data/spec/spec.opts +2 -0
  58. data/spec/spec_helper.rb +4 -0
  59. metadata +170 -0
@@ -0,0 +1,233 @@
1
+ module ChannelAdvisor; module TaxServiceSOAP
2
+
3
+ module DefaultMappingRegistry
4
+ EncodedRegistry = ::SOAP::Mapping::EncodedRegistry.new
5
+ LiteralRegistry = ::SOAP::Mapping::LiteralRegistry.new
6
+ NsWebservices = "http://api.channeladvisor.com/webservices/"
7
+
8
+ EncodedRegistry.register(
9
+ :class => ChannelAdvisor::TaxServiceSOAP::APIResultOfTaxRateResult,
10
+ :schema_type => XSD::QName.new(NsWebservices, "APIResultOfTaxRateResult"),
11
+ :schema_element => [
12
+ ["status", ["ChannelAdvisor::TaxServiceSOAP::ResultStatus", XSD::QName.new(NsWebservices, "Status")]],
13
+ ["messageCode", ["SOAP::SOAPInt", XSD::QName.new(NsWebservices, "MessageCode")]],
14
+ ["message", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Message")], [0, 1]],
15
+ ["data", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Data")], [0, 1]],
16
+ ["resultData", ["ChannelAdvisor::TaxServiceSOAP::TaxRateResult", XSD::QName.new(NsWebservices, "ResultData")], [0, 1]]
17
+ ]
18
+ )
19
+
20
+ EncodedRegistry.register(
21
+ :class => ChannelAdvisor::TaxServiceSOAP::TaxRateResult,
22
+ :schema_type => XSD::QName.new(NsWebservices, "TaxRateResult"),
23
+ :schema_element => [
24
+ ["taxAmount", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "TaxAmount")]],
25
+ ["taxType", ["ChannelAdvisor::TaxServiceSOAP::TaxTypeCode", XSD::QName.new(NsWebservices, "TaxType")]],
26
+ ["itemDetailList", ["ChannelAdvisor::TaxServiceSOAP::ArrayOfTaxItemBase", XSD::QName.new(NsWebservices, "ItemDetailList")], [0, 1]]
27
+ ]
28
+ )
29
+
30
+ EncodedRegistry.register(
31
+ :class => ChannelAdvisor::TaxServiceSOAP::ArrayOfTaxItemBase,
32
+ :schema_type => XSD::QName.new(NsWebservices, "ArrayOfTaxItemBase"),
33
+ :schema_element => [
34
+ ["taxItemBase", ["ChannelAdvisor::TaxServiceSOAP::TaxItemBase[]", XSD::QName.new(NsWebservices, "TaxItemBase")], [0, nil]]
35
+ ]
36
+ )
37
+
38
+ EncodedRegistry.register(
39
+ :class => ChannelAdvisor::TaxServiceSOAP::TaxItemProduct,
40
+ :schema_type => XSD::QName.new(NsWebservices, "TaxItemProduct"),
41
+ :schema_basetype => XSD::QName.new(NsWebservices, "TaxItemBase"),
42
+ :schema_element => [
43
+ ["taxAmount", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "TaxAmount")]],
44
+ ["taxRate", ["SOAP::SOAPDouble", XSD::QName.new(NsWebservices, "TaxRate")]],
45
+ ["taxType", ["ChannelAdvisor::TaxServiceSOAP::TaxTypeCode", XSD::QName.new(NsWebservices, "TaxType")]],
46
+ ["quantity", ["SOAP::SOAPInt", XSD::QName.new(NsWebservices, "Quantity")]],
47
+ ["unitPrice", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "UnitPrice")]],
48
+ ["lineItemID", ["SOAP::SOAPInt", XSD::QName.new(NsWebservices, "LineItemID")]],
49
+ ["title", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Title")], [0, 1]],
50
+ ["sKU", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "SKU")], [0, 1]]
51
+ ]
52
+ )
53
+
54
+ EncodedRegistry.register(
55
+ :class => ChannelAdvisor::TaxServiceSOAP::TaxItemVatShipping,
56
+ :schema_type => XSD::QName.new(NsWebservices, "TaxItemVatShipping"),
57
+ :schema_basetype => XSD::QName.new(NsWebservices, "TaxItemBase"),
58
+ :schema_element => [
59
+ ["taxAmount", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "TaxAmount")]],
60
+ ["taxRate", ["SOAP::SOAPDouble", XSD::QName.new(NsWebservices, "TaxRate")]],
61
+ ["taxType", ["ChannelAdvisor::TaxServiceSOAP::TaxTypeCode", XSD::QName.new(NsWebservices, "TaxType")]],
62
+ ["shippingCost", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "ShippingCost")]]
63
+ ]
64
+ )
65
+
66
+ EncodedRegistry.register(
67
+ :class => ChannelAdvisor::TaxServiceSOAP::APICredentials,
68
+ :schema_type => XSD::QName.new(NsWebservices, "APICredentials"),
69
+ :schema_element => [
70
+ ["developerKey", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "DeveloperKey")], [0, 1]],
71
+ ["password", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Password")], [0, 1]]
72
+ ]
73
+ )
74
+
75
+ EncodedRegistry.register(
76
+ :class => ChannelAdvisor::TaxServiceSOAP::APIResultOfString,
77
+ :schema_type => XSD::QName.new(NsWebservices, "APIResultOfString"),
78
+ :schema_element => [
79
+ ["status", ["ChannelAdvisor::TaxServiceSOAP::ResultStatus", XSD::QName.new(NsWebservices, "Status")]],
80
+ ["messageCode", ["SOAP::SOAPInt", XSD::QName.new(NsWebservices, "MessageCode")]],
81
+ ["message", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Message")], [0, 1]],
82
+ ["data", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Data")], [0, 1]],
83
+ ["resultData", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "ResultData")], [0, 1]]
84
+ ]
85
+ )
86
+
87
+ EncodedRegistry.register(
88
+ :class => ChannelAdvisor::TaxServiceSOAP::ResultStatus,
89
+ :schema_type => XSD::QName.new(NsWebservices, "ResultStatus")
90
+ )
91
+
92
+ EncodedRegistry.register(
93
+ :class => ChannelAdvisor::TaxServiceSOAP::TaxTypeCode,
94
+ :schema_type => XSD::QName.new(NsWebservices, "TaxTypeCode")
95
+ )
96
+
97
+ LiteralRegistry.register(
98
+ :class => ChannelAdvisor::TaxServiceSOAP::APIResultOfTaxRateResult,
99
+ :schema_type => XSD::QName.new(NsWebservices, "APIResultOfTaxRateResult"),
100
+ :schema_element => [
101
+ ["status", ["ChannelAdvisor::TaxServiceSOAP::ResultStatus", XSD::QName.new(NsWebservices, "Status")]],
102
+ ["messageCode", ["SOAP::SOAPInt", XSD::QName.new(NsWebservices, "MessageCode")]],
103
+ ["message", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Message")], [0, 1]],
104
+ ["data", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Data")], [0, 1]],
105
+ ["resultData", ["ChannelAdvisor::TaxServiceSOAP::TaxRateResult", XSD::QName.new(NsWebservices, "ResultData")], [0, 1]]
106
+ ]
107
+ )
108
+
109
+ LiteralRegistry.register(
110
+ :class => ChannelAdvisor::TaxServiceSOAP::TaxRateResult,
111
+ :schema_type => XSD::QName.new(NsWebservices, "TaxRateResult"),
112
+ :schema_element => [
113
+ ["taxAmount", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "TaxAmount")]],
114
+ ["taxType", ["ChannelAdvisor::TaxServiceSOAP::TaxTypeCode", XSD::QName.new(NsWebservices, "TaxType")]],
115
+ ["itemDetailList", ["ChannelAdvisor::TaxServiceSOAP::ArrayOfTaxItemBase", XSD::QName.new(NsWebservices, "ItemDetailList")], [0, 1]]
116
+ ]
117
+ )
118
+
119
+ LiteralRegistry.register(
120
+ :class => ChannelAdvisor::TaxServiceSOAP::ArrayOfTaxItemBase,
121
+ :schema_type => XSD::QName.new(NsWebservices, "ArrayOfTaxItemBase"),
122
+ :schema_element => [
123
+ ["taxItemBase", ["ChannelAdvisor::TaxServiceSOAP::TaxItemBase[]", XSD::QName.new(NsWebservices, "TaxItemBase")], [0, nil]]
124
+ ]
125
+ )
126
+
127
+ LiteralRegistry.register(
128
+ :class => ChannelAdvisor::TaxServiceSOAP::TaxItemProduct,
129
+ :schema_type => XSD::QName.new(NsWebservices, "TaxItemProduct"),
130
+ :schema_basetype => XSD::QName.new(NsWebservices, "TaxItemBase"),
131
+ :schema_element => [
132
+ ["taxAmount", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "TaxAmount")]],
133
+ ["taxRate", ["SOAP::SOAPDouble", XSD::QName.new(NsWebservices, "TaxRate")]],
134
+ ["taxType", ["ChannelAdvisor::TaxServiceSOAP::TaxTypeCode", XSD::QName.new(NsWebservices, "TaxType")]],
135
+ ["quantity", ["SOAP::SOAPInt", XSD::QName.new(NsWebservices, "Quantity")]],
136
+ ["unitPrice", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "UnitPrice")]],
137
+ ["lineItemID", ["SOAP::SOAPInt", XSD::QName.new(NsWebservices, "LineItemID")]],
138
+ ["title", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Title")], [0, 1]],
139
+ ["sKU", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "SKU")], [0, 1]]
140
+ ]
141
+ )
142
+
143
+ LiteralRegistry.register(
144
+ :class => ChannelAdvisor::TaxServiceSOAP::TaxItemVatShipping,
145
+ :schema_type => XSD::QName.new(NsWebservices, "TaxItemVatShipping"),
146
+ :schema_basetype => XSD::QName.new(NsWebservices, "TaxItemBase"),
147
+ :schema_element => [
148
+ ["taxAmount", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "TaxAmount")]],
149
+ ["taxRate", ["SOAP::SOAPDouble", XSD::QName.new(NsWebservices, "TaxRate")]],
150
+ ["taxType", ["ChannelAdvisor::TaxServiceSOAP::TaxTypeCode", XSD::QName.new(NsWebservices, "TaxType")]],
151
+ ["shippingCost", ["SOAP::SOAPDecimal", XSD::QName.new(NsWebservices, "ShippingCost")]]
152
+ ]
153
+ )
154
+
155
+ LiteralRegistry.register(
156
+ :class => ChannelAdvisor::TaxServiceSOAP::APICredentials,
157
+ :schema_type => XSD::QName.new(NsWebservices, "APICredentials"),
158
+ :schema_element => [
159
+ ["developerKey", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "DeveloperKey")], [0, 1]],
160
+ ["password", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Password")], [0, 1]]
161
+ ]
162
+ )
163
+
164
+ LiteralRegistry.register(
165
+ :class => ChannelAdvisor::TaxServiceSOAP::APIResultOfString,
166
+ :schema_type => XSD::QName.new(NsWebservices, "APIResultOfString"),
167
+ :schema_element => [
168
+ ["status", ["ChannelAdvisor::TaxServiceSOAP::ResultStatus", XSD::QName.new(NsWebservices, "Status")]],
169
+ ["messageCode", ["SOAP::SOAPInt", XSD::QName.new(NsWebservices, "MessageCode")]],
170
+ ["message", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Message")], [0, 1]],
171
+ ["data", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Data")], [0, 1]],
172
+ ["resultData", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "ResultData")], [0, 1]]
173
+ ]
174
+ )
175
+
176
+ LiteralRegistry.register(
177
+ :class => ChannelAdvisor::TaxServiceSOAP::ResultStatus,
178
+ :schema_type => XSD::QName.new(NsWebservices, "ResultStatus")
179
+ )
180
+
181
+ LiteralRegistry.register(
182
+ :class => ChannelAdvisor::TaxServiceSOAP::TaxTypeCode,
183
+ :schema_type => XSD::QName.new(NsWebservices, "TaxTypeCode")
184
+ )
185
+
186
+ LiteralRegistry.register(
187
+ :class => ChannelAdvisor::TaxServiceSOAP::GetTaxRateList,
188
+ :schema_name => XSD::QName.new(NsWebservices, "GetTaxRateList"),
189
+ :schema_element => [
190
+ ["accountID", "SOAP::SOAPString", [0, 1]],
191
+ ["cartID", "SOAP::SOAPInt"],
192
+ ["street", "SOAP::SOAPString", [0, 1]],
193
+ ["city", "SOAP::SOAPString", [0, 1]],
194
+ ["state", "SOAP::SOAPString", [0, 1]],
195
+ ["postalCode", "SOAP::SOAPString", [0, 1]],
196
+ ["country", "SOAP::SOAPString", [0, 1]],
197
+ ["shippingCost", "SOAP::SOAPDecimal"]
198
+ ]
199
+ )
200
+
201
+ LiteralRegistry.register(
202
+ :class => ChannelAdvisor::TaxServiceSOAP::GetTaxRateListResponse,
203
+ :schema_name => XSD::QName.new(NsWebservices, "GetTaxRateListResponse"),
204
+ :schema_element => [
205
+ ["getTaxRateListResult", ["ChannelAdvisor::TaxServiceSOAP::APIResultOfTaxRateResult", XSD::QName.new(NsWebservices, "GetTaxRateListResult")], [0, 1]]
206
+ ]
207
+ )
208
+
209
+ LiteralRegistry.register(
210
+ :class => ChannelAdvisor::TaxServiceSOAP::APICredentials,
211
+ :schema_name => XSD::QName.new(NsWebservices, "APICredentials"),
212
+ :schema_element => [
213
+ ["developerKey", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "DeveloperKey")], [0, 1]],
214
+ ["password", ["SOAP::SOAPString", XSD::QName.new(NsWebservices, "Password")], [0, 1]]
215
+ ]
216
+ )
217
+
218
+ LiteralRegistry.register(
219
+ :class => ChannelAdvisor::TaxServiceSOAP::Ping,
220
+ :schema_name => XSD::QName.new(NsWebservices, "Ping"),
221
+ :schema_element => []
222
+ )
223
+
224
+ LiteralRegistry.register(
225
+ :class => ChannelAdvisor::TaxServiceSOAP::PingResponse,
226
+ :schema_name => XSD::QName.new(NsWebservices, "PingResponse"),
227
+ :schema_element => [
228
+ ["pingResult", ["ChannelAdvisor::TaxServiceSOAP::APIResultOfString", XSD::QName.new(NsWebservices, "PingResult")], [0, 1]]
229
+ ]
230
+ )
231
+ end
232
+
233
+ end; end
@@ -0,0 +1,221 @@
1
+ module ChannelAdvisor; module TaxServiceSOAP
2
+
3
+
4
+ # {http://api.channeladvisor.com/webservices/}APIResultOfTaxRateResult
5
+ # status - ChannelAdvisor::TaxServiceSOAP::ResultStatus
6
+ # messageCode - SOAP::SOAPInt
7
+ # message - SOAP::SOAPString
8
+ # data - SOAP::SOAPString
9
+ # resultData - ChannelAdvisor::TaxServiceSOAP::TaxRateResult
10
+ class APIResultOfTaxRateResult
11
+ attr_accessor :status
12
+ attr_accessor :messageCode
13
+ attr_accessor :message
14
+ attr_accessor :data
15
+ attr_accessor :resultData
16
+
17
+ def initialize(status = nil, messageCode = nil, message = nil, data = nil, resultData = nil)
18
+ @status = status
19
+ @messageCode = messageCode
20
+ @message = message
21
+ @data = data
22
+ @resultData = resultData
23
+ end
24
+ end
25
+
26
+ # {http://api.channeladvisor.com/webservices/}TaxRateResult
27
+ # taxAmount - SOAP::SOAPDecimal
28
+ # taxType - ChannelAdvisor::TaxServiceSOAP::TaxTypeCode
29
+ # itemDetailList - ChannelAdvisor::TaxServiceSOAP::ArrayOfTaxItemBase
30
+ class TaxRateResult
31
+ attr_accessor :taxAmount
32
+ attr_accessor :taxType
33
+ attr_accessor :itemDetailList
34
+
35
+ def initialize(taxAmount = nil, taxType = nil, itemDetailList = nil)
36
+ @taxAmount = taxAmount
37
+ @taxType = taxType
38
+ @itemDetailList = itemDetailList
39
+ end
40
+ end
41
+
42
+ # {http://api.channeladvisor.com/webservices/}ArrayOfTaxItemBase
43
+ class ArrayOfTaxItemBase < ::Array
44
+ end
45
+
46
+ # {http://api.channeladvisor.com/webservices/}TaxItemBase
47
+ # abstract
48
+ # taxAmount - SOAP::SOAPDecimal
49
+ # taxRate - SOAP::SOAPDouble
50
+ # taxType - ChannelAdvisor::TaxServiceSOAP::TaxTypeCode
51
+ class TaxItemBase
52
+ attr_accessor :taxAmount
53
+ attr_accessor :taxRate
54
+ attr_accessor :taxType
55
+
56
+ def initialize(taxAmount = nil, taxRate = nil, taxType = nil)
57
+ @taxAmount = taxAmount
58
+ @taxRate = taxRate
59
+ @taxType = taxType
60
+ end
61
+ end
62
+
63
+ # {http://api.channeladvisor.com/webservices/}TaxItemProduct
64
+ # taxAmount - SOAP::SOAPDecimal
65
+ # taxRate - SOAP::SOAPDouble
66
+ # taxType - ChannelAdvisor::TaxServiceSOAP::TaxTypeCode
67
+ # quantity - SOAP::SOAPInt
68
+ # unitPrice - SOAP::SOAPDecimal
69
+ # lineItemID - SOAP::SOAPInt
70
+ # title - SOAP::SOAPString
71
+ # sKU - SOAP::SOAPString
72
+ class TaxItemProduct < TaxItemBase
73
+ attr_accessor :taxAmount
74
+ attr_accessor :taxRate
75
+ attr_accessor :taxType
76
+ attr_accessor :quantity
77
+ attr_accessor :unitPrice
78
+ attr_accessor :lineItemID
79
+ attr_accessor :title
80
+ attr_accessor :sKU
81
+
82
+ def initialize(taxAmount = nil, taxRate = nil, taxType = nil, quantity = nil, unitPrice = nil, lineItemID = nil, title = nil, sKU = nil)
83
+ @taxAmount = taxAmount
84
+ @taxRate = taxRate
85
+ @taxType = taxType
86
+ @quantity = quantity
87
+ @unitPrice = unitPrice
88
+ @lineItemID = lineItemID
89
+ @title = title
90
+ @sKU = sKU
91
+ end
92
+ end
93
+
94
+ # {http://api.channeladvisor.com/webservices/}TaxItemVatShipping
95
+ # taxAmount - SOAP::SOAPDecimal
96
+ # taxRate - SOAP::SOAPDouble
97
+ # taxType - ChannelAdvisor::TaxServiceSOAP::TaxTypeCode
98
+ # shippingCost - SOAP::SOAPDecimal
99
+ class TaxItemVatShipping < TaxItemBase
100
+ attr_accessor :taxAmount
101
+ attr_accessor :taxRate
102
+ attr_accessor :taxType
103
+ attr_accessor :shippingCost
104
+
105
+ def initialize(taxAmount = nil, taxRate = nil, taxType = nil, shippingCost = nil)
106
+ @taxAmount = taxAmount
107
+ @taxRate = taxRate
108
+ @taxType = taxType
109
+ @shippingCost = shippingCost
110
+ end
111
+ end
112
+
113
+ # {http://api.channeladvisor.com/webservices/}APICredentials
114
+ # developerKey - SOAP::SOAPString
115
+ # password - SOAP::SOAPString
116
+ class APICredentials
117
+ attr_accessor :developerKey
118
+ attr_accessor :password
119
+
120
+ def initialize(developerKey = nil, password = nil)
121
+ @developerKey = developerKey
122
+ @password = password
123
+ end
124
+ end
125
+
126
+ # {http://api.channeladvisor.com/webservices/}APIResultOfString
127
+ # status - ChannelAdvisor::TaxServiceSOAP::ResultStatus
128
+ # messageCode - SOAP::SOAPInt
129
+ # message - SOAP::SOAPString
130
+ # data - SOAP::SOAPString
131
+ # resultData - SOAP::SOAPString
132
+ class APIResultOfString
133
+ attr_accessor :status
134
+ attr_accessor :messageCode
135
+ attr_accessor :message
136
+ attr_accessor :data
137
+ attr_accessor :resultData
138
+
139
+ def initialize(status = nil, messageCode = nil, message = nil, data = nil, resultData = nil)
140
+ @status = status
141
+ @messageCode = messageCode
142
+ @message = message
143
+ @data = data
144
+ @resultData = resultData
145
+ end
146
+ end
147
+
148
+ # {http://api.channeladvisor.com/webservices/}ResultStatus
149
+ class ResultStatus < ::String
150
+ Failure = ResultStatus.new("Failure")
151
+ Success = ResultStatus.new("Success")
152
+ end
153
+
154
+ # {http://api.channeladvisor.com/webservices/}TaxTypeCode
155
+ class TaxTypeCode < ::String
156
+ NoChange = TaxTypeCode.new("NoChange")
157
+ NoTax = TaxTypeCode.new("NoTax")
158
+ TaxUS = TaxTypeCode.new("TaxUS")
159
+ VatExclusive = TaxTypeCode.new("VatExclusive")
160
+ VatInclusive = TaxTypeCode.new("VatInclusive")
161
+ end
162
+
163
+ # {http://api.channeladvisor.com/webservices/}GetTaxRateList
164
+ # accountID - SOAP::SOAPString
165
+ # cartID - SOAP::SOAPInt
166
+ # street - SOAP::SOAPString
167
+ # city - SOAP::SOAPString
168
+ # state - SOAP::SOAPString
169
+ # postalCode - SOAP::SOAPString
170
+ # country - SOAP::SOAPString
171
+ # shippingCost - SOAP::SOAPDecimal
172
+ class GetTaxRateList
173
+ attr_accessor :accountID
174
+ attr_accessor :cartID
175
+ attr_accessor :street
176
+ attr_accessor :city
177
+ attr_accessor :state
178
+ attr_accessor :postalCode
179
+ attr_accessor :country
180
+ attr_accessor :shippingCost
181
+
182
+ def initialize(accountID = nil, cartID = nil, street = nil, city = nil, state = nil, postalCode = nil, country = nil, shippingCost = nil)
183
+ @accountID = accountID
184
+ @cartID = cartID
185
+ @street = street
186
+ @city = city
187
+ @state = state
188
+ @postalCode = postalCode
189
+ @country = country
190
+ @shippingCost = shippingCost
191
+ end
192
+ end
193
+
194
+ # {http://api.channeladvisor.com/webservices/}GetTaxRateListResponse
195
+ # getTaxRateListResult - ChannelAdvisor::TaxServiceSOAP::APIResultOfTaxRateResult
196
+ class GetTaxRateListResponse
197
+ attr_accessor :getTaxRateListResult
198
+
199
+ def initialize(getTaxRateListResult = nil)
200
+ @getTaxRateListResult = getTaxRateListResult
201
+ end
202
+ end
203
+
204
+ # {http://api.channeladvisor.com/webservices/}Ping
205
+ class Ping
206
+ def initialize
207
+ end
208
+ end
209
+
210
+ # {http://api.channeladvisor.com/webservices/}PingResponse
211
+ # pingResult - ChannelAdvisor::TaxServiceSOAP::APIResultOfString
212
+ class PingResponse
213
+ attr_accessor :pingResult
214
+
215
+ def initialize(pingResult = nil)
216
+ @pingResult = pingResult
217
+ end
218
+ end
219
+
220
+
221
+ end; end
@@ -0,0 +1,14 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'shared_requires.rb'))
2
+ ['types.rb', 'mapping_registry.rb', 'client.rb'].each do |required|
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'tax_service', required))
4
+ end
5
+
6
+ module ChannelAdvisor
7
+ class TaxService
8
+ include ChannelAdvisor::ServiceProxy
9
+ define_service_methods(
10
+ ChannelAdvisor::TaxServiceSOAP,
11
+ ChannelAdvisor::TaxServiceSOAP::TaxServiceSoap
12
+ )
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'channel_advisor', 'shared_requires.rb'))
2
+ Dir.glob(File.join(File.dirname(__FILE__), 'channel_advisor', '*.rb')).each do |f|
3
+ require File.expand_path(f)
4
+ end
@@ -0,0 +1,55 @@
1
+ ###############################################################
2
+ ## # ## # ##### ## ### ### ## ### #### # #
3
+ # ## # ## # # ## # # ## # ## # # #
4
+ # ## # # # # # ### # # ### # # # #
5
+ # ## # #### ### # ### # # ### # ### # #
6
+ # ## # # # ## # ## # # ## ## #
7
+ # # # ## ### ## ### # ### ### # #### # #
8
+
9
+ # This spec will actually push information up to your channel advisor account!!!!
10
+ # Don't check in your account credentials!!!!!!
11
+ #
12
+ # Uncomment ACCOUNT_CREDENTIALS and enter your acct info to run
13
+ #
14
+ ###############################################################
15
+
16
+
17
+ # Fill this out and uncomment it to run the spec.
18
+ # DON'T CHECK THIS INFO IN!!!!!!!!!!!!!!!!
19
+ #
20
+ # ACCOUNT_CREDENTIALS = {
21
+ # :account_id => '',
22
+ # :developer_key => '',
23
+ # :password => ''
24
+ # }
25
+
26
+ require File.dirname(__FILE__) + '/../spec_helper'
27
+
28
+ describe "Inventory Sync" do
29
+
30
+ it 'should only be run manually, as it will actually push information up to your channel advisor account' do
31
+ true
32
+ end
33
+
34
+ if defined?(ACCOUNT_CREDENTIALS)
35
+ it 'should push a sku up to your account' do
36
+ item = ChannelAdvisor::InventoryServiceSOAP::InventoryItemSubmit.new
37
+ item.sku = "FAKESKU"
38
+ inventory = ChannelAdvisor::InventoryService.new
39
+ result = inventory.doesSkuExist("FAKESKU", ACCOUNT_CREDENTIALS)
40
+ result.should eql("false")
41
+ result = inventory.synchInventoryItem(item, ACCOUNT_CREDENTIALS)
42
+ result.should be_true
43
+ result = inventory.doesSkuExist("FAKESKU", ACCOUNT_CREDENTIALS)
44
+ result.should eql("true")
45
+ end
46
+ else
47
+ it "** passing automatically --!-- INVENTORY SYNC HAS NOT BEEN TESTED **" do
48
+ true
49
+ end
50
+ it "** (ACCOUNT_CREDENTIALS must be defined in #{__FILE__} in order to test)" do
51
+ true
52
+ end
53
+ end
54
+ end
55
+
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe ChannelAdvisor::AdminService do
4
+
5
+ describe "proxy configuration" do
6
+ it "should define soap dependencies" do
7
+ ChannelAdvisor::AdminService::SOAP_CLASS.should == ChannelAdvisor::AdminServiceSOAP::AdminServiceSoap
8
+ ChannelAdvisor::AdminService::SERVICE_MODULE.should == ChannelAdvisor::AdminServiceSOAP
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,46 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe ChannelAdvisor::AuthHandler do
4
+ before(:each) do
5
+ configatron.channel_advisor.developer_key = 'test_developer_key'
6
+ configatron.channel_advisor.password = 'test_password'
7
+ end
8
+
9
+ it "uses configatron for the authentication keys" do
10
+ auth = ChannelAdvisor::AuthHandler.new
11
+
12
+ auth.developer_key.should == 'test_developer_key'
13
+ auth.password.should == 'test_password'
14
+ end
15
+
16
+ it "uses values in the constructor if supplied" do
17
+ auth = ChannelAdvisor::AuthHandler.new('blurb', 'drab')
18
+
19
+ auth.developer_key.should == 'blurb'
20
+ auth.password.should == 'drab'
21
+ end
22
+
23
+ it "sets up the key and password for outbound requests" do
24
+ auth = ChannelAdvisor::AuthHandler.new('blurb', 'drab')
25
+
26
+ credentials = auth.on_simple_outbound
27
+ credentials[ChannelAdvisor::AuthHandler::DEVELOPER_KEY].should == 'blurb'
28
+ credentials[ChannelAdvisor::AuthHandler::PASSWORD].should == 'drab'
29
+ end
30
+
31
+ it "sets up the qname for the auth header element" do
32
+ auth = ChannelAdvisor::AuthHandler.new('blurb', 'drab')
33
+ auth.elename.should == ChannelAdvisor::AuthHandler::API_CREDENTIALS
34
+ end
35
+
36
+ it "sets up qnames for api credentials" do
37
+ ChannelAdvisor::AuthHandler::API_CREDENTIALS.namespace.should == 'http://api.channeladvisor.com/webservices/'
38
+ ChannelAdvisor::AuthHandler::API_CREDENTIALS.name.should == 'APICredentials'
39
+
40
+ ChannelAdvisor::AuthHandler::DEVELOPER_KEY.namespace.should == 'http://api.channeladvisor.com/webservices/'
41
+ ChannelAdvisor::AuthHandler::DEVELOPER_KEY.name.should == 'DeveloperKey'
42
+
43
+ ChannelAdvisor::AuthHandler::PASSWORD.namespace.should == 'http://api.channeladvisor.com/webservices/'
44
+ ChannelAdvisor::AuthHandler::PASSWORD.name.should == 'Password'
45
+ end
46
+ end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe ChannelAdvisor::CartService do
4
+
5
+ describe "proxy configuration" do
6
+ it "should define soap dependencies" do
7
+ ChannelAdvisor::CartService::SOAP_CLASS.should == ChannelAdvisor::CartServiceSOAP::CartServiceSoap
8
+ ChannelAdvisor::CartService::SERVICE_MODULE.should == ChannelAdvisor::CartServiceSOAP
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe ChannelAdvisor::Error do
4
+ before(:each) do
5
+ @code = ChannelAdvisor::MessageCode::Unexpected
6
+ @response = ChannelAdvisor::InventoryServiceSOAP::APIResultOfBoolean.new('Failure', @code.code, 'Something was broken')
7
+ end
8
+
9
+ it "can be instantiated with no arguments" do
10
+ lambda { ChannelAdvisor::Error.new(nil, nil) }.should_not raise_error
11
+ end
12
+
13
+ it "allows access to the response and message code as attributes" do
14
+ error = ChannelAdvisor::Error.new(@response, @code)
15
+ error.message_code.should == @code
16
+ error.response.should == @response
17
+ end
18
+
19
+ it "sets the error message" do
20
+ error = ChannelAdvisor::Error.new(@response, @code)
21
+ error.message.should == "[1]: Unexpected - Something was broken"
22
+ end
23
+ end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe ChannelAdvisor::InventoryService do
4
+
5
+ describe "proxy configuration" do
6
+ it "should define soap dependencies" do
7
+ ChannelAdvisor::InventoryService::SOAP_CLASS.should == ChannelAdvisor::InventoryServiceSOAP::InventoryServiceSoap
8
+ ChannelAdvisor::InventoryService::SERVICE_MODULE.should == ChannelAdvisor::InventoryServiceSOAP
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe ChannelAdvisor::MarketplaceAdService do
4
+
5
+ describe "proxy configuration" do
6
+ it "should define soap dependencies" do
7
+ ChannelAdvisor::MarketplaceAdService::SOAP_CLASS.should == ChannelAdvisor::MarketplaceAdServiceSOAP::MarketplaceAdServiceSoap
8
+ ChannelAdvisor::MarketplaceAdService::SERVICE_MODULE.should == ChannelAdvisor::MarketplaceAdServiceSOAP
9
+ end
10
+ end
11
+
12
+ end