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,145 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "beyond_api/utils"
4
+
5
+ module BeyondApi
6
+ class Variations < Base
7
+ include BeyondApi::Utils
8
+
9
+ #
10
+ # A +GET+ request is used to retrieve the variations of a product.
11
+ #
12
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/dc1b5caf-51ea-4fcd-b1ba-0c5128e91d17/variations' -i -X GET \
13
+ # -H 'Content-Type: application/json' \
14
+ # -H 'Authorization: Bearer <Access token>'
15
+ #
16
+ # @beyond_api.scopes +prod:r+
17
+ #
18
+ # @option params [Integer] :size the page size
19
+ # @option params [Integer] :page the page number
20
+ #
21
+ # @return [OpenStruct]
22
+ #
23
+ # @example
24
+ # @products = session.variations.all(size: 100, page: 0)
25
+ #
26
+ def all(product_id, params = {})
27
+ response, status = BeyondApi::Request.get(@session, "/products/#{product_id}/variations", params)
28
+
29
+ handle_response(response, status)
30
+ end
31
+
32
+ #
33
+ # A +GET+ request is used to retrieve the variation of a product.
34
+ #
35
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/5f6e426e-c8d9-48ba-9b37-9a8eb6381373/variations/f6e5bb16-af2e-440f-acd3-a883ad3c1922' -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 +prod:r+
41
+ #
42
+ # @param product_id [String] the product UUID
43
+ # @param variation_id [String] the variation UUID
44
+ #
45
+ # @return [OpenStruct]
46
+ #
47
+ # @example
48
+ # @product = session.variations.find("f461fb56-1984-4ade-bd4e-007c273cc923", "f6e5bb16-af2e-440f-acd3-a883ad3c1922")
49
+ #
50
+ def find(product_id, variation_id)
51
+ response, status = BeyondApi::Request.get(@session, "/products/#{product_id}/variations/#{variation_id}")
52
+
53
+ handle_response(response, status)
54
+ end
55
+
56
+ #
57
+ # A +PATCH+ request is used to update a variation partially with json content type.
58
+ #
59
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/7cf4b5b1-b141-4869-96d1-4eaee8bf7563/variations/9f93fdd0-2d21-4ea9-b9d7-e9a53edb091b' -i -X PATCH \
60
+ # -H 'Content-Type: application/json' \
61
+ # -H 'Accept: application/hal+json' \
62
+ # -H 'Authorization: Bearer <Access token>' \
63
+ # -d '{
64
+ # "salesPrice" : {
65
+ # "taxModel" : "NET",
66
+ # "amount" : 8.7,
67
+ # "currency" : "EUR"
68
+ # },
69
+ # "listPrice" : {
70
+ # "taxModel" : "NET",
71
+ # "amount" : 10.95,
72
+ # "currency" : "EUR"
73
+ # },
74
+ # "manufacturerPrice" : {
75
+ # "taxModel" : "NET",
76
+ # "amount" : 99.95,
77
+ # "currency" : "EUR"
78
+ # },
79
+ # "refPrice" : {
80
+ # "refQuantity" : 1,
81
+ # "unit" : "LITER",
82
+ # "quantity" : 0.75,
83
+ # "price" : {
84
+ # "taxModel" : "NET",
85
+ # "amount" : 11.6,
86
+ # "currency" : "EUR"
87
+ # }
88
+ # },
89
+ # "sku" : "my-new-sku",
90
+ # "productIdentifiers" : [ {
91
+ # "type" : "EAN",
92
+ # "value" : "9780134308135"
93
+ # } ]
94
+ # }'
95
+ #
96
+ # @beyond_api.scopes +prod:u+
97
+ #
98
+ # @param product_id [String] the product UUID
99
+ # @param variation_id [String] the variation UUID
100
+ # @param body [Hash] the request body
101
+ #
102
+ # @return [OpenStruct]
103
+ #
104
+ # @example
105
+ # body = {
106
+ # "salesPrice": {
107
+ # "taxModel": "NET",
108
+ # "amount": 8.7,
109
+ # "currency": "EUR"
110
+ # },
111
+ # "listPrice": {
112
+ # "taxModel": "NET",
113
+ # "amount": 10.95,
114
+ # "currency": "EUR"
115
+ # },
116
+ # "manufacturerPrice": {
117
+ # "taxModel": "NET",
118
+ # "amount": 99.95,
119
+ # "currency": "EUR"
120
+ # },
121
+ # "refPrice": {
122
+ # "refQuantity": 1,
123
+ # "unit": "LITER",
124
+ # "quantity": 0.75,
125
+ # "price": {
126
+ # "taxModel": "NET",
127
+ # "amount": 11.6,
128
+ # "currency": "EUR"
129
+ # }
130
+ # },
131
+ # "sku": "my-new-sku",
132
+ # "productIdentifiers": [{
133
+ # "type": "EAN",
134
+ # "value": "9780134308135"
135
+ # }]
136
+ # }
137
+ # @product = session.variations.update("f461fb56-1984-4ade-bd4e-007c273cc923", "f6e5bb16-af2e-440f-acd3-a883ad3c1922", body)
138
+ #
139
+ def update(product_id, variation_id, body)
140
+ response, status = BeyondApi::Request.patch(@session, "/products/#{product_id}/variations/#{variation_id}", body)
141
+
142
+ handle_response(response, status)
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,105 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "beyond_api/utils"
4
+
5
+ module BeyondApi
6
+ module VariationAvailability
7
+
8
+ #
9
+ # A +POST+ request is used to adjust the available stock of a variation.
10
+ #
11
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/9171c3ed-0b53-43ef-8fed-c081f55560f4/variations/a6d8275f-66cd-4cd7-8623-2d005f1ab7fc/availability/adjust-available-stock' -i -X POST \
12
+ # -H 'Content-Type: application/json' \
13
+ # -H 'Accept: application/hal+json' \
14
+ # -H 'Authorization: Bearer <Access token>' \
15
+ # -d '{ "relativeAmount" : -1 }'
16
+ #
17
+ # @beyond_api.scopes +prda:u+
18
+ #
19
+ # @param product_id [String] the product UUID
20
+ # @param variation_id [String] the product variation UUID
21
+ # @param body [Hash] the request body
22
+ #
23
+ # @return [OpenStruct]
24
+ #
25
+ # @example
26
+ # @availability = session.variations.adjust_stock_level(product_id, variation_id, { relativeAmount => -1 })
27
+ #
28
+ def adjust_stock_level(product_id, variation_id, body)
29
+ response, status = BeyondApi::Request.post(@session, "/products/#{product_id}/variations/#{variation_id}/availability/enable-stock-management", body)
30
+
31
+ handle_response(response, status)
32
+ end
33
+
34
+ #
35
+ # A +GET+ request is used to retrieve the availability of a variation.
36
+ #
37
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/7fdc9424-1ddd-4fba-a59d-3d5de08d89d1/variations/13b28149-975a-4f47-ad54-bdc4ca4a07ec/availability' -i -X GET \
38
+ # -H 'Content-Type: application/json' \
39
+ # -H 'Accept: application/hal+json' \
40
+ # -H 'Authorization: Bearer <Access token>'
41
+ #
42
+ # @beyond_api.scopes +prda:r+
43
+ #
44
+ # @param product_id [String] the product UUID
45
+ # @param variation_id [String] the product variation UUID
46
+ #
47
+ # @return [OpenStruct]
48
+ #
49
+ # @example
50
+ # @availability = session.variations.availability("fb22d408-00dc-47e3-ae58-e35769bdb428", "13b28149-975a-4f47-ad54-bdc4ca4a07ec")
51
+ #
52
+ def availability(product_id, variation_id)
53
+ response, status = BeyondApi::Request.get(@session, "/products/#{product_id}/variations/#{variation_id}/availability")
54
+
55
+ handle_response(response, status)
56
+ end
57
+
58
+ #
59
+ # A +POST+ request is used to enable purchasability for a variation.
60
+ #
61
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/131400c9-54f1-4510-a0c4-2c7e34c57336/variations/cec06f66-5a80-4638-a74c-c916e1173c21/availability/enable-purchasability' -i -X POST \
62
+ # -H 'Content-Type: application/json' \
63
+ # -H 'Accept: application/hal+json' \
64
+ # -H 'Authorization: Bearer <Access token>'
65
+ #
66
+ # @beyond_api.scopes +prda:u+
67
+ #
68
+ # @param product_id [String] the product UUID
69
+ # @param variation_id [String] the product variation UUID
70
+ #
71
+ # @return [OpenStruct]
72
+ #
73
+ # @example
74
+ # @availability = session.variations.enable_purchaability("1e3a92b-6f3b-4415-bd8f-c9c8921a5a73", "13b28149-975a-4f47-ad54-bdc4ca4a07ec")
75
+ #
76
+ def enable_purchasability(product_id, variation_id)
77
+ response, status = BeyondApi::Request.post(@session, "/products/#{product_id}/variations/#{variation_id}/availability/enable-purchasability")
78
+
79
+ handle_response(response, status)
80
+ end
81
+
82
+ #
83
+ # A +POST+ request is used to disable purchasability for a variation.
84
+ #
85
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/f3b9d880-b73e-45a4-b04c-e03acae4fcdd/variations/40337e9c-a187-4bb6-9a0d-c8d66386cb8d/availability/disable-purchasability' -i -X POST \
86
+ # -H 'Content-Type: application/json' \
87
+ # -H 'Accept: application/hal+json' \
88
+ # -H 'Authorization: Bearer <Access token>'
89
+ #
90
+ # @beyond_api.scopes +prda:u+
91
+ #
92
+ # @param product_id [String] the product UUID
93
+ #
94
+ # @return true
95
+ #
96
+ # @example
97
+ # @availability = session.variations.disable_purchasability("17e3a92b-6f3b-4415-bd8f-c9c8921a5a73", "13b28149-975a-4f47-ad54-bdc4ca4a07ec")
98
+ #
99
+ def disable_purchasability(product_id, variation_id)
100
+ response, status = BeyondApi::Request.post(@session, "/products/#{product_id}/variations/#{variation_id}/availability/disable-purchasability")
101
+
102
+ handle_response(response, status)
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,176 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "beyond_api/utils"
4
+
5
+ module BeyondApi
6
+ class WebhookSubscriptions < Base # :category: Resources
7
+ include BeyondApi::Utils
8
+
9
+ #
10
+ # A +POST+ request is used to activate a webhook subscription.
11
+ #
12
+ # $ curl 'https://api-shop.beyondshop.cloud/api/webhook-subscriptions/268a8629-55cd-4890-9013-936b9b5ea14c/activate' -i -X POST \
13
+ # -H 'Authorization: Bearer <Access token>'
14
+ #
15
+ # @beyond_api.scopes +ordr:r+, +prod:r+
16
+ #
17
+ # @param webhook_subscription_id [String] the webhook subscription UUID
18
+ #
19
+ # @return true
20
+ #
21
+ # @example Ruby example request
22
+ # session.webhook_subscriptions.activate("268a8629-55cd-4890-9013-936b9b5ea14c")
23
+ #
24
+ def activate(webhook_subscription_id)
25
+ response, status = BeyondApi::Request.post(@session, "/webhook-subscriptions/#{webhook_subscription_id}/activate")
26
+
27
+ handle_response(response, status, respond_with_true: true)
28
+ end
29
+
30
+ #
31
+ # A +GET+ request is used to list all of the webhook subscriptions in a paged way.
32
+ #
33
+ # $ curl 'https://api-shop.beyondshop.cloud/api/webhook-subscriptions' -i -X GET \
34
+ # -H 'Accept: application/hal+json' \
35
+ # -H 'Authorization: Bearer <Access token>'
36
+ #
37
+ # @option params [Integer] :size the page size
38
+ # @option params [Integer] :page the page number
39
+ #
40
+ # @return [OpenStruct]
41
+ #
42
+ # @example
43
+ # @webhook_subscriptions = session.webhook_subscriptions.all(size: 100, page: 0)
44
+ #
45
+ def all(params = {})
46
+ response, status = BeyondApi::Request.get(@session, "/webhook-subscriptions", params)
47
+
48
+ handle_response(response, status)
49
+ end
50
+
51
+ #
52
+ # A +POST+ request is used to create a webhook subscription.
53
+ #
54
+ # The scopes needed for the operation depend on the event types you register for. e.g. Order events require the scope +orde:r+.
55
+ #
56
+ # $ curl 'https://api-shop.beyondshop.cloud/api/webhook-subscriptions' -i -X POST \
57
+ # -H 'Content-Type: application/json' \
58
+ # -H 'Accept: application/hal+json' \
59
+ # -H 'Authorization: Bearer <Access token>' \
60
+ # -d '{
61
+ # "callbackUri":"http://example.com/test",
62
+ # "eventTypes": ["order.created", "product.created"]
63
+ # }'
64
+ #
65
+ # @param body [Hash] the request body
66
+ #
67
+ # @return [OpenStruct]
68
+ #
69
+ # @example
70
+ # body = {
71
+ # "callback_uri" => "http://example.com/test",
72
+ # "event_types" => ["order.created", "product.created"]
73
+ # }
74
+ #
75
+ # @webhook_subscription = session.webhook_subscriptions.create(body)
76
+ #
77
+ def create(body)
78
+ response, status = BeyondApi::Request.post(@session, "/webhook-subscriptions", body)
79
+
80
+ handle_response(response, status)
81
+ end
82
+
83
+ #
84
+ # A +POST+ request is used to deactivate a webhook subscription.
85
+ #
86
+ # $ curl 'https://api-shop.beyondshop.cloud/api/webhook-subscriptions/a597cea4-b688-4164-8c56-b6568ea4d5aa/deactivate' -i -X POST \
87
+ # -H 'Authorization: Bearer <Access token>'
88
+ #
89
+ # @param webhook_subscription_id [String] the webhook subscription UUID
90
+ #
91
+ # @return true
92
+ #
93
+ # @example
94
+ # session.webhook_subscriptions.deactivate("a597cea4-b688-4164-8c56-b6568ea4d5aa")
95
+ #
96
+ def deactivate(webhook_subscription_id)
97
+ response, status = BeyondApi::Request.post(@session, "/webhook-subscriptions/#{webhook_subscription_id}/deactivate")
98
+
99
+ handle_response(response, status, respond_with_true: true)
100
+ end
101
+
102
+ #
103
+ # A +DELETE+ request is used to delete a webhook subscription.
104
+ #
105
+ # $ curl 'https://api-shop.beyondshop.cloud/api/webhook-subscriptions/c6076a5a-a8ad-443f-b20b-8a1b268b069e' -i -X DELETE \
106
+ # -H 'Authorization: Bearer <Access token>'
107
+ #
108
+ # @param webhook_subscription_id [String] the webhook subscription UUID
109
+ #
110
+ # @return true
111
+ #
112
+ # @example
113
+ # webhook_subscriptions = session.webhook_subscriptions.delete("c6076a5a-a8ad-443f-b20b-8a1b268b069e")
114
+ #
115
+ def delete(webhook_subscription_id)
116
+ response, status = BeyondApi::Request.delete(@session, "/webhook-subscriptions/#{webhook_subscription_id}")
117
+
118
+ handle_response(response, status, respond_with_true: true)
119
+ end
120
+
121
+ #
122
+ # A +GET+ request is used to retrieve the details of a webook subscription.
123
+ #
124
+ # $ curl 'https://api-shop.beyondshop.cloud/api/webhook-subscriptions/3d44ec71-768c-4927-9069-a96a5153e87c' -i -X GET \
125
+ # -H 'Accept: application/hal+json' \
126
+ # -H 'Authorization: Bearer <Access token>'
127
+ #
128
+ # @param webhook_subscription_id [String] the webhook subscription UUID
129
+ #
130
+ # @return [OpenStruct]
131
+ #
132
+ # @example
133
+ # @webhook_subscription = session.webhook_subscriptions.find("3d44ec71-768c-4927-9069-a96a5153e87c")
134
+ #
135
+ def find(webhook_subscription_id)
136
+ response, status = BeyondApi::Request.get(@session, "/webhook-subscriptions/#{webhook_subscription_id}")
137
+
138
+ handle_response(response, status)
139
+ end
140
+
141
+ #
142
+ # A +PUT+ request is used to update a subscription.
143
+ #
144
+ # The scopes needed for the operation depend on the event types you register for. e.g. Order events require the scope +orde:r+.
145
+ #
146
+ # $ curl 'https://api-shop.beyondshop.cloud/api/webhook-subscriptions/6f3bc033-c2d1-4f44-80e3-1b668f6bd699' -i -X PUT \
147
+ # -H 'Content-Type: application/json' \
148
+ # -H 'Accept: application/hal+json' \
149
+ # -H 'Authorization: Bearer <Access token>' \
150
+ # -d '{
151
+ # "callbackUri":"http://example.com/test/updated",
152
+ # "eventTypes": ["product.updated"]
153
+ # }'
154
+ #
155
+ # @beyond_api.scopes +ordr:r+, +prod:r+
156
+ #
157
+ # @param webhook_subscription_id [String] the webhook subscription UUID
158
+ # @param body [Hash] the request body
159
+ #
160
+ # @return [OpenStruct]
161
+ #
162
+ # @example
163
+ # body = {
164
+ # "callback_uri" => "http://example.com/test/updated",
165
+ # "event_types" => ["product.updated"]
166
+ # }
167
+ #
168
+ # @webhook_subscription = session.webhook_subscriptions.update("6f3bc033-c2d1-4f44-80e3-1b668f6bd699", body)
169
+ #
170
+ def update(webhook_subscription_id, body)
171
+ response, status = BeyondApi::Request.put(@session, "/webhook-subscriptions/#{webhook_subscription_id}", body)
172
+
173
+ handle_response(response, status)
174
+ end
175
+ end
176
+ end
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "beyond_api/resources/base"
4
+ require "beyond_api/resources/carts"
5
+ require "beyond_api/resources/categories_view"
6
+ require "beyond_api/resources/categories"
7
+ require "beyond_api/resources/checkout_settings"
8
+ require "beyond_api/resources/newsletter_target"
9
+ require "beyond_api/resources/order_settings"
10
+ require "beyond_api/resources/orders"
11
+ require "beyond_api/resources/payment_methods"
12
+ require "beyond_api/resources/product_attribute_definitions"
13
+ require "beyond_api/resources/product_settings"
14
+ require "beyond_api/resources/products_view"
15
+ require "beyond_api/resources/products"
16
+ require "beyond_api/resources/scopes"
17
+ require "beyond_api/resources/script_tags"
18
+ require "beyond_api/resources/shipping_zones"
19
+ require "beyond_api/resources/shop"
20
+ require "beyond_api/resources/signers"
21
+ require "beyond_api/resources/token"
22
+ require "beyond_api/resources/users"
23
+ require "beyond_api/resources/variations"
24
+ require "beyond_api/resources/webhook_subscriptions"
25
+
26
+ module BeyondApi
27
+ class Session
28
+ attr_reader :api_url
29
+ attr_accessor :access_token, :refresh_token
30
+
31
+ def initialize(api_url:, access_token: nil, refresh_token: nil)
32
+ @api_url = api_url
33
+ @access_token = access_token
34
+ @refresh_token = refresh_token
35
+ end
36
+
37
+ def carts
38
+ BeyondApi::Carts.new(self)
39
+ end
40
+
41
+ def categories_view
42
+ BeyondApi::CategoriesView.new(self)
43
+ end
44
+
45
+ def categories
46
+ BeyondApi::Categories.new(self)
47
+ end
48
+
49
+ def checkout_settings
50
+ BeyondApi::CheckoutSettings.new(self)
51
+ end
52
+
53
+ def newsletter_target
54
+ BeyondApi::NewsletterTarget.new(self)
55
+ end
56
+
57
+ def order_settings
58
+ BeyondApi::OrderSettings.new(self)
59
+ end
60
+
61
+ def orders
62
+ BeyondApi::Orders.new(self)
63
+ end
64
+
65
+ def payment_methods
66
+ BeyondApi::PaymentMethods.new(self)
67
+ end
68
+
69
+ def product_attribute_definitions
70
+ BeyondApi::ProductAttributeDefinitions.new(self)
71
+ end
72
+
73
+ def product_settings
74
+ BeyondApi::ProductSettings.new(self)
75
+ end
76
+
77
+ def products_view
78
+ BeyondApi::ProductsView.new(self)
79
+ end
80
+
81
+ def products
82
+ BeyondApi::Products.new(self)
83
+ end
84
+
85
+ def scopes
86
+ BeyondApi::Scopes.new(self)
87
+ end
88
+
89
+ def script_tags
90
+ BeyondApi::ScriptTags.new(self)
91
+ end
92
+
93
+ def shipping_zones
94
+ BeyondApi::ShippingZones.new(self)
95
+ end
96
+
97
+ def shop
98
+ BeyondApi::Shop.new(self)
99
+ end
100
+
101
+ def signers
102
+ BeyondApi::Signers.new(self)
103
+ end
104
+
105
+ def token
106
+ BeyondApi::Token.new(self)
107
+ end
108
+
109
+ def users
110
+ BeyondApi::Users.new(self)
111
+ end
112
+
113
+ def variations
114
+ BeyondApi::Variations.new(self)
115
+ end
116
+
117
+ def webhook_subscriptions
118
+ BeyondApi::WebhookSubscriptions.new(self)
119
+ end
120
+ end
121
+ end