peddler 3.0.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -6
- data/lib/peddler/api.rb +28 -13
- data/lib/peddler/{api → apis}/amazon_warehousing_and_distribution_2024_05_09.rb +5 -5
- data/lib/peddler/{api → apis}/aplus_content_2020_11_01.rb +12 -12
- data/lib/peddler/{api → apis}/application_integrations_2024_04_01.rb +5 -5
- data/lib/peddler/{api → apis}/application_management_2023_11_30.rb +3 -3
- data/lib/peddler/{api → apis}/catalog_items_2020_12_01.rb +4 -4
- data/lib/peddler/{api → apis}/catalog_items_2022_04_01.rb +5 -5
- data/lib/peddler/{api → apis}/catalog_items_v0.rb +5 -5
- data/lib/peddler/{api → apis}/data_kiosk_2023_11_15.rb +7 -7
- data/lib/peddler/{api → apis}/easy_ship_2022_03_23.rb +20 -21
- data/lib/peddler/{api → apis}/fba_inbound_eligibility_v1.rb +3 -3
- data/lib/peddler/{api → apis}/fba_inventory_v1.rb +6 -6
- data/lib/peddler/{api → apis}/feeds_2021_06_30.rb +12 -9
- data/lib/peddler/{api → apis}/finances_2024_06_19.rb +3 -3
- data/lib/peddler/apis/finances_v0.rb +135 -0
- data/lib/peddler/{api → apis}/fulfillment_inbound_2024_03_20.rb +84 -54
- data/lib/peddler/{api → apis}/fulfillment_inbound_v0.rb +27 -20
- data/lib/peddler/{api → apis}/fulfillment_outbound_2020_07_01.rb +16 -16
- data/lib/peddler/{api → apis}/invoices_2024_06_19.rb +9 -9
- data/lib/peddler/{api → apis}/listings_items_2020_09_01.rb +5 -5
- data/lib/peddler/{api → apis}/listings_items_2021_08_01.rb +7 -41
- data/lib/peddler/{api → apis}/listings_restrictions_2021_08_01.rb +3 -3
- data/lib/peddler/{api → apis}/merchant_fulfillment_v0.rb +14 -14
- data/lib/peddler/{api → apis}/messaging_v1.rb +15 -15
- data/lib/peddler/{api → apis}/notifications_v1.rb +10 -10
- data/lib/peddler/{api → apis}/orders_v0.rb +13 -13
- data/lib/peddler/{api → apis}/product_fees_v0.rb +5 -5
- data/lib/peddler/{api → apis}/product_pricing_2022_05_01.rb +8 -8
- data/lib/peddler/{api → apis}/product_pricing_v0.rb +8 -8
- data/lib/peddler/{api → apis}/product_type_definitions_2020_09_01.rb +4 -4
- data/lib/peddler/{api → apis}/replenishment_2022_11_07.rb +5 -5
- data/lib/peddler/{api → apis}/reports_2021_06_30.rb +12 -12
- data/lib/peddler/{api → apis}/sales_v1.rb +3 -3
- data/lib/peddler/{api → apis}/sellers_v1.rb +4 -4
- data/lib/peddler/{api → apis}/services_v1.rb +19 -19
- data/lib/peddler/{api → apis}/shipment_invoicing_v0.rb +5 -5
- data/lib/peddler/{api → apis}/shipping_v1.rb +11 -11
- data/lib/peddler/{api → apis}/shipping_v2.rb +19 -19
- data/lib/peddler/{api → apis}/solicitations_v1.rb +4 -4
- data/lib/peddler/{api → apis}/supply_sources_2020_07_01.rb +8 -8
- data/lib/peddler/{api → apis}/tokens_2021_03_01.rb +3 -3
- data/lib/peddler/{api → apis}/uploads_2020_11_01.rb +3 -3
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_inventory_v1.rb +4 -4
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_orders_2021_12_28.rb +5 -5
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_orders_v1.rb +6 -6
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_payments_v1.rb +4 -4
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.rb +9 -9
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_shipping_2021_12_28.rb +17 -17
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_shipping_v1.rb +30 -30
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_transactions_2021_12_28.rb +4 -4
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_transactions_v1.rb +4 -4
- data/lib/peddler/{api → apis}/vendor_invoices_v1.rb +4 -4
- data/lib/peddler/{api → apis}/vendor_orders_v1.rb +7 -7
- data/lib/peddler/{api → apis}/vendor_shipments_v1.rb +6 -6
- data/lib/peddler/{api → apis}/vendor_transaction_status_v1.rb +3 -3
- data/lib/peddler/endpoint.rb +2 -2
- data/lib/peddler/error.rb +21 -12
- data/lib/peddler/helpers/feeds_2021_06_30.rb +26 -0
- data/lib/peddler/json_feed_document.rb +31 -0
- data/lib/peddler/marketplace.rb +46 -2
- data/lib/peddler/response.rb +46 -0
- data/lib/peddler/version.rb +1 -1
- data/lib/peddler.rb +54 -55
- metadata +59 -56
- data/lib/peddler/api/finances_v0.rb +0 -148
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 989f5bec7dce426405b687e65c4677fe8b359b355d815df799a048ef1907809f
|
4
|
+
data.tar.gz: eec2f1236bf285bf00c7d32e1482ae2fadaadeb2db9f0bc0a9beb64cf3ec7072
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 361ce5ea21116bbc09efb9590d080db5275f35dbc6717ccd318c291eb32e4b122b24d06ad4f78c9c693298d8e6e70fc81f3d7a128b843b7949579a601683bf91
|
7
|
+
data.tar.gz: 956ad0c6b2b7d1a490dffbf846a4c4415e1323510ac52c0eebdb2b42835f5a2f14354f2e0d16fa19099d0823ed47f09218255e98973735e7ccfa1579f08ccefa
|
data/README.md
CHANGED
@@ -4,10 +4,17 @@
|
|
4
4
|
[![Maintainability](https://api.codeclimate.com/v1/badges/281e6176048f3c0a1ed3/maintainability)][maintainability]
|
5
5
|
[![Test Coverage](https://api.codeclimate.com/v1/badges/281e6176048f3c0a1ed3/test_coverage)][test-coverage]
|
6
6
|
|
7
|
+
> **_NOTE:_** This README explains the main branch, which may contain unreleased code. For the README of the latest release, please refer to [this link][latest-release-readme].
|
8
|
+
|
7
9
|
**Peddler** is a Ruby interface to the [Amazon Selling Partner API (SP-API)][docs-overview]. The SP-API enables Amazon sellers and vendors to programmatically access their data on orders, shipments, payments, and more.
|
8
10
|
|
11
|
+
Peddler is automatically generated from the Open API models provided by Amazon.
|
12
|
+
|
9
13
|
To begin using the Amazon SP-API, you must [register as a developer][register-as-developer] and [register your application][register-application]. Once registered, [obtain your Login with Amazon (LWA) credentials][view-credentials] to access your own or other selling partners' data.
|
10
14
|
|
15
|
+
- [API models][api-models]
|
16
|
+
- [API samples][api-samples]
|
17
|
+
|
11
18
|
![Peddler](https://github.com/hakanensari/peddler/blob/main/images/peddler.jpg?raw=true)
|
12
19
|
|
13
20
|
## Installation
|
@@ -15,7 +22,7 @@ To begin using the Amazon SP-API, you must [register as a developer][register-as
|
|
15
22
|
Add this line to your Gemfile.
|
16
23
|
|
17
24
|
```ruby
|
18
|
-
gem "peddler", "3.0
|
25
|
+
gem "peddler", "~> 3.0"
|
19
26
|
```
|
20
27
|
|
21
28
|
And then execute:
|
@@ -113,7 +120,7 @@ response = api.get_catalog_item(
|
|
113
120
|
marketplaceIds: ["ATVPDKIKX0DER"],
|
114
121
|
asin: "B08N5WRWNW"
|
115
122
|
)
|
116
|
-
items = response.
|
123
|
+
items = response.dig("items")
|
117
124
|
```
|
118
125
|
|
119
126
|
#### Orders API (v0)
|
@@ -126,7 +133,7 @@ response = api.get_orders(
|
|
126
133
|
marketplaceIds: ["ATVPDKIKX0DER"],
|
127
134
|
createdAfter: "2023-01-01T00:00:00Z"
|
128
135
|
)
|
129
|
-
response.
|
136
|
+
response.dig("orders")
|
130
137
|
```
|
131
138
|
|
132
139
|
#### Feeds API (2021-06-30)
|
@@ -145,7 +152,7 @@ upload_url = response.parse["url"]
|
|
145
152
|
|
146
153
|
# Upload the feed content to the provided URL
|
147
154
|
feed_content = File.read("inventory_update.xml")
|
148
|
-
api.upload_feed_document(upload_url, feed_content)
|
155
|
+
api.upload_feed_document(upload_url, feed_content, "text/xml; charset=UTF-8")
|
149
156
|
|
150
157
|
# Create the feed
|
151
158
|
response = api.create_feed(
|
@@ -338,7 +345,6 @@ purchase_orders = response.parse["purchaseOrders"]
|
|
338
345
|
|
339
346
|
Enables vendors to manage shipping labels and shipping information for direct fulfillment orders.
|
340
347
|
|
341
|
-
|
342
348
|
```ruby
|
343
349
|
api = Peddler.vendor_direct_fulfillment_shipping_2021_12_28(aws_region, access_token)
|
344
350
|
response = api.get_packing_slip(
|
@@ -351,7 +357,6 @@ response.parse
|
|
351
357
|
|
352
358
|
Allows vendors to receive orders for direct fulfillment and provide shipment confirmations.
|
353
359
|
|
354
|
-
|
355
360
|
```ruby
|
356
361
|
api = Peddler.vendor_direct_fulfillment_orders_2021_12_28(aws_region, access_token)
|
357
362
|
response = api.get_orders(
|
@@ -496,9 +501,12 @@ response.parse
|
|
496
501
|
[build]: https://github.com/hakanensari/peddler/actions
|
497
502
|
[maintainability]: https://codeclimate.com/github/hakanensari/peddler/maintainability
|
498
503
|
[test-coverage]: https://codeclimate.com/github/hakanensari/peddler/test_coverage
|
504
|
+
[latest-release-readme]: https://github.com/lineofflight/peddler/tree/v3.0.0
|
499
505
|
[docs-overview]: https://developer.amazonservices.com/sp-api-docs/overview
|
500
506
|
[register-as-developer]: https://developer-docs.amazon.com/sp-api/docs/registering-as-a-developer
|
501
507
|
[register-application]: https://developer-docs.amazon.com/sp-api/docs/registering-your-application
|
508
|
+
[api-models]: https://github.com/amzn/selling-partner-api-models
|
509
|
+
[api-samples]: https://github.com/amzn/selling-partner-api-samples
|
502
510
|
[view-credentials]: https://developer-docs.amazon.com/sp-api/docs/viewing-your-application-information-and-credentials
|
503
511
|
[authorization]: https://developer-docs.amazon.com/sp-api/docs/authorizing-selling-partner-api-applications
|
504
512
|
[rate-limits]: https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits
|
data/lib/peddler/api.rb
CHANGED
@@ -4,6 +4,8 @@ require "http"
|
|
4
4
|
|
5
5
|
require "peddler/endpoint"
|
6
6
|
require "peddler/error"
|
7
|
+
require "peddler/marketplace"
|
8
|
+
require "peddler/response"
|
7
9
|
require "peddler/version"
|
8
10
|
|
9
11
|
module Peddler
|
@@ -12,6 +14,11 @@ module Peddler
|
|
12
14
|
class CannotSandbox < StandardError; end
|
13
15
|
class MustSandbox < StandardError; end
|
14
16
|
|
17
|
+
class << self
|
18
|
+
# @return [#call]
|
19
|
+
attr_accessor :parser
|
20
|
+
end
|
21
|
+
|
15
22
|
# @return [Peddler::Endpoint]
|
16
23
|
attr_reader :endpoint
|
17
24
|
|
@@ -31,6 +38,8 @@ module Peddler
|
|
31
38
|
sandbox? ? endpoint.sandbox : endpoint.production
|
32
39
|
end
|
33
40
|
|
41
|
+
# Switches to the SP-API sandbox to make test calls
|
42
|
+
#
|
34
43
|
# @see https://developer-docs.amazon.com/sp-api/docs/the-selling-partner-api-sandbox
|
35
44
|
# @return [self]
|
36
45
|
def sandbox
|
@@ -43,16 +52,6 @@ module Peddler
|
|
43
52
|
@sandbox
|
44
53
|
end
|
45
54
|
|
46
|
-
# @raise [CannotSandbox] if in a sandbox environment
|
47
|
-
def cannot_sandbox!
|
48
|
-
raise CannotSandbox, "cannot run in a sandbox" if sandbox?
|
49
|
-
end
|
50
|
-
|
51
|
-
# @raise [MustSandbox] unless in a sandbox environment
|
52
|
-
def must_sandbox!
|
53
|
-
raise MustSandbox, "must run in a sandbox" unless sandbox?
|
54
|
-
end
|
55
|
-
|
56
55
|
# @see https://developer-docs.amazon.com/sp-api/docs/include-a-user-agent-header-in-all-requests
|
57
56
|
# @see https://developer-docs.amazon.com/amazon-shipping/docs/connecting-to-the-selling-partner-api#step-3-add-headers-to-the-uri
|
58
57
|
# @return [HTTP::Client]
|
@@ -73,7 +72,7 @@ module Peddler
|
|
73
72
|
# HTTP v6.0 will implement retriable. Until then, point to their GitHub repo, or it's a no-op.
|
74
73
|
# https://github.com/httprb/http/pull/790
|
75
74
|
delay = sandbox? ? 0.2 : 1.0 / rate_limit
|
76
|
-
retriable(delay: delay, retry_statuses: [429])
|
75
|
+
retriable(delay: delay, retry_statuses: [429])
|
77
76
|
|
78
77
|
self
|
79
78
|
end
|
@@ -98,7 +97,7 @@ module Peddler
|
|
98
97
|
# @return [self]
|
99
98
|
[:via, :use, :retriable].each do |method|
|
100
99
|
define_method(method) do |*args, &block|
|
101
|
-
@http = http.send(method, *args, &block)
|
100
|
+
@http = http.send(method, *args, &block) if http.respond_to?(method)
|
102
101
|
self
|
103
102
|
end
|
104
103
|
end
|
@@ -121,12 +120,28 @@ module Peddler
|
|
121
120
|
raise error if error
|
122
121
|
end
|
123
122
|
|
124
|
-
response
|
123
|
+
Response.decorate(response, parser:)
|
125
124
|
end
|
126
125
|
end
|
127
126
|
|
127
|
+
attr_writer :parser
|
128
|
+
|
129
|
+
# @!attribute parser
|
130
|
+
# @return [#call]
|
131
|
+
def parser
|
132
|
+
@parser || self.class.parser
|
133
|
+
end
|
134
|
+
|
128
135
|
private
|
129
136
|
|
137
|
+
def cannot_sandbox!
|
138
|
+
raise CannotSandbox, "cannot run in a sandbox" if sandbox?
|
139
|
+
end
|
140
|
+
|
141
|
+
def must_sandbox!
|
142
|
+
raise MustSandbox, "must run in a sandbox" unless sandbox?
|
143
|
+
end
|
144
|
+
|
130
145
|
def user_agent
|
131
146
|
"Peddler/#{Peddler::VERSION} (Language=Ruby; #{Socket.gethostname})"
|
132
147
|
end
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def amazon_warehousing_and_distribution_2024_05_09(...)
|
8
|
-
|
8
|
+
APIs::AmazonWarehousingAndDistribution20240509.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# The Selling Partner API for Amazon Warehousing and Distribution
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Amazon Warehousing and Distribution (AWD) provides programmatic access to information
|
@@ -22,7 +22,7 @@ module Peddler
|
|
22
22
|
# @param sku_quantities [String] If equal to `SHOW`, the response includes the shipment SKU quantity details.
|
23
23
|
# Defaults to `HIDE`, in which case the response does not contain SKU quantities
|
24
24
|
# @param rate_limit [Float] Requests per second
|
25
|
-
# @return [
|
25
|
+
# @return [Peddler::Response] The API response
|
26
26
|
def get_inbound_shipment(shipment_id, sku_quantities: nil, rate_limit: 2.0)
|
27
27
|
path = "/awd/2024-05-09/inboundShipments/#{shipment_id}"
|
28
28
|
params = {
|
@@ -47,7 +47,7 @@ module Peddler
|
|
47
47
|
# @param max_results [Integer] Maximum number of results to return.
|
48
48
|
# @param next_token [String] Token to retrieve the next set of paginated results.
|
49
49
|
# @param rate_limit [Float] Requests per second
|
50
|
-
# @return [
|
50
|
+
# @return [Peddler::Response] The API response
|
51
51
|
def list_inbound_shipments(sort_by: nil, sort_order: nil, shipment_status: nil, updated_after: nil,
|
52
52
|
updated_before: nil, max_results: 25, next_token: nil, rate_limit: 1.0)
|
53
53
|
path = "/awd/2024-05-09/inboundShipments"
|
@@ -74,7 +74,7 @@ module Peddler
|
|
74
74
|
# @param next_token [String] Token to retrieve the next set of paginated results.
|
75
75
|
# @param max_results [Integer] Maximum number of results to return.
|
76
76
|
# @param rate_limit [Float] Requests per second
|
77
|
-
# @return [
|
77
|
+
# @return [Peddler::Response] The API response
|
78
78
|
def list_inventory(sku: nil, sort_order: nil, details: nil, next_token: nil, max_results: 25, rate_limit: 2.0)
|
79
79
|
path = "/awd/2024-05-09/inventory"
|
80
80
|
params = {
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def aplus_content_2020_11_01(...)
|
8
|
-
|
8
|
+
APIs::AplusContent20201101.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for A+ Content Management
|
14
14
|
#
|
15
15
|
# With the A+ Content API, you can build applications that help selling partners add rich marketing content to their
|
@@ -28,7 +28,7 @@ module Peddler
|
|
28
28
|
# other parameter will cause the request to fail. When no nextPageToken value is returned there are no more
|
29
29
|
# pages to return. A pageToken value is not usable across different operations.
|
30
30
|
# @param rate_limit [Float] Requests per second
|
31
|
-
# @return [
|
31
|
+
# @return [Peddler::Response] The API response
|
32
32
|
def search_content_documents(marketplace_id, page_token: nil, rate_limit: 10.0)
|
33
33
|
cannot_sandbox!
|
34
34
|
|
@@ -46,7 +46,7 @@ module Peddler
|
|
46
46
|
# @param marketplace_id [String] The identifier for the marketplace where the A+ Content is published.
|
47
47
|
# @param post_content_document_request [Hash] The content document request details.
|
48
48
|
# @param rate_limit [Float] Requests per second
|
49
|
-
# @return [
|
49
|
+
# @return [Peddler::Response] The API response
|
50
50
|
def create_content_document(marketplace_id, post_content_document_request, rate_limit: 10.0)
|
51
51
|
cannot_sandbox!
|
52
52
|
|
@@ -67,7 +67,7 @@ module Peddler
|
|
67
67
|
# @param marketplace_id [String] The identifier for the marketplace where the A+ Content is published.
|
68
68
|
# @param included_data_set [Array<String>] The set of A+ Content data types to include in the response.
|
69
69
|
# @param rate_limit [Float] Requests per second
|
70
|
-
# @return [
|
70
|
+
# @return [Peddler::Response] The API response
|
71
71
|
def get_content_document(content_reference_key, marketplace_id, included_data_set, rate_limit: 10.0)
|
72
72
|
cannot_sandbox!
|
73
73
|
|
@@ -88,7 +88,7 @@ module Peddler
|
|
88
88
|
# @param marketplace_id [String] The identifier for the marketplace where the A+ Content is published.
|
89
89
|
# @param post_content_document_request [Hash] The content document request details.
|
90
90
|
# @param rate_limit [Float] Requests per second
|
91
|
-
# @return [
|
91
|
+
# @return [Peddler::Response] The API response
|
92
92
|
def update_content_document(content_reference_key, marketplace_id, post_content_document_request,
|
93
93
|
rate_limit: 10.0)
|
94
94
|
cannot_sandbox!
|
@@ -118,7 +118,7 @@ module Peddler
|
|
118
118
|
# other parameter will cause the request to fail. When no nextPageToken value is returned there are no more
|
119
119
|
# pages to return. A pageToken value is not usable across different operations.
|
120
120
|
# @param rate_limit [Float] Requests per second
|
121
|
-
# @return [
|
121
|
+
# @return [Peddler::Response] The API response
|
122
122
|
def list_content_document_asin_relations(content_reference_key, marketplace_id, included_data_set: nil,
|
123
123
|
asin_set: nil, page_token: nil, rate_limit: 10.0)
|
124
124
|
cannot_sandbox!
|
@@ -144,7 +144,7 @@ module Peddler
|
|
144
144
|
# @param marketplace_id [String] The identifier for the marketplace where the A+ Content is published.
|
145
145
|
# @param post_content_document_asin_relations_request [Hash] The content document ASIN relations request details.
|
146
146
|
# @param rate_limit [Float] Requests per second
|
147
|
-
# @return [
|
147
|
+
# @return [Peddler::Response] The API response
|
148
148
|
def post_content_document_asin_relations(content_reference_key, marketplace_id,
|
149
149
|
post_content_document_asin_relations_request, rate_limit: 10.0)
|
150
150
|
cannot_sandbox!
|
@@ -164,7 +164,7 @@ module Peddler
|
|
164
164
|
# @param asin_set [Array<String>] The set of ASINs.
|
165
165
|
# @param post_content_document_request [Hash] The content document request details.
|
166
166
|
# @param rate_limit [Float] Requests per second
|
167
|
-
# @return [
|
167
|
+
# @return [Peddler::Response] The API response
|
168
168
|
def validate_content_document_asin_relations(marketplace_id, post_content_document_request, asin_set: nil,
|
169
169
|
rate_limit: 10.0)
|
170
170
|
cannot_sandbox!
|
@@ -189,7 +189,7 @@ module Peddler
|
|
189
189
|
# other parameter will cause the request to fail. When no nextPageToken value is returned there are no more
|
190
190
|
# pages to return. A pageToken value is not usable across different operations.
|
191
191
|
# @param rate_limit [Float] Requests per second
|
192
|
-
# @return [
|
192
|
+
# @return [Peddler::Response] The API response
|
193
193
|
def search_content_publish_records(marketplace_id, asin, page_token: nil, rate_limit: 10.0)
|
194
194
|
cannot_sandbox!
|
195
195
|
|
@@ -210,7 +210,7 @@ module Peddler
|
|
210
210
|
# any A+ content identifier.
|
211
211
|
# @param marketplace_id [String] The identifier for the marketplace where the A+ Content is published.
|
212
212
|
# @param rate_limit [Float] Requests per second
|
213
|
-
# @return [
|
213
|
+
# @return [Peddler::Response] The API response
|
214
214
|
def post_content_document_approval_submission(content_reference_key, marketplace_id, rate_limit: 10.0)
|
215
215
|
cannot_sandbox!
|
216
216
|
|
@@ -230,7 +230,7 @@ module Peddler
|
|
230
230
|
# any A+ content identifier.
|
231
231
|
# @param marketplace_id [String] The identifier for the marketplace where the A+ Content is published.
|
232
232
|
# @param rate_limit [Float] Requests per second
|
233
|
-
# @return [
|
233
|
+
# @return [Peddler::Response] The API response
|
234
234
|
def post_content_document_suspend_submission(content_reference_key, marketplace_id, rate_limit: 10.0)
|
235
235
|
cannot_sandbox!
|
236
236
|
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def application_integrations_2024_04_01(...)
|
8
|
-
|
8
|
+
APIs::ApplicationIntegrations20240401.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# The Selling Partner API for third party application integrations.
|
14
14
|
#
|
15
15
|
# With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the
|
@@ -20,7 +20,7 @@ module Peddler
|
|
20
20
|
# @note This operation can make a static sandbox call.
|
21
21
|
# @param body [Hash] The request body for the `createNotification` operation.
|
22
22
|
# @param rate_limit [Float] Requests per second
|
23
|
-
# @return [
|
23
|
+
# @return [Peddler::Response] The API response
|
24
24
|
def create_notification(body, rate_limit: 1.0)
|
25
25
|
path = "/appIntegrations/2024-04-01/notifications"
|
26
26
|
|
@@ -32,7 +32,7 @@ module Peddler
|
|
32
32
|
# @note This operation can make a static sandbox call.
|
33
33
|
# @param body [Hash] The request body for the `deleteNotifications` operation.
|
34
34
|
# @param rate_limit [Float] Requests per second
|
35
|
-
# @return [
|
35
|
+
# @return [Peddler::Response] The API response
|
36
36
|
def delete_notifications(body, rate_limit: 1.0)
|
37
37
|
path = "/appIntegrations/2024-04-01/notifications/deletion"
|
38
38
|
|
@@ -45,7 +45,7 @@ module Peddler
|
|
45
45
|
# @param notification_id [String] A `notificationId` uniquely identifies a notification.
|
46
46
|
# @param body [Hash] The request body for the `recordActionFeedback` operation.
|
47
47
|
# @param rate_limit [Float] Requests per second
|
48
|
-
# @return [
|
48
|
+
# @return [Peddler::Response] The API response
|
49
49
|
def record_action_feedback(notification_id, body, rate_limit: 1.0)
|
50
50
|
path = "/appIntegrations/2024-04-01/notifications/#{notification_id}/feedback"
|
51
51
|
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def application_management_2023_11_30(...)
|
8
|
-
|
8
|
+
APIs::ApplicationManagement20231130.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Application Management
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Application Management lets you programmatically update the client secret on
|
@@ -22,7 +22,7 @@ module Peddler
|
|
22
22
|
# secret](https://developer-docs.amazon.com/sp-api/v0/docs/application-management-api-v2023-11-30-use-case-guide#tutorial-rotate-your-applications-client-secret).
|
23
23
|
#
|
24
24
|
# @param rate_limit [Float] Requests per second
|
25
|
-
# @return [
|
25
|
+
# @return [Peddler::Response] The API response
|
26
26
|
def rotate_application_client_secret(rate_limit: 0.0167)
|
27
27
|
cannot_sandbox!
|
28
28
|
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def catalog_items_2020_12_01(...)
|
8
|
-
|
8
|
+
APIs::CatalogItems20201201.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Catalog Items
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Catalog Items provides programmatic access to information about items in the Amazon
|
@@ -35,7 +35,7 @@ module Peddler
|
|
35
35
|
# @param locale [String] Locale for retrieving localized summaries. Defaults to the primary locale of the
|
36
36
|
# marketplace.
|
37
37
|
# @param rate_limit [Float] Requests per second
|
38
|
-
# @return [
|
38
|
+
# @return [Peddler::Response] The API response
|
39
39
|
def search_catalog_items(keywords, marketplace_ids, included_data: "summaries", brand_names: nil,
|
40
40
|
classification_ids: nil, page_size: 10, page_token: nil, keywords_locale: nil, locale: nil, rate_limit: 2.0)
|
41
41
|
path = "/catalog/2020-12-01/items"
|
@@ -65,7 +65,7 @@ module Peddler
|
|
65
65
|
# @param locale [String] Locale for retrieving localized summaries. Defaults to the primary locale of the
|
66
66
|
# marketplace.
|
67
67
|
# @param rate_limit [Float] Requests per second
|
68
|
-
# @return [
|
68
|
+
# @return [Peddler::Response] The API response
|
69
69
|
def get_catalog_item(asin, marketplace_ids, included_data: "summaries", locale: nil, rate_limit: 2.0)
|
70
70
|
path = "/catalog/2020-12-01/items/#{asin}"
|
71
71
|
params = {
|
@@ -5,12 +5,12 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def catalog_items_2022_04_01(...)
|
8
|
-
|
8
|
+
APIs::CatalogItems20220401.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
#
|
12
|
+
module APIs
|
13
|
+
# Catalog Items v2022-04-01
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Catalog Items provides programmatic access to information about items in the Amazon
|
16
16
|
# catalog. For more information, refer to the
|
@@ -43,7 +43,7 @@ module Peddler
|
|
43
43
|
# @param keywords_locale [String] The language of the keywords provided for `keywords`-based queries. Defaults to
|
44
44
|
# the primary locale of the marketplace. **Note:** Cannot be used with `identifiers`.
|
45
45
|
# @param rate_limit [Float] Requests per second
|
46
|
-
# @return [
|
46
|
+
# @return [Peddler::Response] The API response
|
47
47
|
def search_catalog_items(marketplace_ids, identifiers: nil, identifiers_type: nil, included_data: ["summaries"],
|
48
48
|
locale: nil, seller_id: nil, keywords: nil, brand_names: nil, classification_ids: nil, page_size: 10,
|
49
49
|
page_token: nil, keywords_locale: nil, rate_limit: 2.0)
|
@@ -77,7 +77,7 @@ module Peddler
|
|
77
77
|
# @param locale [String] Locale for retrieving localized summaries. Defaults to the primary locale of the
|
78
78
|
# marketplace.
|
79
79
|
# @param rate_limit [Float] Requests per second
|
80
|
-
# @return [
|
80
|
+
# @return [Peddler::Response] The API response
|
81
81
|
def get_catalog_item(asin, marketplace_ids, included_data: ["summaries"], locale: nil, rate_limit: 2.0)
|
82
82
|
path = "/catalog/2022-04-01/items/#{asin}"
|
83
83
|
params = {
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def catalog_items_v0(...)
|
8
|
-
|
8
|
+
APIs::CatalogItemsV0.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Catalog Items
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the
|
@@ -40,7 +40,7 @@ module Peddler
|
|
40
40
|
# @param jan [String] A Japanese article number that uniquely identifies the product, manufacturer, and its
|
41
41
|
# attributes.
|
42
42
|
# @param rate_limit [Float] Requests per second
|
43
|
-
# @return [
|
43
|
+
# @return [Peddler::Response] The API response
|
44
44
|
def list_catalog_items(marketplace_id, query: nil, query_context_id: nil, seller_sku: nil, upc: nil, ean: nil,
|
45
45
|
isbn: nil, jan: nil, rate_limit: nil)
|
46
46
|
path = "/catalog/v0/items"
|
@@ -69,7 +69,7 @@ module Peddler
|
|
69
69
|
# @param marketplace_id [String] A marketplace identifier. Specifies the marketplace for the item.
|
70
70
|
# @param asin [String] The Amazon Standard Identification Number (ASIN) of the item.
|
71
71
|
# @param rate_limit [Float] Requests per second
|
72
|
-
# @return [
|
72
|
+
# @return [Peddler::Response] The API response
|
73
73
|
def get_catalog_item(marketplace_id, asin, rate_limit: nil)
|
74
74
|
path = "/catalog/v0/items/#{asin}"
|
75
75
|
params = {
|
@@ -87,7 +87,7 @@ module Peddler
|
|
87
87
|
# @param seller_sku [String] Used to identify items in the given marketplace. SellerSKU is qualified by the
|
88
88
|
# seller's SellerId, which is included with every operation that you submit.
|
89
89
|
# @param rate_limit [Float] Requests per second
|
90
|
-
# @return [
|
90
|
+
# @return [Peddler::Response] The API response
|
91
91
|
def list_catalog_categories(marketplace_id, asin: nil, seller_sku: nil, rate_limit: 1.0)
|
92
92
|
path = "/catalog/v0/categories"
|
93
93
|
params = {
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def data_kiosk_2023_11_15(...)
|
8
|
-
|
8
|
+
APIs::DataKiosk20231115.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Data Kiosk
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Data Kiosk lets you submit GraphQL queries from a variety of schemas to help selling
|
@@ -31,7 +31,7 @@ module Peddler
|
|
31
31
|
# with the request that generated this token, with the exception of `pageSize` which can be modified between
|
32
32
|
# calls to `getQueries`. In the absence of this token value, `getQueries` returns the first page of results.
|
33
33
|
# @param rate_limit [Float] Requests per second
|
34
|
-
# @return [
|
34
|
+
# @return [Peddler::Response] The API response
|
35
35
|
def get_queries(processing_statuses: nil, page_size: 10, created_since: nil, created_until: nil,
|
36
36
|
pagination_token: nil, rate_limit: 0.0222)
|
37
37
|
path = "/dataKiosk/2023-11-15/queries"
|
@@ -55,7 +55,7 @@ module Peddler
|
|
55
55
|
# @note This operation can make a static sandbox call.
|
56
56
|
# @param body [Hash] The body of the request.
|
57
57
|
# @param rate_limit [Float] Requests per second
|
58
|
-
# @return [
|
58
|
+
# @return [Peddler::Response] The API response
|
59
59
|
def create_query(body, rate_limit: 0.0167)
|
60
60
|
path = "/dataKiosk/2023-11-15/queries"
|
61
61
|
|
@@ -71,7 +71,7 @@ module Peddler
|
|
71
71
|
# @param query_id [String] The identifier for the query. This identifier is unique only in combination with a
|
72
72
|
# selling partner account ID.
|
73
73
|
# @param rate_limit [Float] Requests per second
|
74
|
-
# @return [
|
74
|
+
# @return [Peddler::Response] The API response
|
75
75
|
def cancel_query(query_id, rate_limit: 0.0222)
|
76
76
|
path = "/dataKiosk/2023-11-15/queries/#{query_id}"
|
77
77
|
|
@@ -84,7 +84,7 @@ module Peddler
|
|
84
84
|
# @note This operation can make a static sandbox call.
|
85
85
|
# @param query_id [String] The query identifier.
|
86
86
|
# @param rate_limit [Float] Requests per second
|
87
|
-
# @return [
|
87
|
+
# @return [Peddler::Response] The API response
|
88
88
|
def get_query(query_id, rate_limit: 2.0)
|
89
89
|
path = "/dataKiosk/2023-11-15/queries/#{query_id}"
|
90
90
|
|
@@ -97,7 +97,7 @@ module Peddler
|
|
97
97
|
# @note This operation can make a static sandbox call.
|
98
98
|
# @param document_id [String] The identifier for the Data Kiosk document.
|
99
99
|
# @param rate_limit [Float] Requests per second
|
100
|
-
# @return [
|
100
|
+
# @return [Peddler::Response] The API response
|
101
101
|
def get_document(document_id, rate_limit: 0.0167)
|
102
102
|
path = "/dataKiosk/2023-11-15/documents/#{document_id}"
|
103
103
|
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def easy_ship_2022_03_23(...)
|
8
|
-
|
8
|
+
APIs::EasyShip20220323.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Easy Ship
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Easy Ship helps you build applications that help sellers manage and ship Amazon Easy
|
@@ -30,7 +30,7 @@ module Peddler
|
|
30
30
|
# @note This operation can make a static sandbox call.
|
31
31
|
# @param list_handover_slots_request [Hash] The request schema for the `listHandoverSlots` operation.
|
32
32
|
# @param rate_limit [Float] Requests per second
|
33
|
-
# @return [
|
33
|
+
# @return [Peddler::Response] The API response
|
34
34
|
def list_handover_slots(list_handover_slots_request: nil, rate_limit: 1.0)
|
35
35
|
path = "/easyShip/2022-03-23/timeSlot"
|
36
36
|
body = list_handover_slots_request
|
@@ -46,7 +46,7 @@ module Peddler
|
|
46
46
|
# to deliver using Amazon Easy Ship.
|
47
47
|
# @param marketplace_id [String] An identifier for the marketplace in which the seller is selling.
|
48
48
|
# @param rate_limit [Float] Requests per second
|
49
|
-
# @return [
|
49
|
+
# @return [Peddler::Response] The API response
|
50
50
|
def get_scheduled_package(amazon_order_id, marketplace_id, rate_limit: 1.0)
|
51
51
|
path = "/easyShip/2022-03-23/package"
|
52
52
|
params = {
|
@@ -71,7 +71,7 @@ module Peddler
|
|
71
71
|
# @note This operation can make a static sandbox call.
|
72
72
|
# @param create_scheduled_package_request [Hash] The request schema for the `createScheduledPackage` operation.
|
73
73
|
# @param rate_limit [Float] Requests per second
|
74
|
-
# @return [
|
74
|
+
# @return [Peddler::Response] The API response
|
75
75
|
def create_scheduled_package(create_scheduled_package_request, rate_limit: 1.0)
|
76
76
|
path = "/easyShip/2022-03-23/package"
|
77
77
|
body = create_scheduled_package_request
|
@@ -88,7 +88,7 @@ module Peddler
|
|
88
88
|
# @note This operation can make a static sandbox call.
|
89
89
|
# @param update_scheduled_packages_request [Hash] The request schema for the `updateScheduledPackages` operation.
|
90
90
|
# @param rate_limit [Float] Requests per second
|
91
|
-
# @return [
|
91
|
+
# @return [Peddler::Response] The API response
|
92
92
|
def update_scheduled_packages(update_scheduled_packages_request: nil, rate_limit: 1.0)
|
93
93
|
path = "/easyShip/2022-03-23/package"
|
94
94
|
body = update_scheduled_packages_request
|
@@ -96,26 +96,25 @@ module Peddler
|
|
96
96
|
meter(rate_limit).patch(path, body:)
|
97
97
|
end
|
98
98
|
|
99
|
-
# This operation automatically schedules a time slot for all
|
100
|
-
# associated shipping labels
|
101
|
-
#
|
102
|
-
# marketplace
|
103
|
-
#
|
104
|
-
#
|
105
|
-
#
|
106
|
-
#
|
107
|
-
#
|
108
|
-
#
|
109
|
-
# order
|
110
|
-
#
|
111
|
-
# the failure
|
112
|
-
# rates:
|
99
|
+
# This operation automatically schedules a time slot for all specified `amazonOrderId` values and generates the
|
100
|
+
# associated shipping labels and compliance documents based on the marketplace. For more information, refer to the
|
101
|
+
# [marketplace support
|
102
|
+
# table](https://developer-docs.amazon.com/sp-api/docs/easyship-api-v2022-03-23-use-case-guide#marketplace-support-table).
|
103
|
+
# You can optionally assign a `packageDetails` object to input a preferred time slot for each order in your
|
104
|
+
# request. In such cases, Amazon schedules the respective packages using the specified optional settings. If you
|
105
|
+
# don't specify a time slot, Amazon assigns the earliest available time slot. You can choose PDF or ZPL for your
|
106
|
+
# shipping label's file format and Amazon creates the label accordingly. This operation returns an array that
|
107
|
+
# contains the scheduled packages, and a temporary URL that you can use to access a ZIP file. The ZIP file
|
108
|
+
# includes the generated shipping labels and any other documents that are required for your marketplace. If an
|
109
|
+
# order can't be scheduled, Amazon adds the `rejectedOrders` list in the response. The response contains an entry
|
110
|
+
# for each order that could not be processed. Each entry contains an error message that describes the reason for
|
111
|
+
# the failure. The following table contains the supported request and burst maximum rates:
|
113
112
|
#
|
114
113
|
# @note This operation can make a static sandbox call.
|
115
114
|
# @param create_scheduled_packages_request [Hash] The request schema for the `createScheduledPackageBulk`
|
116
115
|
# operation.
|
117
116
|
# @param rate_limit [Float] Requests per second
|
118
|
-
# @return [
|
117
|
+
# @return [Peddler::Response] The API response
|
119
118
|
def create_scheduled_package_bulk(create_scheduled_packages_request, rate_limit: 1.0)
|
120
119
|
path = "/easyShip/2022-03-23/packages/bulk"
|
121
120
|
body = create_scheduled_packages_request
|