beyond_api 0.1.0.pre

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 (55) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +7 -0
  5. data/.yardopts +1 -0
  6. data/CHANGELOG.md +4 -0
  7. data/CONTRIBUTING.md +48 -0
  8. data/GETTING_STARTED.md +0 -0
  9. data/Gemfile +6 -0
  10. data/Gemfile.lock +55 -0
  11. data/LICENSE +19 -0
  12. data/README.md +51 -0
  13. data/Rakefile +11 -0
  14. data/beyond_api.gemspec +31 -0
  15. data/bin/console +18 -0
  16. data/bin/setup +8 -0
  17. data/lib/beyond_api.rb +37 -0
  18. data/lib/beyond_api/connection.rb +30 -0
  19. data/lib/beyond_api/ext.rb +43 -0
  20. data/lib/beyond_api/request.rb +55 -0
  21. data/lib/beyond_api/resources/base.rb +17 -0
  22. data/lib/beyond_api/resources/carts.rb +547 -0
  23. data/lib/beyond_api/resources/categories.rb +168 -0
  24. data/lib/beyond_api/resources/categories_view.rb +142 -0
  25. data/lib/beyond_api/resources/checkout_settings.rb +48 -0
  26. data/lib/beyond_api/resources/newsletter_target.rb +97 -0
  27. data/lib/beyond_api/resources/order_settings.rb +80 -0
  28. data/lib/beyond_api/resources/orders.rb +968 -0
  29. data/lib/beyond_api/resources/payment_methods.rb +192 -0
  30. data/lib/beyond_api/resources/product_attribute_definitions.rb +109 -0
  31. data/lib/beyond_api/resources/product_settings.rb +28 -0
  32. data/lib/beyond_api/resources/products.rb +245 -0
  33. data/lib/beyond_api/resources/products/attachments.rb +119 -0
  34. data/lib/beyond_api/resources/products/availability.rb +177 -0
  35. data/lib/beyond_api/resources/products/custom_attributes.rb +141 -0
  36. data/lib/beyond_api/resources/products/images.rb +165 -0
  37. data/lib/beyond_api/resources/products/searches.rb +52 -0
  38. data/lib/beyond_api/resources/products/variation_properties.rb +87 -0
  39. data/lib/beyond_api/resources/products_view.rb +158 -0
  40. data/lib/beyond_api/resources/scopes.rb +31 -0
  41. data/lib/beyond_api/resources/script_tags.rb +122 -0
  42. data/lib/beyond_api/resources/shipping_zones.rb +324 -0
  43. data/lib/beyond_api/resources/shop.rb +561 -0
  44. data/lib/beyond_api/resources/signers.rb +63 -0
  45. data/lib/beyond_api/resources/token.rb +41 -0
  46. data/lib/beyond_api/resources/users.rb +376 -0
  47. data/lib/beyond_api/resources/variations.rb +145 -0
  48. data/lib/beyond_api/resources/variations/availability.rb +105 -0
  49. data/lib/beyond_api/resources/webhook_subscriptions.rb +176 -0
  50. data/lib/beyond_api/session.rb +121 -0
  51. data/lib/beyond_api/utils.rb +51 -0
  52. data/lib/beyond_api/version.rb +3 -0
  53. data/lib/generators/beyond_api/install_generator.rb +13 -0
  54. data/lib/generators/templates/beyond_api_initializer.rb +29 -0
  55. metadata +194 -0
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "beyond_api/utils"
4
+
5
+ module BeyondApi
6
+ class OrderSettings < Base
7
+ include BeyondApi::Utils
8
+
9
+ #
10
+ # A +GET+ request is used to retrieve the order settings.
11
+ #
12
+ # $ curl 'https://api-shop.beyondshop.cloud/api/order-settings' -i -X GET \
13
+ # -H 'Accept: application/hal+json' \
14
+ # -H 'Authorization: Bearer <Access token>'
15
+ #
16
+ # @beyond_api.scopes +oset:r
17
+ #
18
+ # @return [OpenStruct]
19
+ #
20
+ # @example
21
+ # @order_settings = session.payment_methods.all
22
+ #
23
+ def all(params = {})
24
+ response, status = BeyondApi::Request.get(@session, "/order-settings")
25
+
26
+ handle_response(response, status)
27
+ end
28
+
29
+ #
30
+ # A +PUT+ request is used to update the order settings.
31
+ #
32
+ # $ curl 'https://api-shop.beyondshop.cloud/api/order-settings' -i -X PUT \
33
+ # -H 'Content-Type: application/json' \
34
+ # -H 'Accept: application/hal+json' \
35
+ # -H 'Authorization: Bearer <Access token>' \
36
+ # -d '{"invoiceCancelationNote": "This is an invoice cancelation note","invoiceCancellationNote": "This is an invoice cancellation note","defaultDeliveryDateNote": "This is the default delivery date note","defaultInvoiceNote": "This is the default invoice note","orderNumberConfiguration": {
37
+ # "stringPrefix" : "2017-shop-",
38
+ # "nextNumericSuffix" : 1000,
39
+ # "numericSuffixLength" : 4
40
+ # },
41
+ # "invoiceNumberConfiguration": {
42
+ # "stringPrefix" : "2017-invoice-",
43
+ # "nextNumericSuffix" : 1000,
44
+ # "numericSuffixLength" : 4
45
+ # }
46
+ # }'
47
+ #
48
+ # @beyond_api.scopes +oset:u
49
+ #
50
+ # @param body [Hash] the request body
51
+ #
52
+ # @return [OpenStruct]
53
+ #
54
+ # @example
55
+ # body = {
56
+ # "invoiceCancelationNote"=> "This is an invoice cancelation note",
57
+ # "invoiceCancellationNote"=> "This is an invoice cancellation note",
58
+ # "defaultDeliveryDateNote"=> "This is the default delivery date note",
59
+ # "defaultInvoiceNote"=> "This is the default invoice note",
60
+ # "orderNumberConfiguration"=> {
61
+ # "stringPrefix"=> "2017-shop-",
62
+ # "nextNumericSuffix"=> 1000,
63
+ # "numericSuffixLength"=> 4
64
+ # },
65
+ # "invoiceNumberConfiguration"=> {
66
+ # "stringPrefix"=> "2017-invoice-",
67
+ # "nextNumericSuffix"=> 1000,
68
+ # "numericSuffixLength"=> 4
69
+ # }
70
+ # }
71
+ #
72
+ # @order_settings = session.order_settings.update(body)
73
+ #
74
+ def update(order_settings, body)
75
+ response, status = BeyondApi::Request.put(@session, "/order-settings", body)
76
+
77
+ handle_response(response, status)
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,968 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "beyond_api/utils"
4
+
5
+ module BeyondApi
6
+ class Orders < Base
7
+ include BeyondApi::Utils
8
+
9
+ #
10
+ # A +GET+ request is used to retrieve the active payment processes. There is only one active payment process. See {Show payment process details}[http://docs.beyondshop.cloud/#resources-payment-process-get] for more information about the request and response structure.
11
+ #
12
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/208e2c1d-6610-43c7-b2f1-20aad6f029b9/processes/payments/active' -i -X GET \
13
+ # -H 'Content-Type: application/json' \
14
+ # -H 'Accept: application/hal+json' \
15
+ # -H 'Authorization: Bearer <Access token>'
16
+ #
17
+ # @beyond_api.scopes +pypr:r
18
+ #
19
+ # @param order_id [String] the order UUID
20
+ #
21
+ # @return [OpenStruct]
22
+ #
23
+ # @example
24
+ # @payment_process = session.orders.active_payment_process("268a8629-55cd-4890-9013-936b9b5ea14c")
25
+ #
26
+ def active_payment_process(order_id)
27
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/payments/active")
28
+
29
+ handle_response(response, status)
30
+ end
31
+
32
+ #
33
+ # A +GET+ request is used to retrieve the active refund processes. There is only one active refund process. See {Show refund process details}[http://docs.beyondshop.cloud/#resources-refund-process-get] for more information about the request and response structure.
34
+ #
35
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/8613295f-4d44-4143-bfd0-6b81fc178618/processes/refunds/active' -i -X GET \
36
+ # -H 'Content-Type: application/json' \
37
+ # -H 'Accept: application/hal+json' \
38
+ # -H 'Authorization: Bearer <Access token>'
39
+ #
40
+ # @beyond_api.scopes +rfpr:r
41
+ #
42
+ # @param order_id [String] the order UUID
43
+ #
44
+ # @return [OpenStruct]
45
+ #
46
+ # @example
47
+ # @refund_process = session.orders.active_refund_process("268a8629-55cd-9845-3114-454b9b5ea14c")
48
+ #
49
+ def active_refund_process(order_id)
50
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/refunds/active")
51
+
52
+ handle_response(response, status)
53
+ end
54
+
55
+ #
56
+ # A +GET+ request is used to list all orders of the shop in a paged way. Each item in the response represents a summary of the order data.
57
+ #
58
+ # @beyond_api.scopes +ordr:r
59
+ #
60
+ # @option params [Integer] :size the page size
61
+ # @option params [Integer] :page the page number
62
+ #
63
+ # @return [OpenStruct]
64
+ #
65
+ # @example
66
+ # @orders = session.orders.all(size: 100, page: 0)
67
+ #
68
+ def all(params = {})
69
+ response, status = BeyondApi::Request.get(@session, "/orders", params)
70
+
71
+ handle_response(response, status)
72
+ end
73
+
74
+ #
75
+ # A +POST+ request is used to cancel an order.
76
+ #
77
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/e3f9264a-395b-407d-9036-00f38f609be6/cancel' -i -X POST \
78
+ # -H 'Content-Type: application/json' \
79
+ # -H 'Accept: application/hal+json' \
80
+ # -H 'Authorization: Bearer <Access token>' \
81
+ # -d '{
82
+ # "comment" : "This needs to be done fast!"
83
+ # }'
84
+ #
85
+ # @beyond_api.scopes +clpr:c
86
+ #
87
+ # @param order_id [String] the order UUID
88
+ # @param body [Hash] the request body
89
+ #
90
+ # @return [OpenStruct]
91
+ #
92
+ # @example
93
+ # body = {
94
+ # "comment"=> "This needs to be done fast!"
95
+ # }
96
+ # @order = session.orders.cancel("268a8629-55cd-4890-9013-936b9b5ea14c", body)
97
+ #
98
+ def cancel(order_id, body)
99
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/cancel", body)
100
+
101
+ handle_response(response, status)
102
+ end
103
+
104
+ #
105
+ # A +GET+ request is used to retrieve the cancelation process details of an order.
106
+ #
107
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/f16cf0db-7449-4029-a886-76f38b4aa464/processes/cancelations/365b4b63-45a8-49f6-94c5-a65e0dee83b5' -i -X GET \
108
+ # -H 'Content-Type: application/json' \
109
+ # -H 'Accept: application/hal+json' \
110
+ # -H 'Authorization: Bearer <Access token>'
111
+ #
112
+ # @beyond_api.scopes +clpr:r
113
+ #
114
+ # @param order_id [String] the order UUID
115
+ # @param cancelation_id [String] the cancelation UUID
116
+ #
117
+ # @return [OpenStruct]
118
+ #
119
+ # @example
120
+ # @pcancelation_process = session.orders.cancelation_process("268a8629-55cd-4890-9013-936b9b5ea14c", "365b4b63-45a8-49f6-94c5-a65e0dee83b5")
121
+ #
122
+ def cancelation_process(order_id, cancelation_id)
123
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/payments/cancelations/#{cancelation_id}")
124
+
125
+ handle_response(response, status)
126
+ end
127
+
128
+ #
129
+ # A +GET+ request is used to list all cancelation processes of an order in a paged way.
130
+ #
131
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/b8cb904d-4c82-4c39-a3a4-de7cb181a5d3/processes/cancelations?page=0&size=20' -i -X GET \
132
+ # -H 'Content-Type: application/json' \
133
+ # -H 'Accept: application/hal+json' \
134
+ # -H 'Authorization: Bearer <Access token>'
135
+ #
136
+ # @beyond_api.scopes +clpr:r
137
+ #
138
+ # @param order_id [String] the order UUID
139
+ # @option params [Integer] :size the page size
140
+ # @option params [Integer] :page the page number
141
+ #
142
+ # @return [OpenStruct]
143
+ #
144
+ # @example
145
+ # @pcancelation_processes = session.orders.cancelation_processes("268a8629-55cd-4890-9013-936b9b5ea14c", {page: 0, size: 20})
146
+ #
147
+ def cancelation_processes(order_id, params = {})
148
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/payments/cancelations", params)
149
+
150
+ handle_response(response, status)
151
+ end
152
+
153
+ #
154
+ # A +POST+ request is used to capture the payment.
155
+ #
156
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/ebfd99d6-f025-4c97-96d2-d5adbb45d6c2/processes/payments/2936deca-fd56-4c0d-88e2-8030c897bf90/capture' -i -X POST \
157
+ # -H 'Accept: application/hal+json' \
158
+ # -H 'Authorization: Bearer <Access token>'
159
+ #
160
+ # @beyond_api.scopes +pypr:u
161
+ #
162
+ # @param order_id [String] the order UUID
163
+ # @param payment_id [String] the payment UUID
164
+ #
165
+ # @return [OpenStruct]
166
+ #
167
+ # @example
168
+ # @payment_process = session.orders.capture_payment_process("268a8629-55cd-4890-9013-936b9b5ea14c", "266d8608-55cd-4890-9474-296a9q1ea05q")
169
+ #
170
+ def capture_payment_process(order_id, payment_id)
171
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/processes/payments/#{payment_id}/capture", body)
172
+
173
+ handle_response(response, status)
174
+ end
175
+
176
+ #
177
+ # A +POST+ request is used to create a new cancelation process for an order. Cancelation processes trigger a refund process.
178
+ #
179
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/9072c00d-1bc7-4fd8-8836-94ada5084e7a/processes/cancelations' -i -X POST \
180
+ # -H 'Content-Type: application/json' \
181
+ # -H 'Accept: application/hal+json' \
182
+ # -H 'Authorization: Bearer <Access token>' \
183
+ # -d '{
184
+ # "comment" : "This needs to be done fast!",
185
+ # "lineItems" : [ {
186
+ # "quantity" : 3,
187
+ # "productLineItemId" : "0e1f8ab4-ec78-42a6-9a46-a3384cd17d52"
188
+ # } ]
189
+ # }'
190
+ #
191
+ # @beyond_api.scopes +clpr:c
192
+ #
193
+ # @param order_id [String] the order UUID
194
+ # @param body [Hash] the request body
195
+ #
196
+ # @return [OpenStruct]
197
+ #
198
+ # @example
199
+ # body = {
200
+ # "comment"=> "This needs to be done fast!",
201
+ # "lineItems"=> [{
202
+ # "quantity"=> 3,
203
+ # "productLineItemId"=> "0e1f8ab4-ec78-42a6-9a46-a3384cd17d52"
204
+ # }]
205
+ # }
206
+ # @pcancelation_process = session.orders.create_cancelation_process("268a8629-55cd-4890-9013-936b9b5ea14c", body)
207
+ #
208
+ def create_cancelation_process(order_id, body)
209
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/processes/payments/cancelations")
210
+
211
+ handle_response(response, status)
212
+ end
213
+
214
+ #
215
+ # A +POST+ request is used to create an invoice for the order.
216
+ #
217
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/a5d4d6c6-e77d-4180-8dbf-729f38a698b2/create-invoice' -i -X POST \
218
+ # -H 'Content-Type: application/json' \
219
+ # -H 'Accept: application/hal+json' \
220
+ # -H 'Authorization: Bearer <Access token>' \
221
+ # -d '{"deliveryDateNote": "Test DeliveryDateNote", "invoiceNote": "Test invoiceNote"}'
222
+ #
223
+ # @beyond_api.scopes +ordr:u
224
+ #
225
+ # @param order_id [String] the order UUID
226
+ # @param body [Hash] the request body
227
+ #
228
+ # @return [OpenStruct]
229
+ #
230
+ # @example
231
+ # body = {
232
+ # "deliveryDateNote" => "Test DeliveryDateNote",
233
+ # "invoiceNote" => "Test invoiceNote"
234
+ # }
235
+ # @order = session.orders.create_invoice("268a8629-55cd-4890-9013-936b9b5ea14c", body)
236
+ #
237
+ def create_invoice(order_id, body)
238
+ response, status = BeyondApi::Request.put(@session, "/orders/#{order_id}/create-invoice", body)
239
+
240
+ handle_response(response, status)
241
+ end
242
+
243
+ #
244
+ # A +POST+ request is used to create a new return process for an order. Return processes trigger a refund process.
245
+ #
246
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/29007bb7-739a-46f5-8c70-4e1029b52fa5/processes/returns' -i -X POST \
247
+ # -H 'Content-Type: application/json' \
248
+ # -H 'Accept: application/hal+json' \
249
+ # -H 'Authorization: Bearer <Access token>' \
250
+ # -d '{
251
+ # "comment" : "This needs to be done fast!",
252
+ # "sendMail" : true,
253
+ # "lineItems" : [ {
254
+ # "quantity" : 3,
255
+ # "productLineItemId" : "bb9ad011-6417-4f04-8bc2-39651edebd2f",
256
+ # "status" : "RETURNED"
257
+ # } ],
258
+ # "shippingPriceRefund" : {
259
+ # "currency" : "EUR",
260
+ # "amount" : 19.99
261
+ # }
262
+ # }'
263
+ #
264
+ # @beyond_api.scopes +rtpr:c
265
+ #
266
+ # @param order_id [String] the order UUID
267
+ # @param body [Hash] the request body
268
+ #
269
+ # @return [OpenStruct]
270
+ #
271
+ # @example
272
+ # body = {
273
+ # "comment": "This needs to be done fast!",
274
+ # "sendMail": true,
275
+ # "lineItems": [{
276
+ # "quantity": 3,
277
+ # "productLineItemId": "bb9ad011-6417-4f04-8bc2-39651edebd2f",
278
+ # "status": "RETURNED"
279
+ # }],
280
+ # "shippingPriceRefund": {
281
+ # "currency": "EUR",
282
+ # "amount": 19.99
283
+ # }
284
+ # }
285
+ # @return_process = session.orders.create_return_process("268a8629-55cd-4890-9013-936b9b5ea14c", body)
286
+ #
287
+ def create_return_process(order_id, body)
288
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/processes/returns", body)
289
+
290
+ handle_response(response, status)
291
+ end
292
+
293
+ #
294
+ # A +POST+ request is ussed to create a new shipping processes for an order.
295
+ #
296
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/8df2fe3b-5149-492f-932a-073f012305eb/processes/shippings' -i -X POST \
297
+ # -H 'Content-Type: application/json' \
298
+ # -H 'Accept: application/hal+json' \
299
+ # -H 'Authorization: Bearer <Access token>' \
300
+ # -d '{
301
+ # "comment" : "This needs to be done fast!",
302
+ # "sendMail" : true,
303
+ # "createDeliveryNote" : true,
304
+ # "trackingCode" : "lookAtMyTrackingCodeWow",
305
+ # "trackingLink" : "http://tracking.is/fun?code=lookAtMyTrackingCodeWow",
306
+ # "lineItems" : [ {
307
+ # "quantity" : 3,
308
+ # "productLineItemId" : "e96e1b33-d9e9-4508-862a-816235b541f7"
309
+ # } ]
310
+ # }'
311
+ #
312
+ # @beyond_api.scopes +shpr:c
313
+ #
314
+ # @param order_id [String] the order UUID
315
+ # @param body [Hash] the request body
316
+ #
317
+ # @return [OpenStruct]
318
+ #
319
+ # @example
320
+ # body = {
321
+ # "comment" => "This needs to be done fast!",
322
+ # "send_mail" => true,
323
+ # "create_delivery_note" => true,
324
+ # "tracking_code" => "lookAtMyTrackingCodeWow",
325
+ # "tracking_link" => "http=>//tracking.is/fun?code=lookAtMyTrackingCodeWow",
326
+ # "line_items" => [ {
327
+ # "quantity" => 3,
328
+ # "product_line_item_id" => "e96e1b33-d9e9-4508-862a-816235b541f7"
329
+ # } ]
330
+ # }
331
+ # @shipping_process = session.orders.create_shipping_process("268a8629-55cd-9845-3114-454b9b5ea14c", "268a8629-55cd-4890-9013-936b9b5ea14a")
332
+ #
333
+ def create_shipping_process(order_id, body)
334
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/processes/shippings", body)
335
+
336
+ handle_response(response, status)
337
+ end
338
+
339
+ #
340
+ # A +GET+ request is used to list all events of an order in a paged way.
341
+ #
342
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/66b6aab5-2ed4-4f36-855e-3adb2ea873ee/events' -i -X GET \
343
+ # -H 'Accept: application/hal+json' \
344
+ # -H 'Authorization: Bearer <Access token>'
345
+ #
346
+ # @beyond_api.scopes +ordr:r
347
+ #
348
+ # @param order_id [String] the order UUID
349
+ # @option params [Integer] :size the page size
350
+ # @option params [Integer] :page the page number
351
+ #
352
+ # @return [OpenStruct]
353
+ #
354
+ # @example
355
+ # @events = session.orders.find("268a8629-55cd-4890-9013-936b9b5ea14c")
356
+ #
357
+ def events(order_id, params = {})
358
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/events", params)
359
+
360
+ handle_response(response, status)
361
+ end
362
+
363
+ #
364
+ # A +GET+ request is used to retrieve the details of an order.
365
+ #
366
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/a27f1019-3690-40d1-bd9d-d60dff4c4cf8' -i -X GET \
367
+ # -H 'Content-Type: application/json' \
368
+ # -H 'Accept: application/hal+json' \
369
+ # -H 'Authorization: Bearer <Access token>'
370
+ #
371
+ # @beyond_api.scopes +ordr:r
372
+ #
373
+ # @param order_id [String] the order UUID
374
+ #
375
+ # @return [OpenStruct]
376
+ #
377
+ # @example
378
+ # @order = session.orders.find("268a8629-55cd-4890-9013-936b9b5ea14c")
379
+ #
380
+ def find(order_id)
381
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}")
382
+
383
+ handle_response(response, status)
384
+ end
385
+
386
+ #
387
+ # A +POST+ request is used to mark the payment process as paid.
388
+ #
389
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/9a1a1aaa-e37d-4c71-bc95-cbc228463fec/processes/payments/cb8c9a16-2d81-4ec1-9a4a-84a4c36124ae/mark-paid' -i -X POST \
390
+ # -H 'Content-Type: application/json' \
391
+ # -H 'Accept: application/hal+json' \
392
+ # -H 'Authorization: Bearer <Access token>' \
393
+ # -d '{
394
+ # "comment" : "comment",
395
+ # "details" : {
396
+ # "amount" : {
397
+ # "currency" : "EUR",
398
+ # "amount" : 77.44
399
+ # }
400
+ # }
401
+ # }'
402
+ #
403
+ # @beyond_api.scopes +pypr:u
404
+ #
405
+ # @param order_id [String] the order UUID
406
+ # @param payment_id [String] the payment UUID
407
+ # @param body [Hash] the request body
408
+ #
409
+ # @return [OpenStruct]
410
+ #
411
+ # @example
412
+ # body = {
413
+ # "comment" => "comment",
414
+ # "details" => {
415
+ # "amount" => {
416
+ # "currency" => "EUR",
417
+ # "amount" => 77.44
418
+ # }
419
+ # }
420
+ # }
421
+ #
422
+ # @payment_process = session.orders.mark_payment_process_as_paid("268a8629-55cd-4890-9013-936b9b5ea14c", "266d8608-55cd-4890-9474-296a9q1ea05q", body)
423
+ #
424
+ def mark_payment_process_as_paid(order_id, payment_id, body)
425
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/processes/payments/#{payment_id}/mark-paid", body)
426
+
427
+ handle_response(response, status)
428
+ end
429
+
430
+ #
431
+ # A +POST+ request is used to mark the payment process as voided.
432
+ #
433
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/a5558b7f-55f4-47d4-b603-9bf7eb59c05b/processes/payments/5bcc48e7-2641-42a8-a042-189ae92e9901/mark-voided' -i -X POST \
434
+ # -H 'Content-Type: application/json' \
435
+ # -H 'Accept: application/hal+json' \
436
+ # -H 'Authorization: Bearer <Access token>' \
437
+ # -d '{
438
+ # "comment" : "comment"
439
+ # }'
440
+ #
441
+ # @beyond_api.scopes +pypr:u
442
+ #
443
+ # @param order_id [String] the order UUID
444
+ # @param payment_id [String] the payment UUID
445
+ # @param body [Hash] the request body
446
+ #
447
+ # @return [OpenStruct]
448
+ #
449
+ # @example
450
+ # body = {
451
+ # "comment" => "comment"
452
+ # }
453
+ #
454
+ # @payment_process = session.orders.mark_payment_process_as_voided("268a8629-55cd-4890-9013-936b9b5ea14c", "266d8608-55cd-4890-9474-296a9q1ea05q", body)
455
+ #
456
+ def mark_payment_process_as_voided(order_id, payment_id, body)
457
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/processes/payments/#{payment_id}/mark-voided", body)
458
+
459
+ handle_response(response, status)
460
+ end
461
+
462
+ #
463
+ # A +POST+ request is used to mark the refund process as paid.
464
+ #
465
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/60baa84c-9e11-4d55-97a9-1a7b00a0691c/processes/refunds/active/mark-paid' -i -X POST \
466
+ # -H 'Content-Type: application/json' \
467
+ # -H 'Accept: application/hal+json' \
468
+ # -H 'Authorization: Bearer <Access token>' \
469
+ # -d '{
470
+ # "comment" : "comment",
471
+ # "details" : {
472
+ # "amount" : {
473
+ # "currency" : "EUR",
474
+ # "amount" : 19.98
475
+ # }
476
+ # }
477
+ # }'
478
+ #
479
+ # @beyond_api.scopes +rfpr:r
480
+ #
481
+ # @param order_id [String] the order UUID
482
+ #
483
+ # @return [OpenStruct]
484
+ #
485
+ # @example
486
+ # body = {
487
+ # "comment" => "comment",
488
+ # "details" => {
489
+ # "amount" => {
490
+ # "currency" => "EUR",
491
+ # "amount" => 19.98
492
+ # }
493
+ # }
494
+ # }
495
+ # @refund_process = session.orders.mark_refund_process_as_paid("268a8629-55cd-9845-3114-454b9b5ea14c", body)
496
+ #
497
+ def mark_refund_process_as_paid(order_id)
498
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/processes/refunds/active/mark-paid")
499
+
500
+ handle_response(response, status)
501
+ end
502
+
503
+ #
504
+ # A +POST+ request is used to mark the shipment as delivered.
505
+ #
506
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/b5642d1f-0f7f-444e-96d5-1c1d1642ea5e/processes/shippings/619d06d8-0077-4efd-b341-5103f71bfb2d/mark-delivered' -i -X POST \
507
+ # -H 'Content-Type: application/json' \
508
+ # -H 'Accept: application/hal+json' \
509
+ # -H 'Authorization: Bearer <Access token>' \
510
+ # -d '{
511
+ # "comment" : "comment"
512
+ # }'
513
+ #
514
+ # @beyond_api.scopes +shpr:u
515
+ #
516
+ # @param order_id [String] the order UUID
517
+ # @param shipping_id [String] the shipping UUID
518
+ # @param body [Hash] the request body
519
+ #
520
+ # @return [OpenStruct]
521
+ #
522
+ # @example
523
+ # body = {
524
+ # "comment" => "comment",
525
+ # }
526
+ #
527
+ # @shipping_process = session.orders.mark_shipping_process_as_delivered("268a8629-55cd-4890-9013-936b9b5ea14c", "266d8608-55cd-4890-9474-296a9q1ea05q", body)
528
+ #
529
+ def mark_shipping_process_as_delivered(order_id, shipping_process_id, body)
530
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/processes/shippings/#{shipping_process_id}/mark-delivered", body)
531
+
532
+ handle_response(response, status)
533
+ end
534
+
535
+ #
536
+ # A +POST+ request is used to mark the shipment as shipped.
537
+ #
538
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/dd6a7e20-16be-4509-bf83-fb8ee072ddad/processes/shippings/a0b0c4a5-0c80-47f4-98c3-0f55f4161176/mark-shipped' -i -X POST \
539
+ # -H 'Content-Type: application/json' \
540
+ # -H 'Accept: application/hal+json' \
541
+ # -H 'Authorization: Bearer <Access token>' \
542
+ # -d '{
543
+ # "comment" : "This needs to be done fast!",
544
+ # "sendMail" : true,
545
+ # "details" : {
546
+ # "trackingCode" : "lookAtMyTrackingCodeWow",
547
+ # "trackingLink" : "http://tracking.is/fun?code=lookAtMyTrackingCodeWow"
548
+ # }
549
+ # }'
550
+ #
551
+ # @beyond_api.scopes +shpr:u
552
+ #
553
+ # @param order_id [String] the order UUID
554
+ # @param shipping_id [String] the shipping UUID
555
+ # @param body [Hash] the request body
556
+ #
557
+ # @return [OpenStruct]
558
+ #
559
+ # @example
560
+ # body = {
561
+ # "comment" => "This needs to be done fast!",
562
+ # "sendMail" => true,
563
+ # "details" => {
564
+ # "trackingCode" => "lookAtMyTrackingCodeWow",
565
+ # "trackingLink" => "http://tracking.is/fun?code=lookAtMyTrackingCodeWow"
566
+ # }
567
+ # }
568
+ #
569
+ # @shipping_process = session.orders.mark_shipping_process_as_shipped("268a8629-55cd-4890-9013-936b9b5ea14c", "266d8608-55cd-4890-9474-296a9q1ea05q", body)
570
+ #
571
+ def mark_shipping_process_as_shipped(order_id, shipping_id, body)
572
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/processes/shippings/#{shipping_id}/mark-shipped", body)
573
+
574
+ handle_response(response, status)
575
+ end
576
+
577
+ #
578
+ # A +GET+ request is used to retrieve the payment processes.
579
+ #
580
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/d44ed295-6a08-47ba-a288-90d4f3ba9fff/processes/payments/be56bfbd-af95-45b9-8b0e-cb0c184aaf60' -i -X GET \
581
+ # -H 'Content-Type: application/json' \
582
+ # -H 'Accept: application/hal+json' \
583
+ # -H 'Authorization: Bearer <Access token>'
584
+ #
585
+ # @beyond_api.scopes +pypr:r
586
+ #
587
+ # @param order_id [String] the order UUID
588
+ # @param payment_id [String] the payment UUID
589
+ #
590
+ # @return [OpenStruct]
591
+ #
592
+ # @example
593
+ # @payment_process = session.orders.payment_process("268a8629-55cd-4890-9013-936b9b5ea14c", "266d8608-55cd-4890-9474-296a9q1ea05q")
594
+ #
595
+ def payment_process(order_id, payment_id)
596
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/payments/#{payment_id}")
597
+
598
+ handle_response(response, status)
599
+ end
600
+
601
+ #
602
+ # A +GET+ request is used to list all payment processes of an order in a paged way.
603
+ #
604
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/2012b775-a706-41e0-b0f9-5142864ca4a0/processes/payments?page=0&size=20' -i -X GET \
605
+ # -H 'Content-Type: application/json' \
606
+ # -H 'Accept: application/hal+json' \
607
+ # -H 'Authorization: Bearer <Access token>'
608
+ #
609
+ # @beyond_api.scopes +pypr:r
610
+ #
611
+ # @param order_id [String] the order UUID
612
+ # @option params [Integer] :size the page size
613
+ # @option params [Integer] :page the page number
614
+ #
615
+ # @return [OpenStruct]
616
+ #
617
+ # @example
618
+ # @payment_processes = session.orders.payment_processes("268a8629-55cd-4890-9013-936b9b5ea14c", {page: 0, size: 20})
619
+ #
620
+ def payment_processes(order_id, params = {})
621
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/payments", params)
622
+
623
+ handle_response(response, status)
624
+ end
625
+
626
+ #
627
+ # A +GET+ request is used to list all order processes.
628
+ #
629
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/934ece52-055c-4896-8d16-560f1461ea56/processes' -i -X GET \
630
+ # -H 'Content-Type: application/json' \
631
+ # -H 'Accept: application/hal+json' \
632
+ # -H 'Authorization: Bearer <Access token>'
633
+ #
634
+ # @beyond_api.scopes +ordr:r
635
+ #
636
+ # @param order_id [String] the order UUID
637
+ #
638
+ # @return [OpenStruct]
639
+ #
640
+ # @example
641
+ # @orders = session.orders.processes("268a8629-55cd-4890-9013-936b9b5ea14c")
642
+ #
643
+ def processes(order_id)
644
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes")
645
+
646
+ handle_response(response, status)
647
+ end
648
+
649
+ #
650
+ # A +GET+ request is used to retrieve the refund processes.
651
+ #
652
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/801885c8-0b25-44a2-a1a4-60cbf3f9ecca/processes/refunds/4c02883f-be31-4fb2-ad0d-ccbc3678a9f5' -i -X GET \
653
+ # -H 'Content-Type: application/json' \
654
+ # -H 'Accept: application/hal+json' \
655
+ # -H 'Authorization: Bearer <Access token>'
656
+ #
657
+ # @beyond_api.scopes +rfpr:r
658
+ #
659
+ # @param order_id [String] the order UUID
660
+ # @param refund_id [String] the refund UUID
661
+ #
662
+ # @return [OpenStruct]
663
+ #
664
+ # @example
665
+ # @refund_process = session.orders.refund_process("268a8629-55cd-9845-3114-454b9b5ea14c", "268a8629-55cd-4890-9013-936b9b5ea14a")
666
+ #
667
+ def refund_process(order_id, refund_id)
668
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/refunds/#{refund_id}")
669
+
670
+ handle_response(response, status)
671
+ end
672
+
673
+ #
674
+ # A +GET+ request is used to list all refund processes of an order in a paged way. Refunds are triggered if either a cancelation or return process is created. See {Create cancelation processes}[http://docs.beyondshop.cloud/#resources-cancel-processes-create] and {Create return processes}[http://docs.beyondshop.cloud/#resources-return-processes-create] for more information.
675
+ #
676
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/6f86e42f-763e-4514-a37d-fb8f88cdc14c/processes/refunds?page=0&size=20' -i -X GET \
677
+ # -H 'Content-Type: application/json' \
678
+ # -H 'Accept: application/hal+json' \
679
+ # -H 'Authorization: Bearer <Access token>'
680
+ #
681
+ # @beyond_api.scopes +rfpr:r
682
+ #
683
+ # @param order_id [String] the order UUID
684
+ # @option params [Integer] :size the page size
685
+ # @option params [Integer] :page the page number
686
+ #
687
+ # @return [OpenStruct]
688
+ #
689
+ # @example
690
+ # @refund_processes = session.orders.refund_processes("268a8629-55cd-4890-9013-936b9b5ea14c", {page: 0, size: 20})
691
+ #
692
+ def refund_processes(order_id, params = {})
693
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/refunds", params)
694
+
695
+ handle_response(response, status)
696
+ end
697
+
698
+ #
699
+ # A +GET+ request is used to list all return processes of an order in a paged way.
700
+ #
701
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/cb9927e4-60d1-4a90-b40c-f5a8e2b25301/processes/returns/910a3fde-cb23-418f-876a-694ce42245ef' -i -X GET \
702
+ # -H 'Content-Type: application/json' \
703
+ # -H 'Accept: application/hal+json' \
704
+ # -H 'Authorization: Bearer <Access token>'
705
+ #
706
+ # @beyond_api.scopes +rtpr:r
707
+ #
708
+ # @param order_id [String] the order UUID
709
+ # @param return_process_id [String] the return process UUID
710
+ #
711
+ # @return [OpenStruct]
712
+ #
713
+ # @example
714
+ # @return_process = session.orders.return_process("268a8629-55cd-4890-9013-936b9b5ea14c", "910a3fde-cb23-418f-876a-694ce42245ef")
715
+ #
716
+ def return_process(order_id, return_process_id)
717
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/returns/#{return_process_id}")
718
+
719
+ handle_response(response, status)
720
+ end
721
+
722
+ #
723
+ # A +GET+ request is used to list all return processes of an order in a paged way.
724
+ #
725
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/9e26232f-aa7a-408b-8041-9439999268c5/processes/returns?page=0&size=20' -i -X GET \
726
+ # -H 'Content-Type: application/json' \
727
+ # -H 'Accept: application/hal+json' \
728
+ # -H 'Authorization: Bearer <Access token>'
729
+ #
730
+ # @beyond_api.scopes +rtpr:r
731
+ #
732
+ # @param order_id [String] the order UUID
733
+ # @option params [Integer] :size the page size
734
+ # @option params [Integer] :page the page number
735
+ #
736
+ # @return [OpenStruct]
737
+ #
738
+ # @example
739
+ # @return_processes = session.orders.return_processes("268a8629-55cd-4890-9013-936b9b5ea14c", {page: 0, size: 20})
740
+ #
741
+ def return_processes(order_id, params = {})
742
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/returns", params)
743
+
744
+ handle_response(response, status)
745
+ end
746
+
747
+ #
748
+ # A +GET+ request is used to retrieve the details of an order by cart ID.
749
+ #
750
+ # @beyond_api.scopes +ordr:r
751
+ #
752
+ # @param cart_id [String] the cart UUID
753
+ #
754
+ # @return [OpenStruct]
755
+ #
756
+ # @example
757
+ # @order = session.orders.search_by_cart_id("268a8629-55cd-4890-9013-936b9b5ea14c")
758
+ #
759
+ def search_by_cart_id(cart_id)
760
+ response, status = BeyondApi::Request.get(@session, "/orders/search/find-by-cart-id", {"cartId": cart_id})
761
+
762
+ handle_response(response, status)
763
+ end
764
+
765
+ #
766
+ # A +GET+ request is used to retrieve the +orderNumber+ and +orderId+ of an order by cart Id. If there is no order for the given cart Id, a HTTP 404 - NOT FOUND response is returned.
767
+ #
768
+ # @param cart_id [String] the cart UUID
769
+ #
770
+ # @return [OpenStruct]
771
+ #
772
+ # @example
773
+ # @order = session.orders.search_by_cart_id("268a8629-55cd-4890-9013-936b9b5ea14c")
774
+ #
775
+ def search_order_number_by_cart_id(cart_id)
776
+ response, status = BeyondApi::Request.get(@session, "/orders/search/find-order-number-by-cart-id", {"cartId": cart_id})
777
+
778
+ handle_response(response, status)
779
+ end
780
+
781
+ #
782
+ # A +GET+ request is used to send an invoice for the order.
783
+ #
784
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/73bb3fbb-7146-4088-a0d8-dd24dc030e07/send-invoice' -i -X POST \
785
+ # -H 'Accept: application/hal+json' \
786
+ # -H 'Authorization: Bearer <Access token>'
787
+ #
788
+ # @param order_id [String] the order_id UUID
789
+ #
790
+ # @return [OpenStruct]
791
+ #
792
+ # @example
793
+ # @order = session.orders.send_invoice("268a8629-55cd-4890-9013-936b9b5ea14c")
794
+ #
795
+ def send_invoice(order_id)
796
+ response, status = BeyondApi::Request.post(@session, "/orders/#{order_id}/send-invoice")
797
+
798
+ handle_response(response, status)
799
+ end
800
+
801
+ #
802
+ # A +GET+ request is used to retrieve the shipping process details.
803
+ #
804
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/af42860f-2813-4130-85d9-2d315a4f802e/processes/shippings/80ebe96b-bcd5-4a34-a428-8a67ed114ce6' -i -X GET \
805
+ # -H 'Content-Type: application/json' \
806
+ # -H 'Accept: application/hal+json' \
807
+ # -H 'Authorization: Bearer <Access token>'
808
+ #
809
+ # @beyond_api.scopes +shpr:r
810
+ #
811
+ # @param order_id [String] the order UUID
812
+ # @param shipping_process_id [String] the shipping process UUID
813
+ #
814
+ # @return [OpenStruct]
815
+ #
816
+ # @example
817
+ # @shipping_process = session.orders.refund_process("268a8629-55cd-9845-3114-454b9b5ea14c", "268a8629-55cd-4890-9013-936b9b5ea14a")
818
+ #
819
+ def shipping_process(order_id, shipping_process_id)
820
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/shippings/#{shipping_process_id}")
821
+
822
+ handle_response(response, status)
823
+ end
824
+
825
+ #
826
+ # A +GET+ request is used to list all shipping processes of an order in a paged way.
827
+ #
828
+ # $ curl 'https://api-shop.beyondshop.cloud/api/orders/d6387876-5e93-48dc-a6f3-f85893149819/processes/shippings?page=0&size=20' -i -X GET \
829
+ # -H 'Content-Type: application/json' \
830
+ # -H 'Accept: application/hal+json' \
831
+ # -H 'Authorization: Bearer <Access token>'
832
+ #
833
+ # @beyond_api.scopes +shpr:r
834
+ #
835
+ # @param order_id [String] the order UUID
836
+ # @option params [Integer] :size the page size
837
+ # @option params [Integer] :page the page number
838
+ #
839
+ # @return [OpenStruct]
840
+ #
841
+ # @example
842
+ # @shipping_processes = session.orders.shipping_processes("268a8629-55cd-4890-9013-936b9b5ea14c", {page: 0, size: 20})
843
+ #
844
+ def shipping_processes(order_id, params = {})
845
+ response, status = BeyondApi::Request.get(@session, "/orders/#{order_id}/processes/shippings", params)
846
+
847
+ handle_response(response, status)
848
+ end
849
+
850
+ #
851
+ # A +PUT+ request is used to change the customer’s billing address.
852
+ #
853
+ # @beyond_api.scopes +ordr:u
854
+ #
855
+ # @param order_id [String] the order UUID
856
+ # @param body [Hash] the request body
857
+ #
858
+ # @return [OpenStruct]
859
+ #
860
+ # @example
861
+ # body = {
862
+ # "address" => {
863
+ # "salutation" => "Mrs",
864
+ # "gender" => "FEMALE",
865
+ # "company" => "Astrid Alster GmbH",
866
+ # "title" => nil,
867
+ # "firstName" => "Astrid",
868
+ # "middleName" => "Agnes",
869
+ # "lastName" => "Alster",
870
+ # "street" => "Alsterwasserstraße",
871
+ # "houseNumber" => "3",
872
+ # "street2" => "Erdgeschoss",
873
+ # "addressExtension" => "Hinterhof",
874
+ # "postalCode" => "20999",
875
+ # "dependentLocality" => "Seevetal",
876
+ # "city" => "Alsterwasser",
877
+ # "country" => "DE",
878
+ # "state" => "Hamburg",
879
+ # "email" => "a.alsterh@example.com",
880
+ # "phone" => "(800) 555-0102",
881
+ # "mobile" => "(800) 555-0103",
882
+ # "vatId" => "DE123456789",
883
+ # "taxNumber" => "HRE 987654/32123/864516",
884
+ # "birthDate" => "1985-05-11",
885
+ # "displayAddressLines" => [ "Astrid Alster GmbH", "Astrid Agnes Alster", "Alsterwasserweg 2", "Erdgeschoss", "Seevetal", "20999 Alsterwasser", "Germany" ],
886
+ # "_id" => null
887
+ # },
888
+ # "comment" => "Updated billing address"
889
+ # }
890
+ # @order = session.orders.update_billing_address("268a8629-55cd-4890-9013-936b9b5ea14c", body)
891
+ #
892
+ def update_billing_address(order_id, body)
893
+ response, status = BeyondApi::Request.put(@session, "/orders/#{order_id}/billing-address", body)
894
+
895
+ handle_response(response, status)
896
+ end
897
+
898
+ #
899
+ # A +PUT+ request is used to change the order note.
900
+ #
901
+ # @beyond_api.scopes +ordr:u
902
+ #
903
+ # @param order_id [String] the order UUID
904
+ # @param body [Hash] the request body
905
+ #
906
+ # @return [OpenStruct]
907
+ #
908
+ # @example
909
+ # body = {
910
+ # "orderNote" => "not paid yet"
911
+ # }
912
+ # @order = session.orders.update_order_note("268a8629-55cd-4890-9013-936b9b5ea14c", body)
913
+ #
914
+ def update_order_note(order_id, body)
915
+ response, status = BeyondApi::Request.put(@session, "/orders/#{order_id}/order-note", body)
916
+
917
+ handle_response(response, status)
918
+ end
919
+
920
+ #
921
+ # A +PUT+ request is used to change the customer’s shipping.
922
+ #
923
+ # @beyond_api.scopes +ordr:u
924
+ #
925
+ # @param order_id [String] the order UUID
926
+ # @param body [Hash] the request body
927
+ #
928
+ # @return [OpenStruct]
929
+ #
930
+ # @example
931
+ # body = {
932
+ # "address" => {
933
+ # "salutation" => "Mrs",
934
+ # "gender" => "FEMALE",
935
+ # "company" => "Astrid Alster GmbH",
936
+ # "title" => nil,
937
+ # "firstName" => "Astrid",
938
+ # "middleName" => "Agnes",
939
+ # "lastName" => "Alster",
940
+ # "street" => "Alsterwasserstraße",
941
+ # "houseNumber" => "3",
942
+ # "street2" => "Erdgeschoss",
943
+ # "addressExtension" => "Hinterhof",
944
+ # "postalCode" => "20999",
945
+ # "dependentLocality" => "Seevetal",
946
+ # "city" => "Alsterwasser",
947
+ # "country" => "DE",
948
+ # "state" => "Hamburg",
949
+ # "email" => "a.alsterh@example.com",
950
+ # "phone" => "(800) 555-0102",
951
+ # "mobile" => "(800) 555-0103",
952
+ # "vatId" => "DE123456789",
953
+ # "taxNumber" => "HRE 987654/32123/864516",
954
+ # "birthDate" => "1985-05-11",
955
+ # "displayAddressLines" => [ "Astrid Alster GmbH", "Astrid Agnes Alster", "Alsterwasserweg 2", "Erdgeschoss", "Seevetal", "20999 Alsterwasser", "Germany" ],
956
+ # "_id" => null
957
+ # },
958
+ # "comment" => "Updated shipping address"
959
+ # }
960
+ # @order = session.orders.update_shipping_address("268a8629-55cd-4890-9013-936b9b5ea14c", body)
961
+ #
962
+ def update_shipping_address(order_id, body)
963
+ response, status = BeyondApi::Request.put(@session, "/orders/#{order_id}/shipping-address", body)
964
+
965
+ handle_response(response, status)
966
+ end
967
+ end
968
+ end