shopify_api 9.2.0 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +36 -0
- data/.github/workflows/build.yml +41 -0
- data/.gitignore +0 -1
- data/.rubocop.yml +23 -3
- data/.rubocop_todo.yml +75 -0
- data/CHANGELOG.md +15 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +151 -0
- data/Gemfile_ar51 +1 -1
- data/README.md +40 -30
- data/RELEASING +10 -6
- data/Rakefile +10 -6
- data/docs/graphql.md +1 -1
- data/docs/index.md +1 -1
- data/lib/active_resource/connection_ext.rb +1 -0
- data/lib/active_resource/detailed_log_subscriber.rb +6 -7
- data/lib/active_resource/json_errors.rb +8 -2
- data/lib/shopify_api.rb +8 -1
- data/lib/shopify_api/api_access.rb +57 -0
- data/lib/shopify_api/api_version.rb +6 -5
- data/lib/shopify_api/connection.rb +1 -0
- data/lib/shopify_api/countable.rb +3 -2
- data/lib/shopify_api/disable_prefix_check.rb +2 -2
- data/lib/shopify_api/events.rb +2 -1
- data/lib/shopify_api/graphql.rb +8 -6
- data/lib/shopify_api/limits.rb +3 -2
- data/lib/shopify_api/message_enricher.rb +11 -9
- data/lib/shopify_api/meta.rb +0 -1
- data/lib/shopify_api/metafields.rb +5 -4
- data/lib/shopify_api/pagination_link_headers.rb +4 -3
- data/lib/shopify_api/resources.rb +1 -0
- data/lib/shopify_api/resources/access_scope.rb +1 -1
- data/lib/shopify_api/resources/access_token.rb +1 -0
- data/lib/shopify_api/resources/address.rb +1 -0
- data/lib/shopify_api/resources/announcement.rb +2 -1
- data/lib/shopify_api/resources/application_charge.rb +1 -0
- data/lib/shopify_api/resources/application_credit.rb +1 -0
- data/lib/shopify_api/resources/article.rb +3 -2
- data/lib/shopify_api/resources/asset.rb +6 -5
- data/lib/shopify_api/resources/assigned_fulfillment_order.rb +1 -1
- data/lib/shopify_api/resources/base.rb +11 -6
- data/lib/shopify_api/resources/billing_address.rb +1 -0
- data/lib/shopify_api/resources/blog.rb +2 -1
- data/lib/shopify_api/resources/carrier_service.rb +1 -0
- data/lib/shopify_api/resources/cart.rb +2 -1
- data/lib/shopify_api/resources/collect.rb +1 -0
- data/lib/shopify_api/resources/collection_listing.rb +1 -0
- data/lib/shopify_api/resources/comment.rb +20 -5
- data/lib/shopify_api/resources/country.rb +1 -0
- data/lib/shopify_api/resources/custom_collection.rb +4 -3
- data/lib/shopify_api/resources/customer.rb +2 -1
- data/lib/shopify_api/resources/customer_group.rb +1 -0
- data/lib/shopify_api/resources/customer_invite.rb +1 -0
- data/lib/shopify_api/resources/customer_saved_search.rb +2 -1
- data/lib/shopify_api/resources/discount_code.rb +1 -0
- data/lib/shopify_api/resources/discount_code_batch.rb +4 -2
- data/lib/shopify_api/resources/draft_order.rb +1 -0
- data/lib/shopify_api/resources/draft_order_invoice.rb +1 -0
- data/lib/shopify_api/resources/event.rb +1 -0
- data/lib/shopify_api/resources/fulfillment.rb +12 -3
- data/lib/shopify_api/resources/fulfillment_event.rb +1 -0
- data/lib/shopify_api/resources/fulfillment_order.rb +30 -16
- data/lib/shopify_api/resources/fulfillment_order_locations_for_move.rb +1 -0
- data/lib/shopify_api/resources/fulfillment_request.rb +1 -0
- data/lib/shopify_api/resources/fulfillment_service.rb +1 -0
- data/lib/shopify_api/resources/fulfillment_v2.rb +3 -2
- data/lib/shopify_api/resources/gift_card.rb +1 -0
- data/lib/shopify_api/resources/image.rb +2 -1
- data/lib/shopify_api/resources/inventory_level.rb +2 -3
- data/lib/shopify_api/resources/line_item.rb +4 -3
- data/lib/shopify_api/resources/location.rb +1 -1
- data/lib/shopify_api/resources/marketing_event.rb +1 -0
- data/lib/shopify_api/resources/metafield.rb +1 -0
- data/lib/shopify_api/resources/note_attribute.rb +1 -0
- data/lib/shopify_api/resources/option.rb +1 -0
- data/lib/shopify_api/resources/order.rb +2 -1
- data/lib/shopify_api/resources/order_risk.rb +1 -0
- data/lib/shopify_api/resources/page.rb +1 -0
- data/lib/shopify_api/resources/payment_details.rb +1 -0
- data/lib/shopify_api/resources/policy.rb +1 -0
- data/lib/shopify_api/resources/price_rule.rb +1 -1
- data/lib/shopify_api/resources/product.rb +14 -11
- data/lib/shopify_api/resources/product_listing.rb +1 -0
- data/lib/shopify_api/resources/province.rb +1 -0
- data/lib/shopify_api/resources/receipt.rb +1 -0
- data/lib/shopify_api/resources/recurring_application_charge.rb +4 -1
- data/lib/shopify_api/resources/redirect.rb +1 -0
- data/lib/shopify_api/resources/refund.rb +2 -1
- data/lib/shopify_api/resources/report.rb +1 -0
- data/lib/shopify_api/resources/resource_feedback.rb +1 -1
- data/lib/shopify_api/resources/rule.rb +1 -0
- data/lib/shopify_api/resources/script_tag.rb +1 -0
- data/lib/shopify_api/resources/shipping_address.rb +1 -0
- data/lib/shopify_api/resources/shipping_line.rb +1 -0
- data/lib/shopify_api/resources/shipping_zone.rb +1 -0
- data/lib/shopify_api/resources/shop.rb +2 -1
- data/lib/shopify_api/resources/smart_collection.rb +2 -2
- data/lib/shopify_api/resources/storefront_access_token.rb +1 -0
- data/lib/shopify_api/resources/tax_line.rb +1 -0
- data/lib/shopify_api/resources/tax_service.rb +1 -0
- data/lib/shopify_api/resources/theme.rb +1 -0
- data/lib/shopify_api/resources/transaction.rb +1 -0
- data/lib/shopify_api/resources/usage_charge.rb +1 -0
- data/lib/shopify_api/resources/user.rb +1 -0
- data/lib/shopify_api/resources/variant.rb +16 -18
- data/lib/shopify_api/resources/webhook.rb +1 -0
- data/lib/shopify_api/session.rb +20 -12
- data/lib/shopify_api/version.rb +2 -1
- data/lib/verify_docs.rb +1 -0
- data/service.yml +1 -1
- data/shopify_api.gemspec +10 -4
- data/test/access_token_test.rb +6 -5
- data/test/active_resource/json_errors_test.rb +6 -6
- data/test/api_access_test.rb +153 -0
- data/test/api_version_test.rb +3 -3
- data/test/application_charge_test.rb +30 -27
- data/test/application_credit_test.rb +10 -9
- data/test/article_test.rb +34 -35
- data/test/asset_test.rb +14 -6
- data/test/assigned_fulfillment_order_test.rb +5 -4
- data/test/base_test.rb +55 -56
- data/test/blog_test.rb +4 -3
- data/test/carrier_service_test.rb +7 -6
- data/test/cart_test.rb +2 -1
- data/test/collect_test.rb +4 -3
- data/test/collection_listing_test.rb +21 -16
- data/test/collection_publication_test.rb +8 -8
- data/test/collection_test.rb +20 -19
- data/test/countable_test.rb +3 -2
- data/test/currency_test.rb +5 -5
- data/test/custom_collection_test.rb +4 -3
- data/test/customer_saved_search_test.rb +18 -8
- data/test/customer_test.rb +22 -14
- data/test/detailed_log_subscriber_test.rb +15 -11
- data/test/discount_code_batch_test.rb +11 -10
- data/test/discount_code_test.rb +21 -15
- data/test/draft_order_test.rb +68 -52
- data/test/fixtures/assigned_fulfillment_orders.json +2 -0
- data/test/fixtures/fulfillment_order.json +1 -0
- data/test/fixtures/fulfillment_orders.json +2 -0
- data/test/fulfillment_event_test.rb +31 -26
- data/test/fulfillment_order_test.rb +215 -147
- data/test/fulfillment_order_test_helper.rb +1 -0
- data/test/fulfillment_request_test.rb +10 -8
- data/test/fulfillment_service_test.rb +13 -12
- data/test/fulfillment_test.rb +81 -66
- data/test/fulfillment_v2_test.rb +16 -12
- data/test/gift_card_test.rb +6 -4
- data/test/graphql_test.rb +27 -27
- data/test/image_test.rb +19 -17
- data/test/inventory_level_test.rb +24 -15
- data/test/lib/webmock_extensions/last_request.rb +1 -1
- data/test/limits_test.rb +2 -1
- data/test/location_test.rb +2 -1
- data/test/marketing_event_test.rb +20 -20
- data/test/message_enricher_test.rb +6 -6
- data/test/meta_test.rb +7 -9
- data/test/metafield_test.rb +30 -20
- data/test/order_risk_test.rb +17 -16
- data/test/order_test.rb +43 -28
- data/test/pagination_test.rb +89 -56
- data/test/policy_test.rb +6 -5
- data/test/price_rule_test.rb +20 -15
- data/test/product_listing_test.rb +20 -20
- data/test/product_publication_test.rb +8 -8
- data/test/product_test.rb +44 -32
- data/test/publication_test.rb +3 -3
- data/test/recurring_application_charge_test.rb +104 -42
- data/test/redirect_test.rb +4 -3
- data/test/refund_test.rb +22 -17
- data/test/report_test.rb +12 -10
- data/test/resource_feedback_test.rb +14 -13
- data/test/script_tag_test.rb +10 -9
- data/test/session_test.rb +74 -46
- data/test/shipping_zone_test.rb +4 -3
- data/test/shop_test.rb +47 -33
- data/test/smart_collection_test.rb +5 -4
- data/test/storefront_access_token_test.rb +13 -15
- data/test/tax_service_test.rb +7 -4
- data/test/tender_transaction_test.rb +3 -3
- data/test/test_helper.rb +13 -11
- data/test/transaction_test.rb +4 -3
- data/test/usage_charge_test.rb +12 -8
- data/test/user_test.rb +4 -3
- data/test/variant_test.rb +23 -54
- data/test/webhook_test.rb +10 -7
- metadata +14 -9
- data/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +0 -1027
- data/.travis.yml +0 -28
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ShopifyAPI
|
|
2
3
|
class Article < Base
|
|
3
4
|
include Events
|
|
@@ -7,14 +8,14 @@ module ShopifyAPI
|
|
|
7
8
|
conditional_prefix :blog
|
|
8
9
|
|
|
9
10
|
def comments
|
|
10
|
-
Comment.find(:all, :
|
|
11
|
+
Comment.find(:all, params: { article_id: id })
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
def self.authors(options = {})
|
|
14
15
|
get(:authors, options)
|
|
15
16
|
end
|
|
16
17
|
|
|
17
|
-
def self.tags(options={})
|
|
18
|
+
def self.tags(options = {})
|
|
18
19
|
get(:tags, options)
|
|
19
20
|
end
|
|
20
21
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ShopifyAPI
|
|
2
3
|
# Assets represent the files that comprise your theme.
|
|
3
4
|
# There are different buckets which hold different kinds
|
|
@@ -9,10 +10,10 @@ module ShopifyAPI
|
|
|
9
10
|
# or assets/bg-body.gif.
|
|
10
11
|
#
|
|
11
12
|
# Initialize with a key:
|
|
12
|
-
# asset = ShopifyAPI::Asset.new(:
|
|
13
|
+
# asset = ShopifyAPI::Asset.new(key: 'assets/special.css', theme_id: 12345)
|
|
13
14
|
#
|
|
14
15
|
# Find by key:
|
|
15
|
-
# asset = ShopifyAPI::Asset.find('assets/image.png', :
|
|
16
|
+
# asset = ShopifyAPI::Asset.find('assets/image.png', params: {theme_id: 12345})
|
|
16
17
|
#
|
|
17
18
|
# Get the text or binary value:
|
|
18
19
|
# asset.value # decodes from attachment attribute if necessary
|
|
@@ -38,13 +39,13 @@ module ShopifyAPI
|
|
|
38
39
|
|
|
39
40
|
conditional_prefix :theme
|
|
40
41
|
|
|
41
|
-
def self.element_path(
|
|
42
|
+
def self.element_path(_id, prefix_options = {}, query_options = nil) #:nodoc:
|
|
42
43
|
prefix_options, query_options = split_options(prefix_options) if query_options.nil?
|
|
43
44
|
"#{prefix(prefix_options)}#{collection_name}.#{format.extension}#{query_string(query_options)}"
|
|
44
45
|
end
|
|
45
46
|
|
|
46
47
|
# find an asset by key:
|
|
47
|
-
# ShopifyAPI::Asset.find('layout/theme.liquid', :
|
|
48
|
+
# ShopifyAPI::Asset.find('layout/theme.liquid', params: { theme_id: 99 })
|
|
48
49
|
def self.find(*args)
|
|
49
50
|
if args[0].is_a?(Symbol)
|
|
50
51
|
super
|
|
@@ -75,7 +76,7 @@ module ShopifyAPI
|
|
|
75
76
|
end
|
|
76
77
|
|
|
77
78
|
def destroy
|
|
78
|
-
connection.delete(element_path(prefix_options.merge(:
|
|
79
|
+
connection.delete(element_path(prefix_options.merge(asset: { key: key })), self.class.headers)
|
|
79
80
|
end
|
|
80
81
|
|
|
81
82
|
def new?
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'shopify_api/version'
|
|
2
3
|
|
|
3
4
|
module ShopifyAPI
|
|
@@ -15,7 +16,7 @@ module ShopifyAPI
|
|
|
15
16
|
|
|
16
17
|
def encode(options = {})
|
|
17
18
|
same = dup
|
|
18
|
-
same.attributes = {self.class.element_name => same.attributes} if self.class.format.extension == 'json'
|
|
19
|
+
same.attributes = { self.class.element_name => same.attributes } if self.class.format.extension == 'json'
|
|
19
20
|
|
|
20
21
|
same.send("to_#{self.class.format.extension}", options)
|
|
21
22
|
end
|
|
@@ -43,7 +44,7 @@ module ShopifyAPI
|
|
|
43
44
|
end
|
|
44
45
|
|
|
45
46
|
def activate_session(session)
|
|
46
|
-
raise InvalidSessionError
|
|
47
|
+
raise InvalidSessionError, "Session cannot be nil" if session.nil?
|
|
47
48
|
self.site = session.site
|
|
48
49
|
self.headers.merge!('X-Shopify-Access-Token' => session.token)
|
|
49
50
|
self.api_version = session.api_version
|
|
@@ -67,7 +68,11 @@ module ShopifyAPI
|
|
|
67
68
|
end
|
|
68
69
|
|
|
69
70
|
def api_version=(version)
|
|
70
|
-
self._api_version = ApiVersion::NullVersion.matches?(version)
|
|
71
|
+
self._api_version = if ApiVersion::NullVersion.matches?(version)
|
|
72
|
+
ApiVersion::NullVersion
|
|
73
|
+
else
|
|
74
|
+
ApiVersion.find_version(version)
|
|
75
|
+
end
|
|
71
76
|
end
|
|
72
77
|
|
|
73
78
|
def prefix(options = {})
|
|
@@ -91,7 +96,7 @@ module ShopifyAPI
|
|
|
91
96
|
|
|
92
97
|
silence_warnings do
|
|
93
98
|
# Redefine the new methods.
|
|
94
|
-
instance_eval
|
|
99
|
+
instance_eval(<<-RUBY_EVAL, __FILE__, __LINE__ + 1)
|
|
95
100
|
def prefix_source() "#{value}" end
|
|
96
101
|
def resource_prefix(options={}) "#{resource_prefix_call}" end
|
|
97
102
|
RUBY_EVAL
|
|
@@ -122,7 +127,7 @@ module ShopifyAPI
|
|
|
122
127
|
def init_prefix_explicit(resource_type, resource_id)
|
|
123
128
|
self.resource_prefix = "#{resource_type}/:#{resource_id}/"
|
|
124
129
|
|
|
125
|
-
define_method
|
|
130
|
+
define_method(resource_id.to_sym) do
|
|
126
131
|
@prefix_options[resource_id]
|
|
127
132
|
end
|
|
128
133
|
end
|
|
@@ -155,7 +160,7 @@ module ShopifyAPI
|
|
|
155
160
|
private
|
|
156
161
|
|
|
157
162
|
def only_id
|
|
158
|
-
encode(:
|
|
163
|
+
encode(only: :id, include: [], methods: [])
|
|
159
164
|
end
|
|
160
165
|
end
|
|
161
166
|
end
|
|
@@ -1,9 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ShopifyAPI
|
|
2
3
|
class Comment < Base
|
|
3
|
-
def remove
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def
|
|
4
|
+
def remove
|
|
5
|
+
load_attributes_from_response(post(:remove, {}, only_id))
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def spam
|
|
9
|
+
load_attributes_from_response(post(:spam, {}, only_id))
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def approve
|
|
13
|
+
load_attributes_from_response(post(:approve, {}, only_id))
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def restore
|
|
17
|
+
load_attributes_from_response(post(:restore, {}, only_id))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def not_spam
|
|
21
|
+
load_attributes_from_response(post(:not_spam, {}, only_id))
|
|
22
|
+
end
|
|
8
23
|
end
|
|
9
24
|
end
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ShopifyAPI
|
|
2
3
|
class CustomCollection < Base
|
|
3
4
|
include Events
|
|
4
5
|
include Metafields
|
|
5
6
|
|
|
6
7
|
def products
|
|
7
|
-
Product.find(:all, :
|
|
8
|
+
Product.find(:all, params: { collection_id: self.id })
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
def add_product(product)
|
|
11
|
-
Collect.create(:
|
|
12
|
+
Collect.create(collection_id: self.id, product_id: product.id)
|
|
12
13
|
end
|
|
13
14
|
|
|
14
15
|
def remove_product(product)
|
|
15
|
-
collect = Collect.find(:first, :
|
|
16
|
+
collect = Collect.find(:first, params: { collection_id: self.id, product_id: product.id })
|
|
16
17
|
collect.destroy if collect
|
|
17
18
|
end
|
|
18
19
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'shopify_api/resources/customer'
|
|
2
3
|
|
|
3
4
|
module ShopifyAPI
|
|
@@ -5,7 +6,7 @@ module ShopifyAPI
|
|
|
5
6
|
early_july_pagination_release!
|
|
6
7
|
|
|
7
8
|
def customers(params = {})
|
|
8
|
-
Customer.search(params.merge({:
|
|
9
|
+
Customer.search(params.merge({ customer_saved_search_id: self.id }))
|
|
9
10
|
end
|
|
10
11
|
end
|
|
11
12
|
end
|
|
@@ -12,8 +12,10 @@ module ShopifyAPI
|
|
|
12
12
|
def discount_code_job
|
|
13
13
|
@discount_codes ||= begin
|
|
14
14
|
if id
|
|
15
|
-
path = self.class.api_version.construct_api_path(
|
|
16
|
-
|
|
15
|
+
path = self.class.api_version.construct_api_path(
|
|
16
|
+
"price_rules/#{price_rule_id}/batch/#{id}/discount_codes.json"
|
|
17
|
+
)
|
|
18
|
+
discount_codes = ShopifyAPI::DiscountCode.find(:all, from: path)
|
|
17
19
|
discount_codes.each do |code|
|
|
18
20
|
errors = code.attributes['errors']
|
|
19
21
|
errors.attributes.each do |key, values|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ShopifyAPI
|
|
2
3
|
class Fulfillment < Base
|
|
3
4
|
init_prefix :order
|
|
@@ -6,9 +7,17 @@ module ShopifyAPI
|
|
|
6
7
|
@prefix_options[:order_id]
|
|
7
8
|
end
|
|
8
9
|
|
|
9
|
-
def cancel
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
def cancel
|
|
11
|
+
load_attributes_from_response(post(:cancel, {}, only_id))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def complete
|
|
15
|
+
load_attributes_from_response(post(:complete, {}, only_id))
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def open
|
|
19
|
+
load_attributes_from_response(post(:open, {}, only_id))
|
|
20
|
+
end
|
|
12
21
|
|
|
13
22
|
def order_id=(order_id)
|
|
14
23
|
prefix_options[:order_id] = order_id
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ShopifyAPI
|
|
2
3
|
class FulfillmentOrder < Base
|
|
3
4
|
MINIMUM_VERSION = '2020-01'
|
|
@@ -37,8 +38,8 @@ module ShopifyAPI
|
|
|
37
38
|
def move(new_location_id:)
|
|
38
39
|
body = {
|
|
39
40
|
fulfillment_order: {
|
|
40
|
-
new_location_id: new_location_id
|
|
41
|
-
}
|
|
41
|
+
new_location_id: new_location_id,
|
|
42
|
+
},
|
|
42
43
|
}
|
|
43
44
|
keyed_fulfillment_orders = keyed_fulfillment_orders_from_response(post(:move, {}, body.to_json))
|
|
44
45
|
load_keyed_fulfillment_order(keyed_fulfillment_orders, 'original_fulfillment_order')
|
|
@@ -51,11 +52,24 @@ module ShopifyAPI
|
|
|
51
52
|
keyed_fulfillment_orders
|
|
52
53
|
end
|
|
53
54
|
|
|
55
|
+
def open
|
|
56
|
+
load_attributes_from_response(post(:open, {}, only_id))
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def reschedule(new_fulfill_at:)
|
|
60
|
+
body = {
|
|
61
|
+
fulfillment_order: {
|
|
62
|
+
new_fulfill_at: new_fulfill_at,
|
|
63
|
+
},
|
|
64
|
+
}
|
|
65
|
+
load_attributes_from_response(post(:reschedule, {}, body.to_json))
|
|
66
|
+
end
|
|
67
|
+
|
|
54
68
|
def close(message: nil)
|
|
55
69
|
body = {
|
|
56
70
|
fulfillment_order: {
|
|
57
|
-
message: message
|
|
58
|
-
}
|
|
71
|
+
message: message,
|
|
72
|
+
},
|
|
59
73
|
}
|
|
60
74
|
load_attributes_from_response(post(:close, {}, body.to_json))
|
|
61
75
|
end
|
|
@@ -64,8 +78,8 @@ module ShopifyAPI
|
|
|
64
78
|
body = {
|
|
65
79
|
fulfillment_request: {
|
|
66
80
|
fulfillment_order_line_items: fulfillment_order_line_items,
|
|
67
|
-
message: message
|
|
68
|
-
}
|
|
81
|
+
message: message,
|
|
82
|
+
},
|
|
69
83
|
}
|
|
70
84
|
keyed_fulfillment_orders = keyed_fulfillment_orders_from_response(post(:fulfillment_request, {}, body.to_json))
|
|
71
85
|
load_keyed_fulfillment_order(keyed_fulfillment_orders, 'original_fulfillment_order')
|
|
@@ -75,8 +89,8 @@ module ShopifyAPI
|
|
|
75
89
|
def accept_fulfillment_request(message: nil)
|
|
76
90
|
body = {
|
|
77
91
|
fulfillment_request: {
|
|
78
|
-
message: message
|
|
79
|
-
}
|
|
92
|
+
message: message,
|
|
93
|
+
},
|
|
80
94
|
}
|
|
81
95
|
load_attributes_from_response(post('fulfillment_request/accept', {}, body.to_json))
|
|
82
96
|
end
|
|
@@ -84,8 +98,8 @@ module ShopifyAPI
|
|
|
84
98
|
def reject_fulfillment_request(message: nil)
|
|
85
99
|
body = {
|
|
86
100
|
fulfillment_request: {
|
|
87
|
-
message: message
|
|
88
|
-
}
|
|
101
|
+
message: message,
|
|
102
|
+
},
|
|
89
103
|
}
|
|
90
104
|
load_attributes_from_response(post('fulfillment_request/reject', {}, body.to_json))
|
|
91
105
|
end
|
|
@@ -93,8 +107,8 @@ module ShopifyAPI
|
|
|
93
107
|
def request_cancellation(message: nil)
|
|
94
108
|
body = {
|
|
95
109
|
cancellation_request: {
|
|
96
|
-
message: message
|
|
97
|
-
}
|
|
110
|
+
message: message,
|
|
111
|
+
},
|
|
98
112
|
}
|
|
99
113
|
load_attributes_from_response(post(:cancellation_request, {}, body.to_json))
|
|
100
114
|
end
|
|
@@ -102,8 +116,8 @@ module ShopifyAPI
|
|
|
102
116
|
def accept_cancellation_request(message: nil)
|
|
103
117
|
body = {
|
|
104
118
|
cancellation_request: {
|
|
105
|
-
message: message
|
|
106
|
-
}
|
|
119
|
+
message: message,
|
|
120
|
+
},
|
|
107
121
|
}
|
|
108
122
|
load_attributes_from_response(post('cancellation_request/accept', {}, body.to_json))
|
|
109
123
|
end
|
|
@@ -111,8 +125,8 @@ module ShopifyAPI
|
|
|
111
125
|
def reject_cancellation_request(message: nil)
|
|
112
126
|
body = {
|
|
113
127
|
cancellation_request: {
|
|
114
|
-
message: message
|
|
115
|
-
}
|
|
128
|
+
message: message,
|
|
129
|
+
},
|
|
116
130
|
}
|
|
117
131
|
load_attributes_from_response(post('cancellation_request/reject', {}, body.to_json))
|
|
118
132
|
end
|