peddler 3.0.0.beta1 → 3.0.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/README.md +96 -106
- data/lib/peddler/api/amazon_warehousing_and_distribution_2024_05_09.rb +34 -22
- data/lib/peddler/api/aplus_content_2020_11_01.rb +86 -48
- data/lib/peddler/api/application_integrations_2024_04_01.rb +56 -0
- data/lib/peddler/api/application_management_2023_11_30.rb +12 -2
- data/lib/peddler/api/catalog_items_2020_12_01.rb +31 -20
- data/lib/peddler/api/catalog_items_2022_04_01.rb +35 -25
- data/lib/peddler/api/catalog_items_v0.rb +39 -26
- data/lib/peddler/api/data_kiosk_2023_11_15.rb +41 -25
- data/lib/peddler/api/easy_ship_2022_03_23.rb +62 -43
- data/lib/peddler/api/fba_inbound_eligibility_v1.rb +13 -5
- data/lib/peddler/api/fba_inventory_v1.rb +40 -24
- data/lib/peddler/api/feeds_2021_06_30.rb +43 -25
- data/lib/peddler/api/finances_2024_06_19.rb +50 -0
- data/lib/peddler/api/finances_v0.rb +86 -59
- data/lib/peddler/api/fulfillment_inbound_2024_03_20.rb +304 -205
- data/lib/peddler/api/fulfillment_inbound_v0.rb +112 -74
- data/lib/peddler/api/fulfillment_outbound_2020_07_01.rb +90 -53
- data/lib/peddler/api/invoices_2024_06_19.rb +180 -0
- data/lib/peddler/api/listings_items_2020_09_01.rb +44 -33
- data/lib/peddler/api/listings_items_2021_08_01.rb +76 -60
- data/lib/peddler/api/listings_restrictions_2021_08_01.rb +19 -9
- data/lib/peddler/api/merchant_fulfillment_v0.rb +31 -15
- data/lib/peddler/api/messaging_v1.rb +93 -61
- data/lib/peddler/api/notifications_v1.rb +54 -23
- data/lib/peddler/api/orders_v0.rb +87 -72
- data/lib/peddler/api/product_fees_v0.rb +39 -31
- data/lib/peddler/api/product_pricing_2022_05_01.rb +17 -6
- data/lib/peddler/api/product_pricing_v0.rb +63 -45
- data/lib/peddler/api/product_type_definitions_2020_09_01.rb +29 -18
- data/lib/peddler/api/replenishment_2022_11_07.rb +21 -9
- data/lib/peddler/api/reports_2021_06_30.rb +60 -36
- data/lib/peddler/api/sales_v1.rb +20 -12
- data/lib/peddler/api/sellers_v1.rb +16 -4
- data/lib/peddler/api/services_v1.rb +138 -98
- data/lib/peddler/api/shipment_invoicing_v0.rb +25 -12
- data/lib/peddler/api/shipping_v1.rb +54 -29
- data/lib/peddler/api/shipping_v2.rb +132 -80
- data/lib/peddler/api/solicitations_v1.rb +18 -8
- data/lib/peddler/api/supply_sources_2020_07_01.rb +33 -15
- data/lib/peddler/api/tokens_2021_03_01.rb +13 -5
- data/lib/peddler/api/uploads_2020_11_01.rb +16 -6
- data/lib/peddler/api/vendor_direct_fulfillment_inventory_v1.rb +12 -4
- data/lib/peddler/api/vendor_direct_fulfillment_orders_2021_12_28.rb +29 -17
- data/lib/peddler/api/vendor_direct_fulfillment_orders_v1.rb +29 -17
- data/lib/peddler/api/vendor_direct_fulfillment_payments_v1.rb +11 -3
- data/lib/peddler/api/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.rb +14 -4
- data/lib/peddler/api/vendor_direct_fulfillment_shipping_2021_12_28.rb +74 -48
- data/lib/peddler/api/vendor_direct_fulfillment_shipping_v1.rb +74 -50
- data/lib/peddler/api/vendor_direct_fulfillment_transactions_2021_12_28.rb +11 -3
- data/lib/peddler/api/vendor_direct_fulfillment_transactions_v1.rb +11 -3
- data/lib/peddler/api/vendor_invoices_v1.rb +11 -3
- data/lib/peddler/api/vendor_orders_v1.rb +54 -43
- data/lib/peddler/api/vendor_shipments_v1.rb +63 -51
- data/lib/peddler/api/vendor_transaction_status_v1.rb +12 -3
- data/lib/peddler/api.rb +41 -18
- data/lib/peddler/endpoint.rb +51 -0
- data/lib/peddler/error.rb +1 -0
- data/lib/peddler/marketplace.rb +49 -0
- data/lib/peddler/token.rb +70 -0
- data/lib/peddler/version.rb +1 -1
- data/lib/peddler.rb +56 -52
- metadata +10 -6
- data/lib/peddler/access_token.rb +0 -76
- data/lib/peddler/region.rb +0 -30
@@ -3,6 +3,12 @@
|
|
3
3
|
require "peddler/api"
|
4
4
|
|
5
5
|
module Peddler
|
6
|
+
class << self
|
7
|
+
def catalog_items_v0(...)
|
8
|
+
API::CatalogItemsV0.new(...)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
6
12
|
class API
|
7
13
|
# Selling Partner API for Catalog Items
|
8
14
|
#
|
@@ -11,29 +17,32 @@ module Peddler
|
|
11
17
|
class CatalogItemsV0 < API
|
12
18
|
# Effective September 30, 2022, the `listCatalogItems` operation will no longer be available in the Selling
|
13
19
|
# Partner API for Catalog Items v0. As an alternative, `searchCatalogItems` is available in the latest version of
|
14
|
-
# the
|
15
|
-
# Integrations that rely on the `listCatalogItems` operation should migrate to the
|
16
|
-
# to avoid service disruption. _Note:_ The
|
17
|
-
# being deprecated and you can continue to
|
20
|
+
# the {https://developer-docs.amazon.com/sp-api/docs/catalog-items-api-v2022-04-01-reference Selling Partner API
|
21
|
+
# for Catalog Items v2022-04-01}. Integrations that rely on the `listCatalogItems` operation should migrate to the
|
22
|
+
# `searchCatalogItems`operation to avoid service disruption. _Note:_ The
|
23
|
+
# [`listCatalogCategories`](#get-catalogv0categories) operation is not being deprecated and you can continue to
|
24
|
+
# make calls to it.
|
18
25
|
#
|
19
|
-
# @
|
20
|
-
# @param [String]
|
21
|
-
# @param [String]
|
26
|
+
# @note This operation can make a static sandbox call.
|
27
|
+
# @param marketplace_id [String] A marketplace identifier. Specifies the marketplace for which items are returned.
|
28
|
+
# @param query [String] Keyword(s) to use to search for items in the catalog. Example: 'harry potter books'.
|
29
|
+
# @param query_context_id [String] An identifier for the context within which the given search will be performed.
|
22
30
|
# A marketplace might provide mechanisms for constraining a search to a subset of potential items. For example,
|
23
31
|
# the retail marketplace allows queries to be constrained to a specific category. The QueryContextId parameter
|
24
32
|
# specifies such a subset. If it is omitted, the search will be performed using the default context for the
|
25
33
|
# marketplace, which will typically contain the largest set of items.
|
26
|
-
# @param [String]
|
34
|
+
# @param seller_sku [String] Used to identify an item in the given marketplace. SellerSKU is qualified by the
|
27
35
|
# seller's SellerId, which is included with every operation that you submit.
|
28
|
-
# @param [String]
|
29
|
-
# @param [String]
|
36
|
+
# @param upc [String] A 12-digit bar code used for retail packaging.
|
37
|
+
# @param ean [String] A European article number that uniquely identifies the catalog item, manufacturer, and its
|
30
38
|
# attributes.
|
31
|
-
# @param [String]
|
32
|
-
# @param [String]
|
39
|
+
# @param isbn [String] The unique commercial book identifier used to identify books internationally.
|
40
|
+
# @param jan [String] A Japanese article number that uniquely identifies the product, manufacturer, and its
|
33
41
|
# attributes.
|
42
|
+
# @param rate_limit [Float] Requests per second
|
34
43
|
# @return [Hash] The API response
|
35
44
|
def list_catalog_items(marketplace_id, query: nil, query_context_id: nil, seller_sku: nil, upc: nil, ean: nil,
|
36
|
-
isbn: nil, jan: nil)
|
45
|
+
isbn: nil, jan: nil, rate_limit: nil)
|
37
46
|
path = "/catalog/v0/items"
|
38
47
|
params = {
|
39
48
|
"MarketplaceId" => marketplace_id,
|
@@ -50,16 +59,18 @@ module Peddler
|
|
50
59
|
end
|
51
60
|
|
52
61
|
# Effective September 30, 2022, the `getCatalogItem` operation will no longer be available in the Selling Partner
|
53
|
-
# API for Catalog Items v0. This operation is available in the latest version of the
|
54
|
-
#
|
55
|
-
# operation should migrate to the latest version to
|
56
|
-
# [`listCatalogCategories`](#get-catalogv0categories) operation is not being
|
57
|
-
# make calls to it.
|
62
|
+
# API for Catalog Items v0. This operation is available in the latest version of the
|
63
|
+
# {https://developer-docs.amazon.com/sp-api/docs/catalog-items-api-v2022-04-01-reference Selling Partner API for
|
64
|
+
# Catalog Items v2022-04-01}. Integrations that rely on this operation should migrate to the latest version to
|
65
|
+
# avoid service disruption. _Note:_ The [`listCatalogCategories`](#get-catalogv0categories) operation is not being
|
66
|
+
# deprecated and you can continue to make calls to it.
|
58
67
|
#
|
59
|
-
# @
|
60
|
-
# @param [String]
|
68
|
+
# @note This operation can make a static sandbox call.
|
69
|
+
# @param marketplace_id [String] A marketplace identifier. Specifies the marketplace for the item.
|
70
|
+
# @param asin [String] The Amazon Standard Identification Number (ASIN) of the item.
|
71
|
+
# @param rate_limit [Float] Requests per second
|
61
72
|
# @return [Hash] The API response
|
62
|
-
def get_catalog_item(marketplace_id, asin)
|
73
|
+
def get_catalog_item(marketplace_id, asin, rate_limit: nil)
|
63
74
|
path = "/catalog/v0/items/#{asin}"
|
64
75
|
params = {
|
65
76
|
"MarketplaceId" => marketplace_id,
|
@@ -70,12 +81,14 @@ module Peddler
|
|
70
81
|
|
71
82
|
# Returns the parent categories to which an item belongs, based on the specified ASIN or SellerSKU.
|
72
83
|
#
|
73
|
-
# @
|
74
|
-
# @param [String]
|
75
|
-
# @param [String]
|
84
|
+
# @note This operation can make a static sandbox call.
|
85
|
+
# @param marketplace_id [String] A marketplace identifier. Specifies the marketplace for the item.
|
86
|
+
# @param asin [String] The Amazon Standard Identification Number (ASIN) of the item.
|
87
|
+
# @param seller_sku [String] Used to identify items in the given marketplace. SellerSKU is qualified by the
|
76
88
|
# seller's SellerId, which is included with every operation that you submit.
|
89
|
+
# @param rate_limit [Float] Requests per second
|
77
90
|
# @return [Hash] The API response
|
78
|
-
def list_catalog_categories(marketplace_id, asin: nil, seller_sku: nil)
|
91
|
+
def list_catalog_categories(marketplace_id, asin: nil, seller_sku: nil, rate_limit: 1.0)
|
79
92
|
path = "/catalog/v0/categories"
|
80
93
|
params = {
|
81
94
|
"MarketplaceId" => marketplace_id,
|
@@ -83,7 +96,7 @@ module Peddler
|
|
83
96
|
"SellerSKU" => seller_sku,
|
84
97
|
}.compact
|
85
98
|
|
86
|
-
rate_limit
|
99
|
+
meter(rate_limit).get(path, params:)
|
87
100
|
end
|
88
101
|
end
|
89
102
|
end
|
@@ -3,6 +3,12 @@
|
|
3
3
|
require "peddler/api"
|
4
4
|
|
5
5
|
module Peddler
|
6
|
+
class << self
|
7
|
+
def data_kiosk_2023_11_15(...)
|
8
|
+
API::DataKiosk20231115.new(...)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
6
12
|
class API
|
7
13
|
# Selling Partner API for Data Kiosk
|
8
14
|
#
|
@@ -12,20 +18,22 @@ module Peddler
|
|
12
18
|
# Returns details for the Data Kiosk queries that match the specified filters. See the `createQuery` operation for
|
13
19
|
# details about query retention.
|
14
20
|
#
|
15
|
-
# @
|
16
|
-
# @param [
|
17
|
-
# @param [
|
21
|
+
# @note This operation can make a static sandbox call.
|
22
|
+
# @param processing_statuses [Array<String>] A list of processing statuses used to filter queries.
|
23
|
+
# @param page_size [Integer] The maximum number of queries to return in a single call.
|
24
|
+
# @param created_since [String] The earliest query creation date and time for queries to include in the response,
|
18
25
|
# in ISO 8601 date time format. The default is 90 days ago.
|
19
|
-
# @param [String]
|
26
|
+
# @param created_until [String] The latest query creation date and time for queries to include in the response, in
|
20
27
|
# ISO 8601 date time format. The default is the time of the `getQueries` request.
|
21
|
-
# @param [String]
|
28
|
+
# @param pagination_token [String] A token to fetch a certain page of results when there are multiple pages of
|
22
29
|
# results available. The value of this token is fetched from the `pagination.nextToken` field returned in the
|
23
30
|
# `GetQueriesResponse` object. All other parameters must be provided with the same values that were provided
|
24
31
|
# with the request that generated this token, with the exception of `pageSize` which can be modified between
|
25
32
|
# calls to `getQueries`. In the absence of this token value, `getQueries` returns the first page of results.
|
33
|
+
# @param rate_limit [Float] Requests per second
|
26
34
|
# @return [Hash] The API response
|
27
|
-
def get_queries(processing_statuses: nil, page_size:
|
28
|
-
pagination_token: nil)
|
35
|
+
def get_queries(processing_statuses: nil, page_size: 10, created_since: nil, created_until: nil,
|
36
|
+
pagination_token: nil, rate_limit: 0.0222)
|
29
37
|
path = "/dataKiosk/2023-11-15/queries"
|
30
38
|
params = {
|
31
39
|
"processingStatuses" => processing_statuses,
|
@@ -35,21 +43,23 @@ module Peddler
|
|
35
43
|
"paginationToken" => pagination_token,
|
36
44
|
}.compact
|
37
45
|
|
38
|
-
rate_limit
|
46
|
+
meter(rate_limit).get(path, params:)
|
39
47
|
end
|
40
48
|
|
41
|
-
# Creates a Data Kiosk query request.
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
49
|
+
# Creates a Data Kiosk query request. **Note:** The retention of a query varies based on the fields requested.
|
50
|
+
# Each field within a schema is annotated with a `@resultRetention` directive that defines how long a query
|
51
|
+
# containing that field will be retained. When a query contains multiple fields with different retentions, the
|
52
|
+
# shortest (minimum) retention is applied. The retention of a query's resulting documents always matches the
|
53
|
+
# retention of the query.
|
46
54
|
#
|
47
|
-
# @
|
55
|
+
# @note This operation can make a static sandbox call.
|
56
|
+
# @param body [Hash] The body of the request.
|
57
|
+
# @param rate_limit [Float] Requests per second
|
48
58
|
# @return [Hash] The API response
|
49
|
-
def create_query(body)
|
59
|
+
def create_query(body, rate_limit: 0.0167)
|
50
60
|
path = "/dataKiosk/2023-11-15/queries"
|
51
61
|
|
52
|
-
rate_limit
|
62
|
+
meter(rate_limit).post(path, body:)
|
53
63
|
end
|
54
64
|
|
55
65
|
# Cancels the query specified by the `queryId` parameter. Only queries with a non-terminal `processingStatus`
|
@@ -57,35 +67,41 @@ module Peddler
|
|
57
67
|
# `CANCELLED` will no-op. Cancelled queries are returned in subsequent calls to the `getQuery` and `getQueries`
|
58
68
|
# operations.
|
59
69
|
#
|
60
|
-
# @
|
70
|
+
# @note This operation can make a static sandbox call.
|
71
|
+
# @param query_id [String] The identifier for the query. This identifier is unique only in combination with a
|
61
72
|
# selling partner account ID.
|
73
|
+
# @param rate_limit [Float] Requests per second
|
62
74
|
# @return [Hash] The API response
|
63
|
-
def cancel_query(query_id)
|
75
|
+
def cancel_query(query_id, rate_limit: 0.0222)
|
64
76
|
path = "/dataKiosk/2023-11-15/queries/#{query_id}"
|
65
77
|
|
66
|
-
rate_limit
|
78
|
+
meter(rate_limit).delete(path)
|
67
79
|
end
|
68
80
|
|
69
81
|
# Returns query details for the query specified by the `queryId` parameter. See the `createQuery` operation for
|
70
82
|
# details about query retention.
|
71
83
|
#
|
72
|
-
# @
|
84
|
+
# @note This operation can make a static sandbox call.
|
85
|
+
# @param query_id [String] The query identifier.
|
86
|
+
# @param rate_limit [Float] Requests per second
|
73
87
|
# @return [Hash] The API response
|
74
|
-
def get_query(query_id)
|
88
|
+
def get_query(query_id, rate_limit: 2.0)
|
75
89
|
path = "/dataKiosk/2023-11-15/queries/#{query_id}"
|
76
90
|
|
77
|
-
rate_limit
|
91
|
+
meter(rate_limit).get(path)
|
78
92
|
end
|
79
93
|
|
80
94
|
# Returns the information required for retrieving a Data Kiosk document's contents. See the `createQuery`
|
81
95
|
# operation for details about document retention.
|
82
96
|
#
|
83
|
-
# @
|
97
|
+
# @note This operation can make a static sandbox call.
|
98
|
+
# @param document_id [String] The identifier for the Data Kiosk document.
|
99
|
+
# @param rate_limit [Float] Requests per second
|
84
100
|
# @return [Hash] The API response
|
85
|
-
def get_document(document_id)
|
101
|
+
def get_document(document_id, rate_limit: 0.0167)
|
86
102
|
path = "/dataKiosk/2023-11-15/documents/#{document_id}"
|
87
103
|
|
88
|
-
rate_limit
|
104
|
+
meter(rate_limit).get(path)
|
89
105
|
end
|
90
106
|
end
|
91
107
|
end
|
@@ -3,105 +3,124 @@
|
|
3
3
|
require "peddler/api"
|
4
4
|
|
5
5
|
module Peddler
|
6
|
+
class << self
|
7
|
+
def easy_ship_2022_03_23(...)
|
8
|
+
API::EasyShip20220323.new(...)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
6
12
|
class API
|
7
13
|
# Selling Partner API for Easy Ship
|
8
14
|
#
|
9
15
|
# The Selling Partner API for Easy Ship helps you build applications that help sellers manage and ship Amazon Easy
|
10
16
|
# Ship orders. Your Easy Ship applications can: * Get available time slots for packages to be scheduled for
|
11
17
|
# delivery. * Schedule, reschedule, and cancel Easy Ship orders. * Print labels, invoices, and warranties. See the
|
12
|
-
#
|
13
|
-
# differences in Easy Ship operations by marketplace.
|
18
|
+
# {https://developer-docs.amazon.com/sp-api/docs/easyship-api-v2022-03-23-use-case-guide#marketplace-support-table
|
19
|
+
# Marketplace Support Table} for the differences in Easy Ship operations by marketplace.
|
14
20
|
class EasyShip20220323 < API
|
15
21
|
# Returns time slots available for Easy Ship orders to be scheduled based on the package weight and dimensions
|
16
22
|
# that the seller specifies. This operation is available for scheduled and unscheduled orders based on marketplace
|
17
|
-
# support. See **Get Time Slots** in the
|
18
|
-
#
|
19
|
-
# slots that have either pickup or drop-off handover
|
20
|
-
#
|
23
|
+
# support. See **Get Time Slots** in the
|
24
|
+
# {https://developer-docs.amazon.com/sp-api/docs/easyship-api-v2022-03-23-use-case-guide#marketplace-support-table
|
25
|
+
# Marketplace Support Table}. This operation can return time slots that have either pickup or drop-off handover
|
26
|
+
# methods - see **Supported Handover Methods** in the
|
27
|
+
# {https://developer-docs.amazon.com/sp-api/docs/easyship-api-v2022-03-23-use-case-guide#marketplace-support-table
|
28
|
+
# Marketplace Support Table}.
|
21
29
|
#
|
22
|
-
# @
|
30
|
+
# @note This operation can make a static sandbox call.
|
31
|
+
# @param list_handover_slots_request [Hash] The request schema for the `listHandoverSlots` operation.
|
32
|
+
# @param rate_limit [Float] Requests per second
|
23
33
|
# @return [Hash] The API response
|
24
|
-
def list_handover_slots(list_handover_slots_request: nil)
|
34
|
+
def list_handover_slots(list_handover_slots_request: nil, rate_limit: 1.0)
|
25
35
|
path = "/easyShip/2022-03-23/timeSlot"
|
26
36
|
body = list_handover_slots_request
|
27
37
|
|
28
|
-
rate_limit
|
38
|
+
meter(rate_limit).post(path, body:)
|
29
39
|
end
|
30
40
|
|
31
41
|
# Returns information about a package, including dimensions, weight, time slot information for handover, invoice
|
32
42
|
# and item information, and status.
|
33
43
|
#
|
34
|
-
# @
|
44
|
+
# @note This operation can make a static sandbox call.
|
45
|
+
# @param amazon_order_id [String] An Amazon-defined order identifier. Identifies the order that the seller wants
|
35
46
|
# to deliver using Amazon Easy Ship.
|
36
|
-
# @param [String]
|
47
|
+
# @param marketplace_id [String] An identifier for the marketplace in which the seller is selling.
|
48
|
+
# @param rate_limit [Float] Requests per second
|
37
49
|
# @return [Hash] The API response
|
38
|
-
def get_scheduled_package(amazon_order_id, marketplace_id)
|
50
|
+
def get_scheduled_package(amazon_order_id, marketplace_id, rate_limit: 1.0)
|
39
51
|
path = "/easyShip/2022-03-23/package"
|
40
52
|
params = {
|
41
53
|
"amazonOrderId" => amazon_order_id,
|
42
54
|
"marketplaceId" => marketplace_id,
|
43
55
|
}.compact
|
44
56
|
|
45
|
-
rate_limit
|
57
|
+
meter(rate_limit).get(path, params:)
|
46
58
|
end
|
47
59
|
|
48
60
|
# Schedules an Easy Ship order and returns the scheduled package information. This operation does the following: *
|
49
61
|
# Specifies the time slot and handover method for the order to be scheduled for delivery. * Updates the Easy Ship
|
50
62
|
# order status. * Generates a shipping label and an invoice. Calling `createScheduledPackage` also generates a
|
51
|
-
# warranty document if you specify a `SerialNumber` value. To get these documents, see
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
# **Warranty** columns in the
|
56
|
-
#
|
57
|
-
# supported in each marketplace.
|
63
|
+
# warranty document if you specify a `SerialNumber` value. To get these documents, see
|
64
|
+
# {https://developer-docs.amazon.com/sp-api/docs/easyship-api-v2022-03-23-use-case-guide How to get invoice,
|
65
|
+
# shipping label, and warranty documents}. * Shows the status of Easy Ship orders when you call the `getOrders`
|
66
|
+
# operation of the Selling Partner API for Orders and examine the `EasyShipShipmentStatus` property in the
|
67
|
+
# response body. See the **Shipping Label**, **Invoice**, and **Warranty** columns in the
|
68
|
+
# {https://developer-docs.amazon.com/sp-api/docs/easyship-api-v2022-03-23-use-case-guide#marketplace-support-table
|
69
|
+
# Marketplace Support Table} to see which documents are supported in each marketplace.
|
58
70
|
#
|
59
|
-
# @
|
71
|
+
# @note This operation can make a static sandbox call.
|
72
|
+
# @param create_scheduled_package_request [Hash] The request schema for the `createScheduledPackage` operation.
|
73
|
+
# @param rate_limit [Float] Requests per second
|
60
74
|
# @return [Hash] The API response
|
61
|
-
def create_scheduled_package(create_scheduled_package_request)
|
75
|
+
def create_scheduled_package(create_scheduled_package_request, rate_limit: 1.0)
|
62
76
|
path = "/easyShip/2022-03-23/package"
|
63
77
|
body = create_scheduled_package_request
|
64
78
|
|
65
|
-
rate_limit
|
79
|
+
meter(rate_limit).post(path, body:)
|
66
80
|
end
|
67
81
|
|
68
82
|
# Updates the time slot for handing over the package indicated by the specified `scheduledPackageId`. You can get
|
69
83
|
# the new `slotId` value for the time slot by calling the `listHandoverSlots` operation before making another
|
70
|
-
# `patch` call. See the **Update Package** column in the
|
71
|
-
#
|
72
|
-
# operation is supported in.
|
84
|
+
# `patch` call. See the **Update Package** column in the
|
85
|
+
# {https://developer-docs.amazon.com/sp-api/docs/easyship-api-v2022-03-23-use-case-guide#marketplace-support-table
|
86
|
+
# Marketplace Support Table} to see which marketplaces this operation is supported in.
|
73
87
|
#
|
74
|
-
# @
|
88
|
+
# @note This operation can make a static sandbox call.
|
89
|
+
# @param update_scheduled_packages_request [Hash] The request schema for the `updateScheduledPackages` operation.
|
90
|
+
# @param rate_limit [Float] Requests per second
|
75
91
|
# @return [Hash] The API response
|
76
|
-
def update_scheduled_packages(update_scheduled_packages_request: nil)
|
92
|
+
def update_scheduled_packages(update_scheduled_packages_request: nil, rate_limit: 1.0)
|
77
93
|
path = "/easyShip/2022-03-23/package"
|
78
94
|
body = update_scheduled_packages_request
|
79
95
|
|
80
|
-
rate_limit
|
96
|
+
meter(rate_limit).patch(path, body:)
|
81
97
|
end
|
82
98
|
|
83
99
|
# This operation automatically schedules a time slot for all the `amazonOrderId`s given as input, generating the
|
84
100
|
# associated shipping labels, along with other compliance documents according to the marketplace (refer to the
|
85
|
-
#
|
86
|
-
# Developers calling this operation may optionally assign a `packageDetails`
|
87
|
-
# preferred time slot for each order in ther request. In this case, Amazon will
|
88
|
-
# packages using their optional settings. On the other hand, *i.e.*, if the time
|
89
|
-
# then pick the earliest time slot possible. Regarding the shipping label's file
|
90
|
-
# able to choose between PDF or ZPL, and Amazon will create the label accordingly.
|
91
|
-
# composed of the scheduled packages, and a short-lived URL pointing to a zip file
|
92
|
-
# shipping labels and the other documents enabled for your marketplace. If at least an
|
93
|
-
# scheduled, then Amazon adds the `rejectedOrders` list into the response, which contains an
|
94
|
-
# we couldn't process. Each entry is composed of an error message describing the reason of
|
95
|
-
# sellers can take action. The table below displays the supported request and burst maximum
|
101
|
+
# {https://developer-docs.amazon.com/sp-api/docs/easyship-api-v2022-03-23-use-case-guide#marketplace-support-table
|
102
|
+
# marketplace document support table}). Developers calling this operation may optionally assign a `packageDetails`
|
103
|
+
# object, allowing them to input a preferred time slot for each order in ther request. In this case, Amazon will
|
104
|
+
# try to schedule the respective packages using their optional settings. On the other hand, *i.e.*, if the time
|
105
|
+
# slot is not provided, Amazon will then pick the earliest time slot possible. Regarding the shipping label's file
|
106
|
+
# format, external developers are able to choose between PDF or ZPL, and Amazon will create the label accordingly.
|
107
|
+
# This operation returns an array composed of the scheduled packages, and a short-lived URL pointing to a zip file
|
108
|
+
# containing the generated shipping labels and the other documents enabled for your marketplace. If at least an
|
109
|
+
# order couldn't be scheduled, then Amazon adds the `rejectedOrders` list into the response, which contains an
|
110
|
+
# entry for each order we couldn't process. Each entry is composed of an error message describing the reason of
|
111
|
+
# the failure, so that sellers can take action. The table below displays the supported request and burst maximum
|
112
|
+
# rates:
|
96
113
|
#
|
97
|
-
# @
|
114
|
+
# @note This operation can make a static sandbox call.
|
115
|
+
# @param create_scheduled_packages_request [Hash] The request schema for the `createScheduledPackageBulk`
|
98
116
|
# operation.
|
117
|
+
# @param rate_limit [Float] Requests per second
|
99
118
|
# @return [Hash] The API response
|
100
|
-
def create_scheduled_package_bulk(create_scheduled_packages_request)
|
119
|
+
def create_scheduled_package_bulk(create_scheduled_packages_request, rate_limit: 1.0)
|
101
120
|
path = "/easyShip/2022-03-23/packages/bulk"
|
102
121
|
body = create_scheduled_packages_request
|
103
122
|
|
104
|
-
rate_limit
|
123
|
+
meter(rate_limit).post(path, body:)
|
105
124
|
end
|
106
125
|
end
|
107
126
|
end
|
@@ -3,6 +3,12 @@
|
|
3
3
|
require "peddler/api"
|
4
4
|
|
5
5
|
module Peddler
|
6
|
+
class << self
|
7
|
+
def fba_inbound_eligibility_v1(...)
|
8
|
+
API::FBAInboundEligibilityV1.new(...)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
6
12
|
class API
|
7
13
|
# Selling Partner API for FBA Inbound Eligibilty
|
8
14
|
#
|
@@ -16,12 +22,14 @@ module Peddler
|
|
16
22
|
# preview that you want (INBOUND or COMMINGLING). For INBOUND previews, you can specify the marketplace in which
|
17
23
|
# you want to determine the item's eligibility.
|
18
24
|
#
|
19
|
-
# @
|
25
|
+
# @note This operation can make a static sandbox call.
|
26
|
+
# @param marketplace_ids [Array<String>] The identifier for the marketplace in which you want to determine
|
20
27
|
# eligibility. Required only when program=INBOUND.
|
21
|
-
# @param [String]
|
22
|
-
# @param [String]
|
28
|
+
# @param asin [String] The ASIN of the item for which you want an eligibility preview.
|
29
|
+
# @param program [String] The program that you want to check eligibility against.
|
30
|
+
# @param rate_limit [Float] Requests per second
|
23
31
|
# @return [Hash] The API response
|
24
|
-
def get_item_eligibility_preview(asin, program, marketplace_ids: nil)
|
32
|
+
def get_item_eligibility_preview(asin, program, marketplace_ids: nil, rate_limit: 1.0)
|
25
33
|
path = "/fba/inbound/v1/eligibility/itemPreview"
|
26
34
|
params = {
|
27
35
|
"marketplaceIds" => marketplace_ids,
|
@@ -29,7 +37,7 @@ module Peddler
|
|
29
37
|
"program" => program,
|
30
38
|
}.compact
|
31
39
|
|
32
|
-
rate_limit
|
40
|
+
meter(rate_limit).get(path, params:)
|
33
41
|
end
|
34
42
|
end
|
35
43
|
end
|
@@ -3,6 +3,12 @@
|
|
3
3
|
require "peddler/api"
|
4
4
|
|
5
5
|
module Peddler
|
6
|
+
class << self
|
7
|
+
def fba_inventory_v1(...)
|
8
|
+
API::FBAInventoryV1.new(...)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
6
12
|
class API
|
7
13
|
# Selling Partner API for FBA Inventory
|
8
14
|
#
|
@@ -19,30 +25,28 @@ module Peddler
|
|
19
25
|
# sellerSkus. The sellerSku parameter is ignored. - When the sellerSku parameter is provided, the operation
|
20
26
|
# returns inventory summaries for only the specified sellerSku. Note: The parameters associated with this
|
21
27
|
# operation may contain special characters that must be encoded to successfully call the API. To avoid errors with
|
22
|
-
# SKUs when encoding URLs, refer to URL Encoding.
|
23
|
-
# | | 2 | 2 | The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to
|
24
|
-
# the requested operation, when available. The table above indicates the default rate and burst values for this
|
25
|
-
# operation. Selling partners whose business demands require higher throughput may see higher rate and burst
|
26
|
-
# values than those shown here. For more information, see Usage Plans and Rate Limits in the Selling Partner API.
|
28
|
+
# SKUs when encoding URLs, refer to [URL Encoding](https://developer-docs.amazon.com/sp-api/docs/url-encoding).
|
27
29
|
#
|
28
|
-
# @
|
30
|
+
# @note This operation can make a dynamic sandbox call.
|
31
|
+
# @param details [Boolean] true to return inventory summaries with additional summarized inventory details and
|
29
32
|
# quantities. Otherwise, returns inventory summaries only (default value).
|
30
|
-
# @param [String]
|
31
|
-
# @param [String]
|
32
|
-
# @param [String]
|
33
|
+
# @param granularity_type [String] The granularity type for the inventory aggregation level.
|
34
|
+
# @param granularity_id [String] The granularity ID for the inventory aggregation level.
|
35
|
+
# @param start_date_time [String] A start date and time in ISO8601 format. If specified, all inventory summaries
|
33
36
|
# that have changed since then are returned. You must specify a date and time that is no earlier than 18 months
|
34
37
|
# prior to the date and time when you call the API. Note: Changes in inboundWorkingQuantity,
|
35
38
|
# inboundShippedQuantity and inboundReceivingQuantity are not detected.
|
36
|
-
# @param [Array<String>]
|
39
|
+
# @param seller_skus [Array<String>] A list of seller SKUs for which to return inventory summaries. You may
|
37
40
|
# specify up to 50 SKUs.
|
38
|
-
# @param [String]
|
39
|
-
# @param [String]
|
41
|
+
# @param seller_sku [String] A single seller SKU used for querying the specified seller SKU inventory summaries.
|
42
|
+
# @param next_token [String] String token returned in the response of your previous request. The string token will
|
40
43
|
# expire 30 seconds after being created.
|
41
|
-
# @param [Array<String>]
|
44
|
+
# @param marketplace_ids [Array<String>] The marketplace ID for the marketplace for which to return inventory
|
42
45
|
# summaries.
|
46
|
+
# @param rate_limit [Float] Requests per second
|
43
47
|
# @return [Hash] The API response
|
44
|
-
def get_inventory_summaries(granularity_type, granularity_id, marketplace_ids, details: nil,
|
45
|
-
|
48
|
+
def get_inventory_summaries(granularity_type, granularity_id, marketplace_ids, details: nil, start_date_time: nil,
|
49
|
+
seller_skus: nil, seller_sku: nil, next_token: nil, rate_limit: 2.0)
|
46
50
|
path = "/fba/inventory/v1/summaries"
|
47
51
|
params = {
|
48
52
|
"details" => details,
|
@@ -55,16 +59,20 @@ module Peddler
|
|
55
59
|
"marketplaceIds" => marketplace_ids,
|
56
60
|
}.compact
|
57
61
|
|
58
|
-
rate_limit
|
62
|
+
meter(rate_limit).get(path, params:)
|
59
63
|
end
|
60
64
|
|
61
65
|
# Requests that Amazon create product-details in the Sandbox Inventory in the sandbox environment. This is a
|
62
66
|
# sandbox-only operation and must be directed to a sandbox endpoint. Refer to [Selling Partner API
|
63
67
|
# sandbox](https://developer-docs.amazon.com/sp-api/docs/the-selling-partner-api-sandbox) for more information.
|
64
68
|
#
|
65
|
-
# @
|
69
|
+
# @note This operation can make a dynamic sandbox call.
|
70
|
+
# @param create_inventory_item_request_body [Hash] CreateInventoryItem Request Body Parameter.
|
71
|
+
# @param rate_limit [Float] Requests per second
|
66
72
|
# @return [Hash] The API response
|
67
|
-
def create_inventory_item(create_inventory_item_request_body)
|
73
|
+
def create_inventory_item(create_inventory_item_request_body, rate_limit: nil)
|
74
|
+
must_sandbox!
|
75
|
+
|
68
76
|
path = "/fba/inventory/v1/items"
|
69
77
|
body = create_inventory_item_request_body
|
70
78
|
|
@@ -75,10 +83,14 @@ module Peddler
|
|
75
83
|
# sandbox-only operation and must be directed to a sandbox endpoint. Refer to [Selling Partner API
|
76
84
|
# sandbox](https://developer-docs.amazon.com/sp-api/docs/the-selling-partner-api-sandbox) for more information.
|
77
85
|
#
|
78
|
-
# @
|
79
|
-
# @param [String]
|
86
|
+
# @note This operation can make a dynamic sandbox call.
|
87
|
+
# @param seller_sku [String] A single seller SKU used for querying the specified seller SKU inventory summaries.
|
88
|
+
# @param marketplace_id [String] The marketplace ID for the marketplace for which the sellerSku is to be deleted.
|
89
|
+
# @param rate_limit [Float] Requests per second
|
80
90
|
# @return [Hash] The API response
|
81
|
-
def delete_inventory_item(seller_sku, marketplace_id)
|
91
|
+
def delete_inventory_item(seller_sku, marketplace_id, rate_limit: nil)
|
92
|
+
must_sandbox!
|
93
|
+
|
82
94
|
path = "/fba/inventory/v1/items/#{seller_sku}"
|
83
95
|
params = {
|
84
96
|
"marketplaceId" => marketplace_id,
|
@@ -92,10 +104,14 @@ module Peddler
|
|
92
104
|
# Partner API sandbox](https://developer-docs.amazon.com/sp-api/docs/the-selling-partner-api-sandbox) for more
|
93
105
|
# information.
|
94
106
|
#
|
95
|
-
# @
|
96
|
-
# @param [
|
107
|
+
# @note This operation can make a dynamic sandbox call.
|
108
|
+
# @param x_amzn_idempotency_token [String] A unique token/requestId provided with each call to ensure idempotency.
|
109
|
+
# @param add_inventory_request_body [Hash] List of items to add to Sandbox inventory.
|
110
|
+
# @param rate_limit [Float] Requests per second
|
97
111
|
# @return [Hash] The API response
|
98
|
-
def add_inventory(x_amzn_idempotency_token, add_inventory_request_body)
|
112
|
+
def add_inventory(x_amzn_idempotency_token, add_inventory_request_body, rate_limit: nil)
|
113
|
+
must_sandbox!
|
114
|
+
|
99
115
|
path = "/fba/inventory/v1/items/inventory"
|
100
116
|
body = add_inventory_request_body
|
101
117
|
|