beyond_api 0.5.1.pre → 0.6.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +57 -3
- data/Gemfile.lock +3 -3
- data/lib/beyond_api/resources/carts.rb +18 -9
- data/lib/beyond_api/resources/categories.rb +2 -2
- data/lib/beyond_api/resources/categories_view.rb +13 -2
- data/lib/beyond_api/resources/checkout_settings.rb +16 -1
- data/lib/beyond_api/resources/customers.rb +333 -0
- data/lib/beyond_api/resources/newsletter_target.rb +1 -1
- data/lib/beyond_api/resources/order_settings.rb +45 -28
- data/lib/beyond_api/resources/orders.rb +175 -87
- data/lib/beyond_api/resources/payment_methods.rb +28 -25
- data/lib/beyond_api/resources/product_attribute_definitions.rb +3 -5
- data/lib/beyond_api/resources/products/attachments.rb +13 -14
- data/lib/beyond_api/resources/products/availability.rb +12 -10
- data/lib/beyond_api/resources/products/cross_sells.rb +159 -0
- data/lib/beyond_api/resources/products/custom_attributes.rb +7 -7
- data/lib/beyond_api/resources/products/images.rb +47 -8
- data/lib/beyond_api/resources/products/videos.rb +146 -0
- data/lib/beyond_api/resources/products.rb +11 -9
- data/lib/beyond_api/resources/products_view.rb +6 -51
- data/lib/beyond_api/resources/shipping_zones.rb +5 -5
- data/lib/beyond_api/resources/shop.rb +16 -21
- data/lib/beyond_api/resources/signers.rb +1 -1
- data/lib/beyond_api/resources/users.rb +13 -10
- data/lib/beyond_api/resources/variations/images.rb +160 -0
- data/lib/beyond_api/resources/variations.rb +40 -37
- data/lib/beyond_api/resources/webhook_subscriptions.rb +1 -1
- data/lib/beyond_api/session.rb +5 -5
- data/lib/beyond_api/version.rb +1 -1
- metadata +7 -4
- data/lib/beyond_api/resources/product_settings.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31b8f47b376a95d1575e48fb7661397aa5c4e374fc6ac680b44d16dcd7bb4e5d
|
4
|
+
data.tar.gz: 5fb3e444da729827dee2f3ae336771b6ffc9d278150bcd371b115d9e7496dd7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcf18ac9f5037a904f630cef79698edfe2ab1d4a9bdc417cf27a1f9e354d0df760dd2ff18416790774dc451bba569c7227de8c5bee7644b42cce35796dccc82a
|
7
|
+
data.tar.gz: 1126ed97396c7db4fdf721106a49471ba9c68c4f6c61f0a35f061b23e262acbdf78a9ea091a53eb8052a65ddb7edf9cb02a18a1920ae108fd949464745a1d692
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,61 @@
|
|
1
|
+
### v0.6.0.pre
|
2
|
+
|
3
|
+
* bug-fixes
|
4
|
+
* Fix `Carts#create` method
|
5
|
+
* Fix `Carts#set_shipping_method_to_default` method
|
6
|
+
* Fix `OrderSettings#update` method
|
7
|
+
* Fix `Orders#capture_payment_process` method
|
8
|
+
* Fix `Orders#create_cancelation_process` method
|
9
|
+
* Fix `Products#attachments` method
|
10
|
+
* Fix `Products#adjust_stock_level` method
|
11
|
+
* Fix `Products#add_image` method
|
12
|
+
* Fix `Products#set_image_as_default` method
|
13
|
+
* Fix `ProductsView#all` method
|
14
|
+
* Fix `Shops#legal_content` method
|
15
|
+
* Fix `Shops#legal_contents` method
|
16
|
+
* Fix `Shops#update` method
|
17
|
+
* Fix `Users#verify_password` method
|
18
|
+
|
19
|
+
* deprecations
|
20
|
+
* Remove `Orders#send_invoice` method
|
21
|
+
* Remove all product_settings methods
|
22
|
+
* Remove `ProductsView#search_by_query` method
|
23
|
+
* `Orders#update_order_note` receives parameter `order_note` instead of `body`
|
24
|
+
* `Products#adjust_stock_level` receives parameter `relative_amount` instead of `body`
|
25
|
+
* `Products#update_reserve_stock` receives parameter `stock_threshold` instead of `body`
|
26
|
+
|
27
|
+
* features
|
28
|
+
* Add customers methods
|
29
|
+
* `Customers#all`
|
30
|
+
* `Customers#create`
|
31
|
+
* `Customers#delete`
|
32
|
+
* `Customers#find`
|
33
|
+
* `Customers#update`
|
34
|
+
* Add `Orders#send_order_document` method
|
35
|
+
* Add products cross-sells methods
|
36
|
+
* `ProductCrossSells#create_cross_sell`
|
37
|
+
* `ProductCrossSells#cross_sell`
|
38
|
+
* `ProductCrossSells#cross_sells`
|
39
|
+
* `ProductCrossSells#delete_cross_sell`
|
40
|
+
* `ProductCrossSells#update_cross_sell`
|
41
|
+
* Add products videos methods
|
42
|
+
* `ProductVideos#add_video`
|
43
|
+
* `ProductVideos#delete_video`
|
44
|
+
* `ProductVideos#update_video`
|
45
|
+
* `ProductVideos#video`
|
46
|
+
* `ProductVideos#videos`
|
47
|
+
* Add `Products#sort_images` method
|
48
|
+
* Add variation images methods
|
49
|
+
* `VariationImages#add_image`
|
50
|
+
* `VariationImages#delete_image`
|
51
|
+
* `VariationImages#image`
|
52
|
+
* `VariationImages#images`
|
53
|
+
* `VariationImages#upload_image`
|
54
|
+
|
1
55
|
### v0.5.1.pre
|
2
56
|
|
3
57
|
* bug-fixes
|
4
|
-
* Fix `adjust_stock_level` method
|
58
|
+
* Fix `Products#adjust_stock_level` method
|
5
59
|
|
6
60
|
### v0.5.0.pre
|
7
61
|
|
@@ -16,8 +70,8 @@
|
|
16
70
|
### v0.4.0.pre
|
17
71
|
|
18
72
|
* bug-fixes
|
19
|
-
* Fix
|
20
|
-
* Fix
|
73
|
+
* Fix `ProductAttributeDefinitions#create` method
|
74
|
+
* Fix `ProductAttributeDefinitions#delete` method
|
21
75
|
* Fix product custom attribute module name
|
22
76
|
* Include `BeyondApi::ProductCustomAttributes` module into `BeyondApi::Products` class
|
23
77
|
* Include `BeyondApi::ProductImages` module into `BeyondApi::Products` class
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
beyond_api (0.
|
4
|
+
beyond_api (0.6.0.pre)
|
5
5
|
faraday (~> 0.15)
|
6
6
|
|
7
7
|
GEM
|
@@ -13,7 +13,7 @@ GEM
|
|
13
13
|
dotenv (2.7.5)
|
14
14
|
faker (2.4.0)
|
15
15
|
i18n (~> 1.6.0)
|
16
|
-
faraday (0.17.
|
16
|
+
faraday (0.17.3)
|
17
17
|
multipart-post (>= 1.2, < 3)
|
18
18
|
i18n (1.6.0)
|
19
19
|
concurrent-ruby (~> 1.0)
|
@@ -52,4 +52,4 @@ DEPENDENCIES
|
|
52
52
|
yard (~> 0.9)
|
53
53
|
|
54
54
|
BUNDLED WITH
|
55
|
-
2.0.
|
55
|
+
2.1.0.pre.3
|
@@ -43,8 +43,8 @@ module BeyondApi
|
|
43
43
|
# @example
|
44
44
|
# @cart = session.carts.create
|
45
45
|
#
|
46
|
-
def create
|
47
|
-
response, status = BeyondApi::Request.post(@session, "/carts"
|
46
|
+
def create
|
47
|
+
response, status = BeyondApi::Request.post(@session, "/carts")
|
48
48
|
|
49
49
|
handle_response(response, status)
|
50
50
|
end
|
@@ -202,7 +202,7 @@ module BeyondApi
|
|
202
202
|
# @return true
|
203
203
|
#
|
204
204
|
# @example
|
205
|
-
# session.carts.
|
205
|
+
# session.carts.delete_shipping_address("2fa7dc36-8305-4628-b961-f2c3f7dda47d")
|
206
206
|
#
|
207
207
|
def delete_shipping_address(cart_id)
|
208
208
|
response, status = BeyondApi::Request.delete(@session, "/carts/#{cart_id}/shipping-address")
|
@@ -290,6 +290,7 @@ module BeyondApi
|
|
290
290
|
# "_ref" => "f084553c-ea77-4745-b1bd-71c64c8419fd",
|
291
291
|
# "quantity" => 2
|
292
292
|
# }
|
293
|
+
#
|
293
294
|
# @cart = session.carts.replace_line_item("f73629e5-fecf-4474-9b04-6b2fcd4663c4", "2c9c0f38-0b9e-4fa7-bcbe-960098ff63aa", body)
|
294
295
|
#
|
295
296
|
def replace_line_item(cart_id, line_item_id, body)
|
@@ -311,8 +312,13 @@ module BeyondApi
|
|
311
312
|
# @return [OpenStruct]
|
312
313
|
#
|
313
314
|
# @example
|
314
|
-
# body = [{
|
315
|
-
#
|
315
|
+
# body = [ {
|
316
|
+
# "_type" => "PRODUCT",
|
317
|
+
# "_ref" => "0612362d-9856-4b40-94c6-a36abec0cf8c",
|
318
|
+
# "quantity" => 1
|
319
|
+
# } ]
|
320
|
+
#
|
321
|
+
# @cart = session.carts.replace_line_items("c1436110-e283-49b3-a748-0321efec6d35", body)
|
316
322
|
#
|
317
323
|
def replace_line_items(cart_id, body)
|
318
324
|
response, status = BeyondApi::Request.put(@session, "/carts/#{cart_id}/line-items", body)
|
@@ -361,6 +367,7 @@ module BeyondApi
|
|
361
367
|
# "taxNumber" => "123-34-6789",
|
362
368
|
# "birthDate" => "1985-03-20"
|
363
369
|
# }
|
370
|
+
#
|
364
371
|
# @cart = session.carts.set_billing_address("01da6aa7-8aa2-4383-a496-6611a14afbc9", body)
|
365
372
|
#
|
366
373
|
def set_billing_address(cart_id, body)
|
@@ -453,6 +460,7 @@ module BeyondApi
|
|
453
460
|
# "taxNumber" => "123-34-6789",
|
454
461
|
# "birthDate" => "1985-03-20"
|
455
462
|
# }
|
463
|
+
#
|
456
464
|
# @cart = session.carts.set_shipping_address("01da6aa7-8aa2-4383-a496-6611a14afbc9", body)
|
457
465
|
#
|
458
466
|
def set_shipping_address(cart_id, body)
|
@@ -489,7 +497,7 @@ module BeyondApi
|
|
489
497
|
# A +PUT+ request is used to set the shipping method to the current default shipping method.
|
490
498
|
# The default shipping method is the one with the highest priority of the applicable shipping methods.
|
491
499
|
#
|
492
|
-
# $ curl 'https://api-shop.beyondshop.cloud/api/carts/
|
500
|
+
# $ curl 'https://api-shop.beyondshop.cloud/api/carts/c31c5d06-4460-4f89-9e09-47f9956dea98/shipping-methods/default' -i -X PUT \
|
493
501
|
# -H 'Content-Type: application/json' \
|
494
502
|
# -H 'Accept: application/json'
|
495
503
|
#
|
@@ -498,11 +506,10 @@ module BeyondApi
|
|
498
506
|
# @return [OpenStruct]
|
499
507
|
#
|
500
508
|
# @example
|
501
|
-
# @cart = session.carts.set_shipping_method_to_default("
|
509
|
+
# @cart = session.carts.set_shipping_method_to_default("c31c5d06-4460-4f89-9e09-47f9956dea98")
|
502
510
|
#
|
503
511
|
def set_shipping_method_to_default(cart_id)
|
504
|
-
response, status = BeyondApi::Request.put(@session, "/carts/#{cart_id}/shipping-methods/
|
505
|
-
"#{session.api_url}/shipping-zones/#{shipping_zone_id}/shipping-methods/#{shipping_method_id}")
|
512
|
+
response, status = BeyondApi::Request.put(@session, "/carts/#{cart_id}/shipping-methods/default")
|
506
513
|
|
507
514
|
handle_response(response, status)
|
508
515
|
end
|
@@ -523,6 +530,7 @@ module BeyondApi
|
|
523
530
|
#
|
524
531
|
def shipping_method(cart_id)
|
525
532
|
response, status = BeyondApi::Request.get(@session, "/carts/#{cart_id}")
|
533
|
+
|
526
534
|
handle_response(response, status)
|
527
535
|
end
|
528
536
|
|
@@ -541,6 +549,7 @@ module BeyondApi
|
|
541
549
|
#
|
542
550
|
def shipping_methods(cart_id)
|
543
551
|
response, status = BeyondApi::Request.get(@session, "/carts/#{cart_id}")
|
552
|
+
|
544
553
|
handle_response(response, status)
|
545
554
|
end
|
546
555
|
end
|
@@ -96,7 +96,7 @@ module BeyondApi
|
|
96
96
|
# @return [OpenStruct]
|
97
97
|
#
|
98
98
|
# @example
|
99
|
-
# @category = session.categories.find(
|
99
|
+
# @category = session.categories.find("27a94b71-9b17-4f06-9596-fbbf4d18021f")
|
100
100
|
#
|
101
101
|
def find(category_id)
|
102
102
|
response, status = BeyondApi::Request.get(@session, "/categories/#{category_id}")
|
@@ -135,7 +135,7 @@ module BeyondApi
|
|
135
135
|
end
|
136
136
|
|
137
137
|
#
|
138
|
-
# A PUT request is issued to update all category properties with application/json content type.
|
138
|
+
# A +PUT+ request is issued to update all category properties with application/json content type.
|
139
139
|
#
|
140
140
|
# $ curl 'https://api-shop.beyondshop.cloud/api/categories/cb2058dc-871a-4e64-83ac-39a0be9e6f82' -i -X PUT \
|
141
141
|
# -H 'Content-Type: application/json' \
|
@@ -126,12 +126,23 @@ module BeyondApi
|
|
126
126
|
# }
|
127
127
|
# }'
|
128
128
|
#
|
129
|
-
# @param
|
129
|
+
# @param body [Hash] the request body
|
130
|
+
# @option params [Integer] :size the page size
|
131
|
+
# @option params [Integer] :page the page number
|
130
132
|
#
|
131
133
|
# @return [OpenStruct]
|
132
134
|
#
|
133
135
|
# @example
|
134
|
-
#
|
136
|
+
# body = {
|
137
|
+
# "tags" => [ "books" ],
|
138
|
+
# "manufacturer" => "The Standard Manufacturer",
|
139
|
+
# "sales_price" => {
|
140
|
+
# "amount" => 10.0,
|
141
|
+
# "currency" => "EUR"
|
142
|
+
# }
|
143
|
+
# }
|
144
|
+
#
|
145
|
+
# @categories = session.categories_view.search_by_product(body, { size: 100, page: 0 })
|
135
146
|
#
|
136
147
|
def search_by_product(body, params = {})
|
137
148
|
response, status = BeyondApi::Request.post(@session, "/product-view/categories/search/find-by-product", body, params)
|
@@ -32,13 +32,28 @@ module BeyondApi
|
|
32
32
|
# -H 'Content-Type: application/json' \
|
33
33
|
# -H 'Accept: application/hal+json' \
|
34
34
|
# -H 'Authorization: Bearer <Access token>' \
|
35
|
-
# -d '
|
35
|
+
# -d '{
|
36
36
|
# "minimumOrderValue" : {
|
37
37
|
# "currency" : "EUR",
|
38
38
|
# "amount" : 50
|
39
39
|
# },
|
40
40
|
# "mustAcceptTermsAndConditions" : true
|
41
41
|
# }'
|
42
|
+
#
|
43
|
+
# @beyond_api.scopes +cset:u+
|
44
|
+
#
|
45
|
+
# @return [OpenStruct]
|
46
|
+
#
|
47
|
+
# @example
|
48
|
+
# body = {
|
49
|
+
# "minimum_order_value" => {
|
50
|
+
# "currency" => "EUR",
|
51
|
+
# "amount" => 50
|
52
|
+
# },
|
53
|
+
# "must_accept_terms_and_conditions" => true
|
54
|
+
# }
|
55
|
+
# @checkout_settiongs = session.checkout_settings.update(body)
|
56
|
+
#
|
42
57
|
def update(body)
|
43
58
|
response, status = BeyondApi::Request.put(@session, "/checkout-settings", body)
|
44
59
|
|
@@ -0,0 +1,333 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "beyond_api/utils"
|
4
|
+
|
5
|
+
module BeyondApi
|
6
|
+
class Customers < Base
|
7
|
+
include BeyondApi::Utils
|
8
|
+
|
9
|
+
#
|
10
|
+
# A +GET+ request is used to list all customers of the shop in a paged way. Each item in the response represents a summary of the customer data.
|
11
|
+
#
|
12
|
+
# $ curl 'https://api-shop.beyondshop.cloud/api/customers' -i -X GET \
|
13
|
+
# -H 'Authorization: Bearer <Access token>'
|
14
|
+
#
|
15
|
+
# @beyond_api.scopes +cust:r+
|
16
|
+
#
|
17
|
+
# @option params [Integer] :size the page size
|
18
|
+
# @option params [Integer] :page the page number
|
19
|
+
#
|
20
|
+
# @return [OpenStruct]
|
21
|
+
#
|
22
|
+
# @example
|
23
|
+
# @customers = session.customers.all(size: 20, page: 0)
|
24
|
+
#
|
25
|
+
def all(params = {})
|
26
|
+
response, status = BeyondApi::Request.get(@session, "/customers", params)
|
27
|
+
|
28
|
+
handle_response(response, status)
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# A +POST+ request is used to create a customer.
|
33
|
+
#
|
34
|
+
# $ curl 'https://api-shop.beyondshop.cloud/api/customers' -i -X POST \
|
35
|
+
# -H 'Content-Type: application/json' \
|
36
|
+
# -H 'Accept: application/hal+json' \
|
37
|
+
# -H 'Authorization: Bearer <Access token>' \
|
38
|
+
# -d '{
|
39
|
+
# "defaultPaymentMethodId" : "69923864-74a7-4ea9-92c7-0d17181b39f4",
|
40
|
+
# "defaultShippingMethodId" : "a5976ec2-d99a-4d16-bd2b-1fa5c48d68aa",
|
41
|
+
# "shippingAddress" : {
|
42
|
+
# "salutation" : "Mrs",
|
43
|
+
# "gender" : "FEMALE",
|
44
|
+
# "company" : "Astrid Alster GmbH",
|
45
|
+
# "title" : "",
|
46
|
+
# "firstName" : "Astrid",
|
47
|
+
# "middleName" : "Agnes",
|
48
|
+
# "lastName" : "Alster",
|
49
|
+
# "street" : "Alsterwasserweg",
|
50
|
+
# "houseNumber" : "2",
|
51
|
+
# "street2" : "Erdgeschoss",
|
52
|
+
# "addressExtension" : "Hinterhof",
|
53
|
+
# "postalCode" : "20999",
|
54
|
+
# "dependentLocality" : "Seevetal",
|
55
|
+
# "city" : "Alsterwasser",
|
56
|
+
# "country" : "DE",
|
57
|
+
# "state" : "Hamburg",
|
58
|
+
# "email" : "a.alsterh@example.com",
|
59
|
+
# "phone" : "(800) 555-0102",
|
60
|
+
# "mobile" : "(800) 555-0103",
|
61
|
+
# "doorCode" : "456",
|
62
|
+
# "_id" : null
|
63
|
+
# },
|
64
|
+
# "email" : "a.alsterh@example.com",
|
65
|
+
# "initialPassword" : "MyVeryStrongPassword",
|
66
|
+
# "billingAddress" : {
|
67
|
+
# "salutation" : "Mrs",
|
68
|
+
# "gender" : "FEMALE",
|
69
|
+
# "company" : "Astrid Alster GmbH",
|
70
|
+
# "title" : "",
|
71
|
+
# "firstName" : "Astrid",
|
72
|
+
# "middleName" : "Agnes",
|
73
|
+
# "lastName" : "Alster",
|
74
|
+
# "street" : "Alsterwasserweg",
|
75
|
+
# "houseNumber" : "2",
|
76
|
+
# "street2" : "Erdgeschoss",
|
77
|
+
# "addressExtension" : "Hinterhof",
|
78
|
+
# "postalCode" : "20999",
|
79
|
+
# "dependentLocality" : "Seevetal",
|
80
|
+
# "city" : "Alsterwasser",
|
81
|
+
# "country" : "DE",
|
82
|
+
# "state" : "Hamburg",
|
83
|
+
# "email" : "a.alsterh@example.com",
|
84
|
+
# "phone" : "(800) 555-0102",
|
85
|
+
# "mobile" : "(800) 555-0103",
|
86
|
+
# "vatId" : "DE123456789",
|
87
|
+
# "taxNumber" : "HRE 987654/32123/864516",
|
88
|
+
# "birthDate" : "1985-05-11",
|
89
|
+
# "_id" : "b61ca0e0-411f-485e-83f3-035d717095da"
|
90
|
+
# }
|
91
|
+
# }'
|
92
|
+
#
|
93
|
+
# @beyond_api.scopes +cust:c+
|
94
|
+
#
|
95
|
+
# @param body [Hash] the request body
|
96
|
+
#
|
97
|
+
# @return [OpenStruct]
|
98
|
+
#
|
99
|
+
# @example
|
100
|
+
# body = {
|
101
|
+
# "defaultPaymentMethodId" : "69923864-74a7-4ea9-92c7-0d17181b39f4",
|
102
|
+
# "defaultShippingMethodId" : "a5976ec2-d99a-4d16-bd2b-1fa5c48d68aa",
|
103
|
+
# "shippingAddress" : {
|
104
|
+
# "salutation" : "Mrs",
|
105
|
+
# "gender" : "FEMALE",
|
106
|
+
# "company" : "Astrid Alster GmbH",
|
107
|
+
# "title" : "",
|
108
|
+
# "firstName" : "Astrid",
|
109
|
+
# "middleName" : "Agnes",
|
110
|
+
# "lastName" : "Alster",
|
111
|
+
# "street" : "Alsterwasserweg",
|
112
|
+
# "houseNumber" : "2",
|
113
|
+
# "street2" : "Erdgeschoss",
|
114
|
+
# "addressExtension" : "Hinterhof",
|
115
|
+
# "postalCode" : "20999",
|
116
|
+
# "dependentLocality" : "Seevetal",
|
117
|
+
# "city" : "Alsterwasser",
|
118
|
+
# "country" : "DE",
|
119
|
+
# "state" : "Hamburg",
|
120
|
+
# "email" : "a.alsterh@example.com",
|
121
|
+
# "phone" : "(800) 555-0102",
|
122
|
+
# "mobile" : "(800) 555-0103",
|
123
|
+
# "doorCode" : "456",
|
124
|
+
# "_id" : null
|
125
|
+
# },
|
126
|
+
# "email" : "a.alsterh@example.com",
|
127
|
+
# "initialPassword" : "MyVeryStrongPassword",
|
128
|
+
# "billingAddress" : {
|
129
|
+
# "salutation" : "Mrs",
|
130
|
+
# "gender" : "FEMALE",
|
131
|
+
# "company" : "Astrid Alster GmbH",
|
132
|
+
# "title" : "",
|
133
|
+
# "firstName" : "Astrid",
|
134
|
+
# "middleName" : "Agnes",
|
135
|
+
# "lastName" : "Alster",
|
136
|
+
# "street" : "Alsterwasserweg",
|
137
|
+
# "houseNumber" : "2",
|
138
|
+
# "street2" : "Erdgeschoss",
|
139
|
+
# "addressExtension" : "Hinterhof",
|
140
|
+
# "postalCode" : "20999",
|
141
|
+
# "dependentLocality" : "Seevetal",
|
142
|
+
# "city" : "Alsterwasser",
|
143
|
+
# "country" : "DE",
|
144
|
+
# "state" : "Hamburg",
|
145
|
+
# "email" : "a.alsterh@example.com",
|
146
|
+
# "phone" : "(800) 555-0102",
|
147
|
+
# "mobile" : "(800) 555-0103",
|
148
|
+
# "vatId" : "DE123456789",
|
149
|
+
# "taxNumber" : "HRE 987654/32123/864516",
|
150
|
+
# "birthDate" : "1985-05-11",
|
151
|
+
# "_id" : "b61ca0e0-411f-485e-83f3-035d717095da"
|
152
|
+
# }
|
153
|
+
# }
|
154
|
+
#
|
155
|
+
# @customer = session.customers.create(body)
|
156
|
+
#
|
157
|
+
def create(body)
|
158
|
+
response, status = BeyondApi::Request.post(@session, "/customers", body)
|
159
|
+
|
160
|
+
handle_response(response, status)
|
161
|
+
end
|
162
|
+
|
163
|
+
#
|
164
|
+
# A +DELETE+ request is used to delete a customer.
|
165
|
+
#
|
166
|
+
# $ curl 'https://api-shop.beyondshop.cloud/api/customers/9e2a61d9-a1ac-4771-bd02-32bf50386392' -i -X DELETE \
|
167
|
+
# -H 'Authorization: Bearer <Access token>'
|
168
|
+
#
|
169
|
+
# @beyond_api.scopes +cust:d+
|
170
|
+
#
|
171
|
+
# @param customer_id [String] the customer UUID
|
172
|
+
#
|
173
|
+
# @return true
|
174
|
+
#
|
175
|
+
# @example
|
176
|
+
# session.customers.delete("9e2a61d9-a1ac-4771-bd02-32bf50386392")
|
177
|
+
#
|
178
|
+
def delete(customer_id)
|
179
|
+
response, status = BeyondApi::Request.delete(@session, "/customers/#{customer_id}")
|
180
|
+
|
181
|
+
handle_response(response, status, respond_with_true: true)
|
182
|
+
end
|
183
|
+
|
184
|
+
#
|
185
|
+
# A +GET+ request is used to retrieve the details of a customer.
|
186
|
+
#
|
187
|
+
# $ curl 'https://api-shop.beyondshop.cloud/api/customers/d6a8132e-29b3-4258-b8c0-aee34df42aa1' -i -X GET \
|
188
|
+
# -H 'Authorization: Bearer <Access token>'
|
189
|
+
#
|
190
|
+
# @beyond_api.scopes +cust:r+
|
191
|
+
#
|
192
|
+
# @param customer_id [String] the customer UUID
|
193
|
+
#
|
194
|
+
# @return [OpenStruct]
|
195
|
+
#
|
196
|
+
# @example
|
197
|
+
# @customer = session.customers.find("d6a8132e-29b3-4258-b8c0-aee34df42aa1")
|
198
|
+
#
|
199
|
+
def find(customer_id)
|
200
|
+
response, status = BeyondApi::Request.get(@session, "/customers/#{customer_id}")
|
201
|
+
|
202
|
+
handle_response(response, status)
|
203
|
+
end
|
204
|
+
|
205
|
+
#
|
206
|
+
# A +PUT+ request is used to update a customer.
|
207
|
+
#
|
208
|
+
# $ curl 'https://api-shop.beyondshop.cloud/api/customers/34c5566b-e82a-486d-9a7d-3c3aafef6901' -i -X PUT \
|
209
|
+
# -H 'Content-Type: application/json' \
|
210
|
+
# -H 'Accept: application/hal+json' \
|
211
|
+
# -H 'Authorization: Bearer <Access token>' \
|
212
|
+
# -d '{
|
213
|
+
# "defaultPaymentMethodId" : "d94790cd-ec27-4461-85a9-457fffcc0271",
|
214
|
+
# "defaultShippingMethodId" : "976e7d66-0eb2-4ca3-8b44-5e6d0aeb9e63",
|
215
|
+
# "shippingAddress" : {
|
216
|
+
# "salutation" : "Mrs",
|
217
|
+
# "gender" : "FEMALE",
|
218
|
+
# "company" : "Astrid Alster GmbH",
|
219
|
+
# "title" : "",
|
220
|
+
# "firstName" : "Astrid",
|
221
|
+
# "middleName" : "Agnes",
|
222
|
+
# "lastName" : "Alster",
|
223
|
+
# "street" : "Alsterwasserweg",
|
224
|
+
# "houseNumber" : "2",
|
225
|
+
# "street2" : "Erdgeschoss",
|
226
|
+
# "addressExtension" : "Hinterhof",
|
227
|
+
# "postalCode" : "20999",
|
228
|
+
# "dependentLocality" : "Seevetal",
|
229
|
+
# "city" : "Alsterwasser",
|
230
|
+
# "country" : "DE",
|
231
|
+
# "state" : "Hamburg",
|
232
|
+
# "email" : "a.alsterh@example.com",
|
233
|
+
# "phone" : "(800) 555-0102",
|
234
|
+
# "mobile" : "(800) 555-0103",
|
235
|
+
# "doorCode" : "456",
|
236
|
+
# "_id" : "112d46ff-fc72-4be8-9e48-588b4f5c7829"
|
237
|
+
# },
|
238
|
+
# "billingAddress" : {
|
239
|
+
# "salutation" : "Mrs",
|
240
|
+
# "gender" : "FEMALE",
|
241
|
+
# "company" : "Astrid Alster GmbH",
|
242
|
+
# "title" : "",
|
243
|
+
# "firstName" : "Astrid",
|
244
|
+
# "middleName" : "Agnes",
|
245
|
+
# "lastName" : "Alster",
|
246
|
+
# "street" : "Alsterwasserweg",
|
247
|
+
# "houseNumber" : "2",
|
248
|
+
# "street2" : "Erdgeschoss",
|
249
|
+
# "addressExtension" : "Hinterhof",
|
250
|
+
# "postalCode" : "20999",
|
251
|
+
# "dependentLocality" : "Seevetal",
|
252
|
+
# "city" : "Alsterwasser",
|
253
|
+
# "country" : "DE",
|
254
|
+
# "state" : "Hamburg",
|
255
|
+
# "email" : "a.alsterh@example.com",
|
256
|
+
# "phone" : "(800) 555-0102",
|
257
|
+
# "mobile" : "(800) 555-0103",
|
258
|
+
# "vatId" : "DE123456789",
|
259
|
+
# "taxNumber" : "HRE 987654/32123/864516",
|
260
|
+
# "birthDate" : "1985-05-11",
|
261
|
+
# "_id" : "85de80fc-8467-46ca-b20c-55f5d4d1eaec"
|
262
|
+
# }
|
263
|
+
# }'
|
264
|
+
#
|
265
|
+
# @beyond_api.scopes +cust:u+
|
266
|
+
#
|
267
|
+
# @param customer_id [String] the customer UUID
|
268
|
+
# @param body [Hash] the request body
|
269
|
+
#
|
270
|
+
# @return [OpenStruct]
|
271
|
+
#
|
272
|
+
# @example
|
273
|
+
# body = {
|
274
|
+
# "defaultPaymentMethodId" : "d94790cd-ec27-4461-85a9-457fffcc0271",
|
275
|
+
# "defaultShippingMethodId" : "976e7d66-0eb2-4ca3-8b44-5e6d0aeb9e63",
|
276
|
+
# "shippingAddress" : {
|
277
|
+
# "salutation" : "Mrs",
|
278
|
+
# "gender" : "FEMALE",
|
279
|
+
# "company" : "Astrid Alster GmbH",
|
280
|
+
# "title" : "",
|
281
|
+
# "firstName" : "Astrid",
|
282
|
+
# "middleName" : "Agnes",
|
283
|
+
# "lastName" : "Alster",
|
284
|
+
# "street" : "Alsterwasserweg",
|
285
|
+
# "houseNumber" : "2",
|
286
|
+
# "street2" : "Erdgeschoss",
|
287
|
+
# "addressExtension" : "Hinterhof",
|
288
|
+
# "postalCode" : "20999",
|
289
|
+
# "dependentLocality" : "Seevetal",
|
290
|
+
# "city" : "Alsterwasser",
|
291
|
+
# "country" : "DE",
|
292
|
+
# "state" : "Hamburg",
|
293
|
+
# "email" : "a.alsterh@example.com",
|
294
|
+
# "phone" : "(800) 555-0102",
|
295
|
+
# "mobile" : "(800) 555-0103",
|
296
|
+
# "doorCode" : "456",
|
297
|
+
# "_id" : "112d46ff-fc72-4be8-9e48-588b4f5c7829"
|
298
|
+
# },
|
299
|
+
# "billingAddress" : {
|
300
|
+
# "salutation" : "Mrs",
|
301
|
+
# "gender" : "FEMALE",
|
302
|
+
# "company" : "Astrid Alster GmbH",
|
303
|
+
# "title" : "",
|
304
|
+
# "firstName" : "Astrid",
|
305
|
+
# "middleName" : "Agnes",
|
306
|
+
# "lastName" : "Alster",
|
307
|
+
# "street" : "Alsterwasserweg",
|
308
|
+
# "houseNumber" : "2",
|
309
|
+
# "street2" : "Erdgeschoss",
|
310
|
+
# "addressExtension" : "Hinterhof",
|
311
|
+
# "postalCode" : "20999",
|
312
|
+
# "dependentLocality" : "Seevetal",
|
313
|
+
# "city" : "Alsterwasser",
|
314
|
+
# "country" : "DE",
|
315
|
+
# "state" : "Hamburg",
|
316
|
+
# "email" : "a.alsterh@example.com",
|
317
|
+
# "phone" : "(800) 555-0102",
|
318
|
+
# "mobile" : "(800) 555-0103",
|
319
|
+
# "vatId" : "DE123456789",
|
320
|
+
# "taxNumber" : "HRE 987654/32123/864516",
|
321
|
+
# "birthDate" : "1985-05-11",
|
322
|
+
# "_id" : "85de80fc-8467-46ca-b20c-55f5d4d1eaec"
|
323
|
+
# }
|
324
|
+
# }
|
325
|
+
# @customer = session.customers.update("34c5566b-e82a-486d-9a7d-3c3aafef6901", body)
|
326
|
+
#
|
327
|
+
def update(customer_id, body)
|
328
|
+
response, status = BeyondApi::Request.put(@session, "/customers/#{customer_id}", body)
|
329
|
+
|
330
|
+
handle_response(response, status)
|
331
|
+
end
|
332
|
+
end
|
333
|
+
end
|