peddler 2.4.5 → 3.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +406 -134
- data/lib/peddler/access_token.rb +76 -0
- data/lib/peddler/api/amazon_warehousing_and_distribution_2024_05_09.rb +80 -0
- data/lib/peddler/api/aplus_content_2020_11_01.rb +208 -0
- data/lib/peddler/api/application_management_2023_11_30.rb +25 -0
- data/lib/peddler/api/catalog_items_2020_12_01.rb +70 -0
- data/lib/peddler/api/catalog_items_2022_04_01.rb +83 -0
- data/lib/peddler/api/catalog_items_v0.rb +90 -0
- data/lib/peddler/api/data_kiosk_2023_11_15.rb +92 -0
- data/lib/peddler/api/easy_ship_2022_03_23.rb +108 -0
- data/lib/peddler/api/fba_inbound_eligibility_v1.rb +36 -0
- data/lib/peddler/api/fba_inventory_v1.rb +106 -0
- data/lib/peddler/api/feeds_2021_06_30.rb +104 -0
- data/lib/peddler/api/finances_v0.rb +121 -0
- data/lib/peddler/api/fulfillment_inbound_2024_03_20.rb +660 -0
- data/lib/peddler/api/fulfillment_inbound_v0.rb +314 -0
- data/lib/peddler/api/fulfillment_outbound_2020_07_01.rb +222 -0
- data/lib/peddler/api/listings_items_2020_09_01.rb +84 -0
- data/lib/peddler/api/listings_items_2021_08_01.rb +154 -0
- data/lib/peddler/api/listings_restrictions_2021_08_01.rb +37 -0
- data/lib/peddler/api/merchant_fulfillment_v0.rb +64 -0
- data/lib/peddler/api/messaging_v1.rb +241 -0
- data/lib/peddler/api/notifications_v1.rb +114 -0
- data/lib/peddler/api/orders_v0.rb +264 -0
- data/lib/peddler/api/product_fees_v0.rb +69 -0
- data/lib/peddler/api/product_pricing_2022_05_01.rb +43 -0
- data/lib/peddler/api/product_pricing_v0.rb +144 -0
- data/lib/peddler/api/product_type_definitions_2020_09_01.rb +75 -0
- data/lib/peddler/api/replenishment_2022_11_07.rb +45 -0
- data/lib/peddler/api/reports_2021_06_30.rb +139 -0
- data/lib/peddler/api/sales_v1.rb +69 -0
- data/lib/peddler/api/sellers_v1.rb +33 -0
- data/lib/peddler/api/services_v1.rb +308 -0
- data/lib/peddler/api/shipment_invoicing_v0.rb +46 -0
- data/lib/peddler/api/shipping_v1.rb +107 -0
- data/lib/peddler/api/shipping_v2.rb +267 -0
- data/lib/peddler/api/solicitations_v1.rb +53 -0
- data/lib/peddler/api/supply_sources_2020_07_01.rb +82 -0
- data/lib/peddler/api/tokens_2021_03_01.rb +30 -0
- data/lib/peddler/api/uploads_2020_11_01.rb +40 -0
- data/lib/peddler/api/vendor_direct_fulfillment_inventory_v1.rb +24 -0
- data/lib/peddler/api/vendor_direct_fulfillment_orders_2021_12_28.rb +72 -0
- data/lib/peddler/api/vendor_direct_fulfillment_orders_v1.rb +72 -0
- data/lib/peddler/api/vendor_direct_fulfillment_payments_v1.rb +23 -0
- data/lib/peddler/api/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.rb +35 -0
- data/lib/peddler/api/vendor_direct_fulfillment_shipping_2021_12_28.rb +177 -0
- data/lib/peddler/api/vendor_direct_fulfillment_shipping_v1.rb +165 -0
- data/lib/peddler/api/vendor_direct_fulfillment_transactions_2021_12_28.rb +24 -0
- data/lib/peddler/api/vendor_direct_fulfillment_transactions_v1.rb +24 -0
- data/lib/peddler/api/vendor_invoices_v1.rb +22 -0
- data/lib/peddler/api/vendor_orders_v1.rb +148 -0
- data/lib/peddler/api/vendor_shipments_v1.rb +120 -0
- data/lib/peddler/api/vendor_transaction_status_v1.rb +24 -0
- data/lib/peddler/api.rb +115 -0
- data/lib/peddler/error.rb +30 -0
- data/lib/peddler/region.rb +30 -0
- data/lib/peddler/version.rb +1 -1
- data/lib/peddler.rb +52 -1
- metadata +70 -80
- data/lib/mws/easy_ship/client.rb +0 -93
- data/lib/mws/easy_ship.rb +0 -3
- data/lib/mws/feeds/client.rb +0 -122
- data/lib/mws/feeds.rb +0 -3
- data/lib/mws/finances/client.rb +0 -82
- data/lib/mws/finances.rb +0 -3
- data/lib/mws/fulfillment_inbound_shipment/client.rb +0 -388
- data/lib/mws/fulfillment_inbound_shipment.rb +0 -3
- data/lib/mws/fulfillment_inventory/client.rb +0 -57
- data/lib/mws/fulfillment_inventory.rb +0 -3
- data/lib/mws/fulfillment_outbound_shipment/client.rb +0 -211
- data/lib/mws/fulfillment_outbound_shipment.rb +0 -3
- data/lib/mws/merchant_fulfillment/client.rb +0 -87
- data/lib/mws/merchant_fulfillment.rb +0 -3
- data/lib/mws/off_amazon_payments.rb +0 -3
- data/lib/mws/orders/client.rb +0 -120
- data/lib/mws/orders.rb +0 -3
- data/lib/mws/products/client.rb +0 -268
- data/lib/mws/products.rb +0 -3
- data/lib/mws/recommendations/client.rb +0 -72
- data/lib/mws/recommendations.rb +0 -3
- data/lib/mws/reports/client.rb +0 -236
- data/lib/mws/reports.rb +0 -3
- data/lib/mws/sellers/client.rb +0 -44
- data/lib/mws/sellers.rb +0 -3
- data/lib/mws/shipment_invoicing/client.rb +0 -74
- data/lib/mws/shipment_invoicing.rb +0 -3
- data/lib/mws/subscriptions/client.rb +0 -179
- data/lib/mws/subscriptions.rb +0 -3
- data/lib/mws.rb +0 -29
- data/lib/peddler/client.rb +0 -159
- data/lib/peddler/errors/builder.rb +0 -64
- data/lib/peddler/errors/class_generator.rb +0 -40
- data/lib/peddler/errors/error.rb +0 -45
- data/lib/peddler/errors/parser.rb +0 -28
- data/lib/peddler/flat_file_parser.rb +0 -56
- data/lib/peddler/headers.rb +0 -102
- data/lib/peddler/marketplace.rb +0 -79
- data/lib/peddler/operation.rb +0 -78
- data/lib/peddler/parser.rb +0 -33
- data/lib/peddler/structured_list.rb +0 -23
- data/lib/peddler/vcr_matcher.rb +0 -97
- data/lib/peddler/xml_parser.rb +0 -38
- data/lib/peddler/xml_response_parser.rb +0 -25
@@ -0,0 +1,154 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "peddler/api"
|
4
|
+
|
5
|
+
module Peddler
|
6
|
+
class API
|
7
|
+
# Selling Partner API for Listings Items
|
8
|
+
#
|
9
|
+
# The Selling Partner API for Listings Items (Listings Items API) provides programmatic access to selling partner
|
10
|
+
# listings on Amazon. Use this API in collaboration with the Selling Partner API for Product Type Definitions, which
|
11
|
+
# you use to retrieve the information about Amazon product types needed to use the Listings Items API. For more
|
12
|
+
# information, see the [Listings Items API Use Case
|
13
|
+
# Guide](https://developer-docs.amazon.com/sp-api/docs/listings-items-api-v2021-08-01-use-case-guide).
|
14
|
+
class ListingsItems20210801 < API
|
15
|
+
# Delete a listings item for a selling partner.
|
16
|
+
# @note The parameters associated with this operation may contain special characters that must be encoded to
|
17
|
+
# successfully call the API. To avoid errors with SKUs when encoding URLs, refer to [URL
|
18
|
+
# Encoding](https://developer-docs.amazon.com/sp-api/docs/url-encoding).
|
19
|
+
#
|
20
|
+
# @param [String] seller_id A selling partner identifier, such as a merchant account or vendor code.
|
21
|
+
# @param [String] sku A selling partner provided identifier for an Amazon listing.
|
22
|
+
# @param [Array<String>] marketplace_ids A comma-delimited list of Amazon marketplace identifiers for the request.
|
23
|
+
# @param [String] issue_locale A locale for localization of issues. When not provided, the default language code
|
24
|
+
# of the first marketplace is used. Examples: `en_US`, `fr_CA`, `fr_FR`. Localized messages default to `en_US`
|
25
|
+
# when a localization is not available in the specified locale.
|
26
|
+
# @return [Hash] The API response
|
27
|
+
def delete_listings_item(seller_id, sku, marketplace_ids, issue_locale: nil)
|
28
|
+
path = "/listings/2021-08-01/items/#{seller_id}/#{sku}"
|
29
|
+
params = {
|
30
|
+
"marketplaceIds" => marketplace_ids,
|
31
|
+
"issueLocale" => issue_locale,
|
32
|
+
}.compact
|
33
|
+
|
34
|
+
rate_limit(5.0).delete(path, params:)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Returns details about a listings item for a selling partner.
|
38
|
+
# @note The parameters associated with this operation may contain special characters that must be encoded to
|
39
|
+
# successfully call the API. To avoid errors with SKUs when encoding URLs, refer to [URL
|
40
|
+
# Encoding](https://developer-docs.amazon.com/sp-api/docs/url-encoding).
|
41
|
+
#
|
42
|
+
# @param [String] seller_id A selling partner identifier, such as a merchant account or vendor code.
|
43
|
+
# @param [String] sku A selling partner provided identifier for an Amazon listing.
|
44
|
+
# @param [Array<String>] marketplace_ids A comma-delimited list of Amazon marketplace identifiers for the request.
|
45
|
+
# @param [String] issue_locale A locale for localization of issues. When not provided, the default language code
|
46
|
+
# of the first marketplace is used. Examples: `en_US`, `fr_CA`, `fr_FR`. Localized messages default to `en_US`
|
47
|
+
# when a localization is not available in the specified locale.
|
48
|
+
# @param [Array<String>] included_data A comma-delimited list of data sets to include in the response. Default:
|
49
|
+
# `summaries`.
|
50
|
+
# @return [Hash] The API response
|
51
|
+
def get_listings_item(seller_id, sku, marketplace_ids, issue_locale: nil, included_data: nil)
|
52
|
+
path = "/listings/2021-08-01/items/#{seller_id}/#{sku}"
|
53
|
+
params = {
|
54
|
+
"marketplaceIds" => marketplace_ids,
|
55
|
+
"issueLocale" => issue_locale,
|
56
|
+
"includedData" => included_data,
|
57
|
+
}.compact
|
58
|
+
|
59
|
+
rate_limit(5.0).get(path, params:)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Partially update (patch) a listings item for a selling partner. Only top-level listings item attributes can be
|
63
|
+
# patched. Patching nested attributes is not supported.
|
64
|
+
# @note This operation has a throttling rate of one request per second when `mode` is `VALIDATION_PREVIEW`.
|
65
|
+
# @note The parameters associated with this operation may contain special characters that must be encoded to
|
66
|
+
# successfully call the API. To avoid errors with SKUs when encoding URLs, refer to [URL
|
67
|
+
# Encoding](https://developer-docs.amazon.com/sp-api/docs/url-encoding).
|
68
|
+
#
|
69
|
+
# @param [String] seller_id A selling partner identifier, such as a merchant account or vendor code.
|
70
|
+
# @param [String] sku A selling partner provided identifier for an Amazon listing.
|
71
|
+
# @param [Array<String>] marketplace_ids A comma-delimited list of Amazon marketplace identifiers for the request.
|
72
|
+
# @param [Array<String>] included_data A comma-delimited list of data sets to include in the response. Default:
|
73
|
+
# `issues`.
|
74
|
+
# @param [String] mode The mode of operation for the request.
|
75
|
+
# @param [String] issue_locale A locale for localization of issues. When not provided, the default language code
|
76
|
+
# of the first marketplace is used. Examples: `en_US`, `fr_CA`, `fr_FR`. Localized messages default to `en_US`
|
77
|
+
# when a localization is not available in the specified locale.
|
78
|
+
# @param [Hash] body The request body schema for the `patchListingsItem` operation.
|
79
|
+
# @return [Hash] The API response
|
80
|
+
def patch_listings_item(seller_id, sku, marketplace_ids, body, included_data: nil, mode: nil, issue_locale: nil)
|
81
|
+
path = "/listings/2021-08-01/items/#{seller_id}/#{sku}"
|
82
|
+
params = {
|
83
|
+
"marketplaceIds" => marketplace_ids,
|
84
|
+
"includedData" => included_data,
|
85
|
+
"mode" => mode,
|
86
|
+
"issueLocale" => issue_locale,
|
87
|
+
}.compact
|
88
|
+
|
89
|
+
rate_limit(5.0).patch(path, body:, params:)
|
90
|
+
end
|
91
|
+
|
92
|
+
# Creates or fully updates an existing listings item for a selling partner.
|
93
|
+
# @note This operation has a throttling rate of one request per second when `mode` is `VALIDATION_PREVIEW`.
|
94
|
+
# @note The parameters associated with this operation may contain special characters that must be encoded to
|
95
|
+
# successfully call the API. To avoid errors with SKUs when encoding URLs, refer to [URL
|
96
|
+
# Encoding](https://developer-docs.amazon.com/sp-api/docs/url-encoding).
|
97
|
+
#
|
98
|
+
# @param [String] seller_id A selling partner identifier, such as a merchant account or vendor code.
|
99
|
+
# @param [String] sku A selling partner provided identifier for an Amazon listing.
|
100
|
+
# @param [Array<String>] marketplace_ids A comma-delimited list of Amazon marketplace identifiers for the request.
|
101
|
+
# @param [Array<String>] included_data A comma-delimited list of data sets to include in the response. Default:
|
102
|
+
# `issues`.
|
103
|
+
# @param [String] mode The mode of operation for the request.
|
104
|
+
# @param [String] issue_locale A locale for localization of issues. When not provided, the default language code
|
105
|
+
# of the first marketplace is used. Examples: `en_US`, `fr_CA`, `fr_FR`. Localized messages default to `en_US`
|
106
|
+
# when a localization is not available in the specified locale.
|
107
|
+
# @param [Hash] body The request body schema for the `putListingsItem` operation.
|
108
|
+
# @return [Hash] The API response
|
109
|
+
def put_listings_item(seller_id, sku, marketplace_ids, body, included_data: nil, mode: nil, issue_locale: nil)
|
110
|
+
path = "/listings/2021-08-01/items/#{seller_id}/#{sku}"
|
111
|
+
params = {
|
112
|
+
"marketplaceIds" => marketplace_ids,
|
113
|
+
"includedData" => included_data,
|
114
|
+
"mode" => mode,
|
115
|
+
"issueLocale" => issue_locale,
|
116
|
+
}.compact
|
117
|
+
|
118
|
+
rate_limit(5.0).put(path, body:, params:)
|
119
|
+
end
|
120
|
+
|
121
|
+
# Search for and return list of listings items and respective details for a selling partner.
|
122
|
+
#
|
123
|
+
# @param [String] seller_id A selling partner identifier, such as a merchant account or vendor code.
|
124
|
+
# @param [Array<String>] marketplace_ids A comma-delimited list of Amazon marketplace identifiers for the request.
|
125
|
+
# @param [Array<String>] identifiers A comma-delimited list of product identifiers to search for listings items
|
126
|
+
# by. **Note**: 1. Required when `identifiersType` is provided.
|
127
|
+
# @param [String] identifiers_type Type of product identifiers to search for listings items by. **Note**: 1.
|
128
|
+
# Required when `identifiers` is provided.
|
129
|
+
# @param [Integer] page_size Number of results to be returned per page.
|
130
|
+
# @param [String] page_token A token to fetch a certain page when there are multiple pages worth of results.
|
131
|
+
# @param [Array<String>] included_data A comma-delimited list of data sets to include in the response. Default:
|
132
|
+
# summaries.
|
133
|
+
# @param [String] issue_locale A locale for localization of issues. When not provided, the default language code
|
134
|
+
# of the first marketplace is used. Examples: "en_US", "fr_CA", "fr_FR". Localized messages default to "en_US"
|
135
|
+
# when a localization is not available in the specified locale.
|
136
|
+
# @return [Hash] The API response
|
137
|
+
def search_listings_items(seller_id, marketplace_ids, identifiers: nil, identifiers_type: nil, page_size: nil,
|
138
|
+
page_token: nil, included_data: nil, issue_locale: nil)
|
139
|
+
path = "/listings/2021-08-01/items/#{seller_id}"
|
140
|
+
params = {
|
141
|
+
"marketplaceIds" => marketplace_ids,
|
142
|
+
"identifiers" => identifiers,
|
143
|
+
"identifiersType" => identifiers_type,
|
144
|
+
"pageSize" => page_size,
|
145
|
+
"pageToken" => page_token,
|
146
|
+
"includedData" => included_data,
|
147
|
+
"issueLocale" => issue_locale,
|
148
|
+
}.compact
|
149
|
+
|
150
|
+
rate_limit(5.0).get(path, params:)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "peddler/api"
|
4
|
+
|
5
|
+
module Peddler
|
6
|
+
class API
|
7
|
+
# Selling Partner API for Listings Restrictions
|
8
|
+
#
|
9
|
+
# The Selling Partner API for Listings Restrictions provides programmatic access to restrictions on Amazon catalog
|
10
|
+
# listings. For more information, see the [Listings Restrictions API Use Case
|
11
|
+
# Guide](doc:listings-restrictions-api-v2021-08-01-use-case-guide).
|
12
|
+
class ListingsRestrictions20210801 < API
|
13
|
+
# Returns listing restrictions for an item in the Amazon Catalog.
|
14
|
+
#
|
15
|
+
# @param [String] asin The Amazon Standard Identification Number (ASIN) of the item.
|
16
|
+
# @param [String] condition_type The condition used to filter restrictions.
|
17
|
+
# @param [String] seller_id A selling partner identifier, such as a merchant account.
|
18
|
+
# @param [Array<String>] marketplace_ids A comma-delimited list of Amazon marketplace identifiers for the request.
|
19
|
+
# @param [String] reason_locale A locale for reason text localization. When not provided, the default language
|
20
|
+
# code of the first marketplace is used. Examples: "en_US", "fr_CA", "fr_FR". Localized messages default to
|
21
|
+
# "en_US" when a localization is not available in the specified locale.
|
22
|
+
# @return [Hash] The API response
|
23
|
+
def get_listings_restrictions(asin, seller_id, marketplace_ids, condition_type: nil, reason_locale: nil)
|
24
|
+
path = "/listings/2021-08-01/restrictions"
|
25
|
+
params = {
|
26
|
+
"asin" => asin,
|
27
|
+
"conditionType" => condition_type,
|
28
|
+
"sellerId" => seller_id,
|
29
|
+
"marketplaceIds" => marketplace_ids,
|
30
|
+
"reasonLocale" => reason_locale,
|
31
|
+
}.compact
|
32
|
+
|
33
|
+
rate_limit(5.0).get(path, params:)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "peddler/api"
|
4
|
+
|
5
|
+
module Peddler
|
6
|
+
class API
|
7
|
+
# Selling Partner API for Merchant Fulfillment
|
8
|
+
#
|
9
|
+
# The Selling Partner API for Merchant Fulfillment helps you build applications that let sellers purchase shipping
|
10
|
+
# for non-Prime and Prime orders using Amazon’s Buy Shipping Services.
|
11
|
+
class MerchantFulfillmentV0 < API
|
12
|
+
# Returns a list of shipping service offers that satisfy the specified shipment request details.
|
13
|
+
#
|
14
|
+
# @param [Hash] body Request schema for GetEligibleShipmentServices operation.
|
15
|
+
# @return [Hash] The API response
|
16
|
+
def get_eligible_shipment_services(body)
|
17
|
+
path = "/mfn/v0/eligibleShippingServices"
|
18
|
+
|
19
|
+
rate_limit(5.0).post(path, body:)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Returns the shipment information for an existing shipment.
|
23
|
+
#
|
24
|
+
# @param [String] shipment_id The Amazon-defined shipment identifier for the shipment.
|
25
|
+
# @return [Hash] The API response
|
26
|
+
def get_shipment(shipment_id)
|
27
|
+
path = "/mfn/v0/shipments/#{shipment_id}"
|
28
|
+
|
29
|
+
rate_limit(1.0).get(path)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Cancel the shipment indicated by the specified shipment identifier.
|
33
|
+
#
|
34
|
+
# @param [String] shipment_id The Amazon-defined shipment identifier for the shipment to cancel.
|
35
|
+
# @return [Hash] The API response
|
36
|
+
def cancel_shipment(shipment_id)
|
37
|
+
path = "/mfn/v0/shipments/#{shipment_id}"
|
38
|
+
|
39
|
+
rate_limit(1.0).delete(path)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Create a shipment with the information provided.
|
43
|
+
#
|
44
|
+
# @param [Hash] body Request schema for CreateShipment operation.
|
45
|
+
# @return [Hash] The API response
|
46
|
+
def create_shipment(body)
|
47
|
+
path = "/mfn/v0/shipments"
|
48
|
+
|
49
|
+
rate_limit(1.0).post(path, body:)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Gets a list of additional seller inputs required for a ship method. This is generally used for international
|
53
|
+
# shipping.
|
54
|
+
#
|
55
|
+
# @param [Hash] body Request schema for GetAdditionalSellerInputs operation.
|
56
|
+
# @return [Hash] The API response
|
57
|
+
def get_additional_seller_inputs(body)
|
58
|
+
path = "/mfn/v0/additionalSellerInputs"
|
59
|
+
|
60
|
+
rate_limit(1.0).post(path, body:)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,241 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "peddler/api"
|
4
|
+
|
5
|
+
module Peddler
|
6
|
+
class API
|
7
|
+
# Selling Partner API for Messaging
|
8
|
+
#
|
9
|
+
# With the Messaging API you can build applications that send messages to buyers. You can get a list of message
|
10
|
+
# types that are available for an order that you specify, then call an operation that sends a message to the buyer
|
11
|
+
# for that order. The Messaging API returns responses that are formed according to the <a
|
12
|
+
# href=https://tools.ietf.org/html/draft-kelly-json-hal-08>JSON Hypertext Application Language</a> (HAL) standard.
|
13
|
+
class MessagingV1 < API
|
14
|
+
# Returns a list of message types that are available for an order that you specify. A message type is represented
|
15
|
+
# by an actions object, which contains a path and query parameter(s). You can use the path and parameter(s) to
|
16
|
+
# call an operation that sends a message.
|
17
|
+
#
|
18
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which you want a list
|
19
|
+
# of available message types.
|
20
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
21
|
+
# order was placed. Only one marketplace can be specified.
|
22
|
+
# @return [Hash] The API response
|
23
|
+
def get_messaging_actions_for_order(amazon_order_id, marketplace_ids)
|
24
|
+
path = "/messaging/v1/orders/#{amazon_order_id}"
|
25
|
+
params = {
|
26
|
+
"marketplaceIds" => marketplace_ids,
|
27
|
+
}.compact
|
28
|
+
|
29
|
+
rate_limit(1.0).get(path, params:)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Sends a message asking a buyer to provide or verify customization details such as name spelling, images,
|
33
|
+
# initials, etc.
|
34
|
+
#
|
35
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
36
|
+
# sent.
|
37
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
38
|
+
# order was placed. Only one marketplace can be specified.
|
39
|
+
# @param [Hash] body
|
40
|
+
# @return [Hash] The API response
|
41
|
+
def confirm_customization_details(amazon_order_id, marketplace_ids, body)
|
42
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/confirmCustomizationDetails"
|
43
|
+
params = {
|
44
|
+
"marketplaceIds" => marketplace_ids,
|
45
|
+
}.compact
|
46
|
+
|
47
|
+
rate_limit(1.0).post(path, body:, params:)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Sends a message to a buyer to arrange a delivery or to confirm contact information for making a delivery.
|
51
|
+
#
|
52
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
53
|
+
# sent.
|
54
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
55
|
+
# order was placed. Only one marketplace can be specified.
|
56
|
+
# @param [Hash] body
|
57
|
+
# @return [Hash] The API response
|
58
|
+
def create_confirm_delivery_details(amazon_order_id, marketplace_ids, body)
|
59
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/confirmDeliveryDetails"
|
60
|
+
params = {
|
61
|
+
"marketplaceIds" => marketplace_ids,
|
62
|
+
}.compact
|
63
|
+
|
64
|
+
rate_limit(1.0).post(path, body:, params:)
|
65
|
+
end
|
66
|
+
|
67
|
+
# Sends a critical message that contains documents that a seller is legally obligated to provide to the buyer.
|
68
|
+
# This message should only be used to deliver documents that are required by law.
|
69
|
+
#
|
70
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
71
|
+
# sent.
|
72
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
73
|
+
# order was placed. Only one marketplace can be specified.
|
74
|
+
# @param [Hash] body
|
75
|
+
# @return [Hash] The API response
|
76
|
+
def create_legal_disclosure(amazon_order_id, marketplace_ids, body)
|
77
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/legalDisclosure"
|
78
|
+
params = {
|
79
|
+
"marketplaceIds" => marketplace_ids,
|
80
|
+
}.compact
|
81
|
+
|
82
|
+
rate_limit(1.0).post(path, body:, params:)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Sends a non-critical message that asks a buyer to remove their negative feedback. This message should only be
|
86
|
+
# sent after the seller has resolved the buyer's problem.
|
87
|
+
#
|
88
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
89
|
+
# sent.
|
90
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
91
|
+
# order was placed. Only one marketplace can be specified.
|
92
|
+
# @return [Hash] The API response
|
93
|
+
def create_negative_feedback_removal(amazon_order_id, marketplace_ids)
|
94
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/negativeFeedbackRemoval"
|
95
|
+
params = {
|
96
|
+
"marketplaceIds" => marketplace_ids,
|
97
|
+
}.compact
|
98
|
+
|
99
|
+
rate_limit(1.0).post(path, params:)
|
100
|
+
end
|
101
|
+
|
102
|
+
# Sends a message to ask a buyer an order-related question prior to shipping their order.
|
103
|
+
#
|
104
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
105
|
+
# sent.
|
106
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
107
|
+
# order was placed. Only one marketplace can be specified.
|
108
|
+
# @param [Hash] body
|
109
|
+
# @return [Hash] The API response
|
110
|
+
def create_confirm_order_details(amazon_order_id, marketplace_ids, body)
|
111
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/confirmOrderDetails"
|
112
|
+
params = {
|
113
|
+
"marketplaceIds" => marketplace_ids,
|
114
|
+
}.compact
|
115
|
+
|
116
|
+
rate_limit(1.0).post(path, body:, params:)
|
117
|
+
end
|
118
|
+
|
119
|
+
# Sends a message to contact a Home Service customer to arrange a service call or to gather information prior to a
|
120
|
+
# service call.
|
121
|
+
#
|
122
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
123
|
+
# sent.
|
124
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
125
|
+
# order was placed. Only one marketplace can be specified.
|
126
|
+
# @param [Hash] body
|
127
|
+
# @return [Hash] The API response
|
128
|
+
def create_confirm_service_details(amazon_order_id, marketplace_ids, body)
|
129
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/confirmServiceDetails"
|
130
|
+
params = {
|
131
|
+
"marketplaceIds" => marketplace_ids,
|
132
|
+
}.compact
|
133
|
+
|
134
|
+
rate_limit(1.0).post(path, body:, params:)
|
135
|
+
end
|
136
|
+
|
137
|
+
# Sends a message to a buyer to provide details about an Amazon Motors order. This message can only be sent by
|
138
|
+
# Amazon Motors sellers.
|
139
|
+
#
|
140
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
141
|
+
# sent.
|
142
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
143
|
+
# order was placed. Only one marketplace can be specified.
|
144
|
+
# @param [Hash] body
|
145
|
+
# @return [Hash] The API response
|
146
|
+
def create_amazon_motors(amazon_order_id, marketplace_ids, body)
|
147
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/amazonMotors"
|
148
|
+
params = {
|
149
|
+
"marketplaceIds" => marketplace_ids,
|
150
|
+
}.compact
|
151
|
+
|
152
|
+
rate_limit(1.0).post(path, body:, params:)
|
153
|
+
end
|
154
|
+
|
155
|
+
# Sends a message to a buyer to provide details about warranty information on a purchase in their order.
|
156
|
+
#
|
157
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
158
|
+
# sent.
|
159
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
160
|
+
# order was placed. Only one marketplace can be specified.
|
161
|
+
# @param [Hash] body
|
162
|
+
# @return [Hash] The API response
|
163
|
+
def create_warranty(amazon_order_id, marketplace_ids, body)
|
164
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/warranty"
|
165
|
+
params = {
|
166
|
+
"marketplaceIds" => marketplace_ids,
|
167
|
+
}.compact
|
168
|
+
|
169
|
+
rate_limit(1.0).post(path, body:, params:)
|
170
|
+
end
|
171
|
+
|
172
|
+
# Returns a response containing attributes related to an order. This includes buyer preferences.
|
173
|
+
#
|
174
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
175
|
+
# sent.
|
176
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
177
|
+
# order was placed. Only one marketplace can be specified.
|
178
|
+
# @return [Hash] The API response
|
179
|
+
def get_attributes(amazon_order_id, marketplace_ids)
|
180
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/attributes"
|
181
|
+
params = {
|
182
|
+
"marketplaceIds" => marketplace_ids,
|
183
|
+
}.compact
|
184
|
+
|
185
|
+
rate_limit(1.0).get(path, params:)
|
186
|
+
end
|
187
|
+
|
188
|
+
# Sends a message to a buyer to share a digital access key needed to utilize digital content in their order.
|
189
|
+
#
|
190
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
191
|
+
# sent.
|
192
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
193
|
+
# order was placed. Only one marketplace can be specified.
|
194
|
+
# @param [Hash] body
|
195
|
+
# @return [Hash] The API response
|
196
|
+
def create_digital_access_key(amazon_order_id, marketplace_ids, body)
|
197
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/digitalAccessKey"
|
198
|
+
params = {
|
199
|
+
"marketplaceIds" => marketplace_ids,
|
200
|
+
}.compact
|
201
|
+
|
202
|
+
rate_limit(1.0).post(path, body:, params:)
|
203
|
+
end
|
204
|
+
|
205
|
+
# Sends a critical message to a buyer that an unexpected problem was encountered affecting the completion of the
|
206
|
+
# order.
|
207
|
+
#
|
208
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
209
|
+
# sent.
|
210
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
211
|
+
# order was placed. Only one marketplace can be specified.
|
212
|
+
# @param [Hash] body
|
213
|
+
# @return [Hash] The API response
|
214
|
+
def create_unexpected_problem(amazon_order_id, marketplace_ids, body)
|
215
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/unexpectedProblem"
|
216
|
+
params = {
|
217
|
+
"marketplaceIds" => marketplace_ids,
|
218
|
+
}.compact
|
219
|
+
|
220
|
+
rate_limit(1.0).post(path, body:, params:)
|
221
|
+
end
|
222
|
+
|
223
|
+
# Sends a message providing the buyer an invoice
|
224
|
+
#
|
225
|
+
# @param [String] amazon_order_id An Amazon order identifier. This specifies the order for which a message is
|
226
|
+
# sent.
|
227
|
+
# @param [Array<String>] marketplace_ids A marketplace identifier. This specifies the marketplace in which the
|
228
|
+
# order was placed. Only one marketplace can be specified.
|
229
|
+
# @param [Hash] body
|
230
|
+
# @return [Hash] The API response
|
231
|
+
def send_invoice(amazon_order_id, marketplace_ids, body)
|
232
|
+
path = "/messaging/v1/orders/#{amazon_order_id}/messages/invoice"
|
233
|
+
params = {
|
234
|
+
"marketplaceIds" => marketplace_ids,
|
235
|
+
}.compact
|
236
|
+
|
237
|
+
post(path, body:, params:)
|
238
|
+
end
|
239
|
+
end
|
240
|
+
end
|
241
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "peddler/api"
|
4
|
+
|
5
|
+
module Peddler
|
6
|
+
class API
|
7
|
+
# Selling Partner API for Notifications
|
8
|
+
#
|
9
|
+
# The Selling Partner API for Notifications lets you subscribe to notifications that are relevant to a selling
|
10
|
+
# partner's business. Using this API you can create a destination to receive notifications, subscribe to
|
11
|
+
# notifications, delete notification subscriptions, and more. For more information, refer to the [Notifications Use
|
12
|
+
# Case Guide](https://developer-docs.amazon.com/sp-api/docs/notifications-api-v1-use-case-guide).
|
13
|
+
class NotificationsV1 < API
|
14
|
+
# Returns information about subscription of the specified notification type and payload version. `payloadVersion`
|
15
|
+
# is an optional parameter. When `payloadVersion` is not provided, it will return latest payload version
|
16
|
+
# subscription's information. You can use this API to get subscription information when you do not have a
|
17
|
+
# subscription identifier.
|
18
|
+
#
|
19
|
+
# @param [String] payload_version The version of the payload object to be used in the notification.
|
20
|
+
# @return [Hash] The API response
|
21
|
+
def get_subscription(payload_version: nil)
|
22
|
+
path = "/notifications/v1/subscriptions/#{notification_type}"
|
23
|
+
params = {
|
24
|
+
"payloadVersion" => payload_version,
|
25
|
+
}.compact
|
26
|
+
|
27
|
+
rate_limit(1.0).get(path, params:)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Creates a subscription for the specified notification type to be delivered to the specified destination. Before
|
31
|
+
# you can subscribe, you must first create the destination by calling the `createDestination` operation. In cases
|
32
|
+
# where the specified notification type supports multiple payload versions, you can utilize this API to subscribe
|
33
|
+
# to a different payload version if you already have an existing subscription for a different payload version.
|
34
|
+
#
|
35
|
+
# @param [Hash] body
|
36
|
+
# @return [Hash] The API response
|
37
|
+
def create_subscription(body)
|
38
|
+
path = "/notifications/v1/subscriptions/#{notification_type}"
|
39
|
+
|
40
|
+
rate_limit(1.0).post(path, body:)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Returns information about a subscription for the specified notification type. The `getSubscriptionById`
|
44
|
+
# operation is grantless. For more information, refer to [Grantless
|
45
|
+
# operations](https://developer-docs.amazon.com/sp-api/docs/grantless-operations).
|
46
|
+
#
|
47
|
+
# @param [String] subscription_id The identifier for the subscription that you want to get.
|
48
|
+
# @return [Hash] The API response
|
49
|
+
def get_subscription_by_id(subscription_id)
|
50
|
+
path = "/notifications/v1/subscriptions/#{notification_type}/#{subscription_id}"
|
51
|
+
|
52
|
+
rate_limit(1.0).get(path)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Deletes the subscription indicated by the subscription identifier and notification type that you specify. The
|
56
|
+
# subscription identifier can be for any subscription associated with your application. After you successfully
|
57
|
+
# call this operation, notifications will stop being sent for the associated subscription. The
|
58
|
+
# `deleteSubscriptionById` operation is grantless. For more information, refer to [Grantless
|
59
|
+
# operations](https://developer-docs.amazon.com/sp-api/docs/grantless-operations).
|
60
|
+
#
|
61
|
+
# @param [String] subscription_id The identifier for the subscription that you want to delete.
|
62
|
+
# @return [Hash] The API response
|
63
|
+
def delete_subscription_by_id(subscription_id)
|
64
|
+
path = "/notifications/v1/subscriptions/#{notification_type}/#{subscription_id}"
|
65
|
+
|
66
|
+
rate_limit(1.0).delete(path)
|
67
|
+
end
|
68
|
+
|
69
|
+
# Returns information about all destinations. The `getDestinations` operation is grantless. For more information,
|
70
|
+
# refer to [Grantless operations](https://developer-docs.amazon.com/sp-api/docs/grantless-operations).
|
71
|
+
# @return [Hash] The API response
|
72
|
+
def get_destinations
|
73
|
+
path = "/notifications/v1/destinations"
|
74
|
+
|
75
|
+
rate_limit(1.0).get(path)
|
76
|
+
end
|
77
|
+
|
78
|
+
# Creates a destination resource to receive notifications. The `createDestination` operation is grantless. For
|
79
|
+
# more information, refer to [Grantless
|
80
|
+
# operations](https://developer-docs.amazon.com/sp-api/docs/grantless-operations).
|
81
|
+
#
|
82
|
+
# @param [Hash] body
|
83
|
+
# @return [Hash] The API response
|
84
|
+
def create_destination(body)
|
85
|
+
path = "/notifications/v1/destinations"
|
86
|
+
|
87
|
+
rate_limit(1.0).post(path, body:)
|
88
|
+
end
|
89
|
+
|
90
|
+
# Returns information about the destination that you specify. The `getDestination` operation is grantless. For
|
91
|
+
# more information, refer to [Grantless
|
92
|
+
# operations](https://developer-docs.amazon.com/sp-api/docs/grantless-operations).
|
93
|
+
#
|
94
|
+
# @param [String] destination_id The identifier generated when you created the destination.
|
95
|
+
# @return [Hash] The API response
|
96
|
+
def get_destination(destination_id)
|
97
|
+
path = "/notifications/v1/destinations/#{destination_id}"
|
98
|
+
|
99
|
+
rate_limit(1.0).get(path)
|
100
|
+
end
|
101
|
+
|
102
|
+
# Deletes the destination that you specify. The `deleteDestination` operation is grantless. For more information,
|
103
|
+
# refer to [Grantless operations](https://developer-docs.amazon.com/sp-api/docs/grantless-operations).
|
104
|
+
#
|
105
|
+
# @param [String] destination_id The identifier for the destination that you want to delete.
|
106
|
+
# @return [Hash] The API response
|
107
|
+
def delete_destination(destination_id)
|
108
|
+
path = "/notifications/v1/destinations/#{destination_id}"
|
109
|
+
|
110
|
+
rate_limit(1.0).delete(path)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|