peddler 3.0.0 → 4.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 +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
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def vendor_direct_fulfillment_shipping_2021_12_28(...)
|
8
|
-
|
8
|
+
APIs::VendorDirectFulfillmentShipping20211228.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Direct Fulfillment Shipping
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Direct Fulfillment Shipping provides programmatic access to a direct fulfillment
|
@@ -31,7 +31,7 @@ module Peddler
|
|
31
31
|
# @param next_token [String] Used for pagination when there are more ship labels than the specified result size
|
32
32
|
# limit. The token value is returned in the previous API call.
|
33
33
|
# @param rate_limit [Float] Requests per second
|
34
|
-
# @return [
|
34
|
+
# @return [Peddler::Response] The API response
|
35
35
|
def get_shipping_labels(created_after, created_before, ship_from_party_id: nil, limit: nil, sort_order: "ASC",
|
36
36
|
next_token: nil, rate_limit: 10.0)
|
37
37
|
path = "/vendor/directFulfillment/shipping/2021-12-28/shippingLabels"
|
@@ -50,9 +50,9 @@ module Peddler
|
|
50
50
|
# Creates a shipping label for a purchase order and returns a transactionId for reference.
|
51
51
|
#
|
52
52
|
# @note This operation can make a dynamic sandbox call.
|
53
|
-
# @param body [Hash] Request body
|
53
|
+
# @param body [Hash] Request body containing the shipping labels data.
|
54
54
|
# @param rate_limit [Float] Requests per second
|
55
|
-
# @return [
|
55
|
+
# @return [Peddler::Response] The API response
|
56
56
|
def submit_shipping_label_request(body, rate_limit: 10.0)
|
57
57
|
path = "/vendor/directFulfillment/shipping/2021-12-28/shippingLabels"
|
58
58
|
|
@@ -62,10 +62,10 @@ module Peddler
|
|
62
62
|
# Returns a shipping label for the purchaseOrderNumber that you specify.
|
63
63
|
#
|
64
64
|
# @note This operation can make a dynamic sandbox call.
|
65
|
-
# @param purchase_order_number [String] The purchase order number for which you want to return the shipping label
|
66
|
-
#
|
65
|
+
# @param purchase_order_number [String] The purchase order number for which you want to return the shipping label
|
66
|
+
# and should be the same purchaseOrderNumber as received in the order.
|
67
67
|
# @param rate_limit [Float] Requests per second
|
68
|
-
# @return [
|
68
|
+
# @return [Peddler::Response] The API response
|
69
69
|
def get_shipping_label(purchase_order_number, rate_limit: 10.0)
|
70
70
|
path = "/vendor/directFulfillment/shipping/2021-12-28/shippingLabels/#{purchase_order_number}"
|
71
71
|
|
@@ -77,9 +77,9 @@ module Peddler
|
|
77
77
|
# @note This operation can make a dynamic sandbox call.
|
78
78
|
# @param purchase_order_number [String] The purchase order number for which you want to return the shipping
|
79
79
|
# labels. It should be the same purchaseOrderNumber as received in the order.
|
80
|
-
# @param body [Hash] The request payload
|
80
|
+
# @param body [Hash] The request payload containing parameters for creating shipping labels.
|
81
81
|
# @param rate_limit [Float] Requests per second
|
82
|
-
# @return [
|
82
|
+
# @return [Peddler::Response] The API response
|
83
83
|
def create_shipping_labels(purchase_order_number, body, rate_limit: 10.0)
|
84
84
|
path = "/vendor/directFulfillment/shipping/2021-12-28/shippingLabels/#{purchase_order_number}"
|
85
85
|
|
@@ -91,7 +91,7 @@ module Peddler
|
|
91
91
|
# @note This operation can make a dynamic sandbox call.
|
92
92
|
# @param body [Hash] Request body containing the shipment confirmations data.
|
93
93
|
# @param rate_limit [Float] Requests per second
|
94
|
-
# @return [
|
94
|
+
# @return [Peddler::Response] The API response
|
95
95
|
def submit_shipment_confirmations(body, rate_limit: 10.0)
|
96
96
|
path = "/vendor/directFulfillment/shipping/2021-12-28/shipmentConfirmations"
|
97
97
|
|
@@ -103,9 +103,9 @@ module Peddler
|
|
103
103
|
# order, when the package is outside of Amazon Network visibility.
|
104
104
|
#
|
105
105
|
# @note This operation can make a dynamic sandbox call.
|
106
|
-
# @param body [Hash] Request body
|
106
|
+
# @param body [Hash] Request body containing the shipment status update data.
|
107
107
|
# @param rate_limit [Float] Requests per second
|
108
|
-
# @return [
|
108
|
+
# @return [Peddler::Response] The API response
|
109
109
|
def submit_shipment_status_updates(body, rate_limit: 10.0)
|
110
110
|
path = "/vendor/directFulfillment/shipping/2021-12-28/shipmentStatusUpdates"
|
111
111
|
|
@@ -128,7 +128,7 @@ module Peddler
|
|
128
128
|
# @param next_token [String] Used for pagination when there are more orders than the specified result size limit.
|
129
129
|
# The token value is returned in the previous API call.
|
130
130
|
# @param rate_limit [Float] Requests per second
|
131
|
-
# @return [
|
131
|
+
# @return [Peddler::Response] The API response
|
132
132
|
def get_customer_invoices(created_after, created_before, ship_from_party_id: nil, limit: nil, sort_order: nil,
|
133
133
|
next_token: nil, rate_limit: 10.0)
|
134
134
|
path = "/vendor/directFulfillment/shipping/2021-12-28/customerInvoices"
|
@@ -149,7 +149,7 @@ module Peddler
|
|
149
149
|
# @note This operation can make a dynamic sandbox call.
|
150
150
|
# @param purchase_order_number [String] Purchase order number of the shipment for which to return the invoice.
|
151
151
|
# @param rate_limit [Float] Requests per second
|
152
|
-
# @return [
|
152
|
+
# @return [Peddler::Response] The API response
|
153
153
|
def get_customer_invoice(purchase_order_number, rate_limit: 10.0)
|
154
154
|
path = "/vendor/directFulfillment/shipping/2021-12-28/customerInvoices/#{purchase_order_number}"
|
155
155
|
|
@@ -171,7 +171,7 @@ module Peddler
|
|
171
171
|
# @param next_token [String] Used for pagination when there are more packing slips than the specified result size
|
172
172
|
# limit. The token value is returned in the previous API call.
|
173
173
|
# @param rate_limit [Float] Requests per second
|
174
|
-
# @return [
|
174
|
+
# @return [Peddler::Response] The API response
|
175
175
|
def get_packing_slips(created_after, created_before, ship_from_party_id: nil, limit: nil, sort_order: "ASC",
|
176
176
|
next_token: nil, rate_limit: 10.0)
|
177
177
|
path = "/vendor/directFulfillment/shipping/2021-12-28/packingSlips"
|
@@ -192,7 +192,7 @@ module Peddler
|
|
192
192
|
# @note This operation can make a dynamic sandbox call.
|
193
193
|
# @param purchase_order_number [String] The purchaseOrderNumber for the packing slip you want.
|
194
194
|
# @param rate_limit [Float] Requests per second
|
195
|
-
# @return [
|
195
|
+
# @return [Peddler::Response] The API response
|
196
196
|
def get_packing_slip(purchase_order_number, rate_limit: 10.0)
|
197
197
|
path = "/vendor/directFulfillment/shipping/2021-12-28/packingSlips/#{purchase_order_number}"
|
198
198
|
|
@@ -5,33 +5,33 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def vendor_direct_fulfillment_shipping_v1(...)
|
8
|
-
|
8
|
+
APIs::VendorDirectFulfillmentShippingV1.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Direct Fulfillment Shipping
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Direct Fulfillment Shipping provides programmatic access to a direct fulfillment
|
16
16
|
# vendor's shipping data.
|
17
17
|
class VendorDirectFulfillmentShippingV1 < API
|
18
18
|
# Returns a list of shipping labels created during the time frame that you specify. You define that time frame
|
19
|
-
# using the
|
20
|
-
#
|
19
|
+
# using the createdAfter and createdBefore parameters. You must use both of these parameters. The date range to
|
20
|
+
# search must not be more than 7 days.
|
21
21
|
#
|
22
22
|
# @note This operation can make a static sandbox call.
|
23
|
-
# @param ship_from_party_id [String] The vendor
|
23
|
+
# @param ship_from_party_id [String] The vendor warehouseId for order fulfillment. If not specified, the result
|
24
24
|
# will contain orders for all warehouses.
|
25
25
|
# @param limit [Integer] The limit to the number of records returned.
|
26
26
|
# @param created_after [String] Shipping labels that became available after this date and time will be included in
|
27
|
-
# the result. Must be in
|
27
|
+
# the result. Must be in ISO-8601 date/time format.
|
28
28
|
# @param created_before [String] Shipping labels that became available before this date and time will be included
|
29
|
-
# in the result. Must be in
|
29
|
+
# in the result. Must be in ISO-8601 date/time format.
|
30
30
|
# @param sort_order [String] Sort ASC or DESC by order creation date.
|
31
31
|
# @param next_token [String] Used for pagination when there are more ship labels than the specified result size
|
32
32
|
# limit. The token value is returned in the previous API call.
|
33
33
|
# @param rate_limit [Float] Requests per second
|
34
|
-
# @return [
|
34
|
+
# @return [Peddler::Response] The API response
|
35
35
|
def get_shipping_labels(created_after, created_before, ship_from_party_id: nil, limit: nil, sort_order: "ASC",
|
36
36
|
next_token: nil, rate_limit: 10.0)
|
37
37
|
path = "/vendor/directFulfillment/shipping/v1/shippingLabels"
|
@@ -47,25 +47,25 @@ module Peddler
|
|
47
47
|
meter(rate_limit).get(path, params:)
|
48
48
|
end
|
49
49
|
|
50
|
-
# Creates a shipping label for a purchase order and returns a
|
50
|
+
# Creates a shipping label for a purchase order and returns a transactionId for reference.
|
51
51
|
#
|
52
52
|
# @note This operation can make a static sandbox call.
|
53
53
|
# @param body [Hash] Request body containing one or more shipping labels data.
|
54
54
|
# @param rate_limit [Float] Requests per second
|
55
|
-
# @return [
|
55
|
+
# @return [Peddler::Response] The API response
|
56
56
|
def submit_shipping_label_request(body, rate_limit: 10.0)
|
57
57
|
path = "/vendor/directFulfillment/shipping/v1/shippingLabels"
|
58
58
|
|
59
59
|
meter(rate_limit).post(path, body:)
|
60
60
|
end
|
61
61
|
|
62
|
-
# Returns a shipping label for the
|
62
|
+
# Returns a shipping label for the purchaseOrderNumber that you specify.
|
63
63
|
#
|
64
64
|
# @note This operation can make a static sandbox call.
|
65
65
|
# @param purchase_order_number [String] The purchase order number for which you want to return the shipping label.
|
66
|
-
# It should be the same
|
66
|
+
# It should be the same purchaseOrderNumber as received in the order.
|
67
67
|
# @param rate_limit [Float] Requests per second
|
68
|
-
# @return [
|
68
|
+
# @return [Peddler::Response] The API response
|
69
69
|
def get_shipping_label(purchase_order_number, rate_limit: 10.0)
|
70
70
|
path = "/vendor/directFulfillment/shipping/v1/shippingLabels/#{purchase_order_number}"
|
71
71
|
|
@@ -77,7 +77,7 @@ module Peddler
|
|
77
77
|
# @note This operation can make a static sandbox call.
|
78
78
|
# @param body [Hash] Request body containing the shipment confirmations data.
|
79
79
|
# @param rate_limit [Float] Requests per second
|
80
|
-
# @return [
|
80
|
+
# @return [Peddler::Response] The API response
|
81
81
|
def submit_shipment_confirmations(body, rate_limit: 10.0)
|
82
82
|
path = "/vendor/directFulfillment/shipping/v1/shipmentConfirmations"
|
83
83
|
|
@@ -91,7 +91,7 @@ module Peddler
|
|
91
91
|
# @note This operation can make a static sandbox call.
|
92
92
|
# @param body [Hash] Request body containing the shipment status update data.
|
93
93
|
# @param rate_limit [Float] Requests per second
|
94
|
-
# @return [
|
94
|
+
# @return [Peddler::Response] The API response
|
95
95
|
def submit_shipment_status_updates(body, rate_limit: 10.0)
|
96
96
|
path = "/vendor/directFulfillment/shipping/v1/shipmentStatusUpdates"
|
97
97
|
|
@@ -99,22 +99,22 @@ module Peddler
|
|
99
99
|
end
|
100
100
|
|
101
101
|
# Returns a list of customer invoices created during a time frame that you specify. You define the time frame
|
102
|
-
# using the
|
103
|
-
#
|
102
|
+
# using the createdAfter and createdBefore parameters. You must use both of these parameters. The date range to
|
103
|
+
# search must be no more than 7 days.
|
104
104
|
#
|
105
105
|
# @note This operation can make a static sandbox call.
|
106
|
-
# @param ship_from_party_id [String] The vendor
|
106
|
+
# @param ship_from_party_id [String] The vendor warehouseId for order fulfillment. If not specified, the result
|
107
107
|
# will contain orders for all warehouses.
|
108
108
|
# @param limit [Integer] The limit to the number of records returned
|
109
109
|
# @param created_after [String] Orders that became available after this date and time will be included in the
|
110
|
-
# result. Must be in
|
110
|
+
# result. Must be in ISO-8601 date/time format.
|
111
111
|
# @param created_before [String] Orders that became available before this date and time will be included in the
|
112
|
-
# result. Must be in
|
112
|
+
# result. Must be in ISO-8601 date/time format.
|
113
113
|
# @param sort_order [String] Sort ASC or DESC by order creation date.
|
114
114
|
# @param next_token [String] Used for pagination when there are more orders than the specified result size limit.
|
115
115
|
# The token value is returned in the previous API call.
|
116
116
|
# @param rate_limit [Float] Requests per second
|
117
|
-
# @return [
|
117
|
+
# @return [Peddler::Response] The API response
|
118
118
|
def get_customer_invoices(created_after, created_before, ship_from_party_id: nil, limit: nil, sort_order: nil,
|
119
119
|
next_token: nil, rate_limit: 10.0)
|
120
120
|
path = "/vendor/directFulfillment/shipping/v1/customerInvoices"
|
@@ -130,12 +130,12 @@ module Peddler
|
|
130
130
|
meter(rate_limit).get(path, params:)
|
131
131
|
end
|
132
132
|
|
133
|
-
# Returns a customer invoice based on the
|
133
|
+
# Returns a customer invoice based on the purchaseOrderNumber that you specify.
|
134
134
|
#
|
135
135
|
# @note This operation can make a static sandbox call.
|
136
136
|
# @param purchase_order_number [String] Purchase order number of the shipment for which to return the invoice.
|
137
137
|
# @param rate_limit [Float] Requests per second
|
138
|
-
# @return [
|
138
|
+
# @return [Peddler::Response] The API response
|
139
139
|
def get_customer_invoice(purchase_order_number, rate_limit: 10.0)
|
140
140
|
path = "/vendor/directFulfillment/shipping/v1/customerInvoices/#{purchase_order_number}"
|
141
141
|
|
@@ -146,18 +146,18 @@ module Peddler
|
|
146
146
|
# must not be more than 7 days.
|
147
147
|
#
|
148
148
|
# @note This operation can make a static sandbox call.
|
149
|
-
# @param ship_from_party_id [String] The vendor
|
149
|
+
# @param ship_from_party_id [String] The vendor warehouseId for order fulfillment. If not specified the result
|
150
150
|
# will contain orders for all warehouses.
|
151
151
|
# @param limit [Integer] The limit to the number of records returned
|
152
152
|
# @param created_after [String] Packing slips that became available after this date and time will be included in
|
153
|
-
# the result. Must be in
|
153
|
+
# the result. Must be in ISO-8601 date/time format.
|
154
154
|
# @param created_before [String] Packing slips that became available before this date and time will be included in
|
155
|
-
# the result. Must be in
|
155
|
+
# the result. Must be in ISO-8601 date/time format.
|
156
156
|
# @param sort_order [String] Sort ASC or DESC by packing slip creation date.
|
157
157
|
# @param next_token [String] Used for pagination when there are more packing slips than the specified result size
|
158
158
|
# limit. The token value is returned in the previous API call.
|
159
159
|
# @param rate_limit [Float] Requests per second
|
160
|
-
# @return [
|
160
|
+
# @return [Peddler::Response] The API response
|
161
161
|
def get_packing_slips(created_after, created_before, ship_from_party_id: nil, limit: nil, sort_order: "ASC",
|
162
162
|
next_token: nil, rate_limit: 10.0)
|
163
163
|
path = "/vendor/directFulfillment/shipping/v1/packingSlips"
|
@@ -173,12 +173,12 @@ module Peddler
|
|
173
173
|
meter(rate_limit).get(path, params:)
|
174
174
|
end
|
175
175
|
|
176
|
-
# Returns a packing slip based on the
|
176
|
+
# Returns a packing slip based on the purchaseOrderNumber that you specify.
|
177
177
|
#
|
178
178
|
# @note This operation can make a static sandbox call.
|
179
|
-
# @param purchase_order_number [String] The
|
179
|
+
# @param purchase_order_number [String] The purchaseOrderNumber for the packing slip you want.
|
180
180
|
# @param rate_limit [Float] Requests per second
|
181
|
-
# @return [
|
181
|
+
# @return [Peddler::Response] The API response
|
182
182
|
def get_packing_slip(purchase_order_number, rate_limit: 10.0)
|
183
183
|
path = "/vendor/directFulfillment/shipping/v1/packingSlips/#{purchase_order_number}"
|
184
184
|
|
@@ -5,23 +5,23 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def vendor_direct_fulfillment_transactions_2021_12_28(...)
|
8
|
-
|
8
|
+
APIs::VendorDirectFulfillmentTransactions20211228.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Direct Fulfillment Transaction Status
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Direct Fulfillment Transaction Status provides programmatic access to a direct
|
16
16
|
# fulfillment vendor's transaction status.
|
17
17
|
class VendorDirectFulfillmentTransactions20211228 < API
|
18
|
-
# Returns the status of the transaction indicated by the specified
|
18
|
+
# Returns the status of the transaction indicated by the specified transactionId.
|
19
19
|
#
|
20
20
|
# @note This operation can make a dynamic sandbox call.
|
21
21
|
# @param transaction_id [String] Previously returned in the response to the POST request of a specific
|
22
22
|
# transaction.
|
23
23
|
# @param rate_limit [Float] Requests per second
|
24
|
-
# @return [
|
24
|
+
# @return [Peddler::Response] The API response
|
25
25
|
def get_transaction_status(transaction_id, rate_limit: 10.0)
|
26
26
|
path = "/vendor/directFulfillment/transactions/2021-12-28/transactions/#{transaction_id}"
|
27
27
|
|
@@ -5,23 +5,23 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def vendor_direct_fulfillment_transactions_v1(...)
|
8
|
-
|
8
|
+
APIs::VendorDirectFulfillmentTransactionsV1.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Direct Fulfillment Transaction Status
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Direct Fulfillment Transaction Status provides programmatic access to a direct
|
16
16
|
# fulfillment vendor's transaction status.
|
17
17
|
class VendorDirectFulfillmentTransactionsV1 < API
|
18
|
-
# Returns the status of the transaction indicated by the specified
|
18
|
+
# Returns the status of the transaction indicated by the specified transactionId.
|
19
19
|
#
|
20
20
|
# @note This operation can make a static sandbox call.
|
21
21
|
# @param transaction_id [String] Previously returned in the response to the POST request of a specific
|
22
22
|
# transaction.
|
23
23
|
# @param rate_limit [Float] Requests per second
|
24
|
-
# @return [
|
24
|
+
# @return [Peddler::Response] The API response
|
25
25
|
def get_transaction_status(transaction_id, rate_limit: 10.0)
|
26
26
|
path = "/vendor/directFulfillment/transactions/v1/transactions/#{transaction_id}"
|
27
27
|
|
@@ -5,12 +5,12 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def vendor_invoices_v1(...)
|
8
|
-
|
8
|
+
APIs::VendorInvoicesV1.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
#
|
12
|
+
module APIs
|
13
|
+
# Vendor Invoices v1
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Retail Procurement Payments provides programmatic access to vendors payments data.
|
16
16
|
class VendorInvoicesV1 < API
|
@@ -19,7 +19,7 @@ module Peddler
|
|
19
19
|
# @note This operation can make a static sandbox call.
|
20
20
|
# @param body [Hash] The request body containing the invoice data to submit.
|
21
21
|
# @param rate_limit [Float] Requests per second
|
22
|
-
# @return [
|
22
|
+
# @return [Peddler::Response] The API response
|
23
23
|
def submit_invoices(body, rate_limit: 10.0)
|
24
24
|
path = "/vendor/payments/v1/invoices"
|
25
25
|
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def vendor_orders_v1(...)
|
8
|
-
|
8
|
+
APIs::VendorOrdersV1.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Retail Procurement Orders
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Retail Procurement Orders provides programmatic access to vendor orders data.
|
@@ -47,7 +47,7 @@ module Peddler
|
|
47
47
|
# purchase orders for all of the vendor codes that exist in the vendor group used to authorize the API client
|
48
48
|
# application are returned.
|
49
49
|
# @param rate_limit [Float] Requests per second
|
50
|
-
# @return [
|
50
|
+
# @return [Peddler::Response] The API response
|
51
51
|
def get_purchase_orders(limit: nil, created_after: nil, created_before: nil, sort_order: nil, next_token: nil,
|
52
52
|
include_details: nil, changed_after: nil, changed_before: nil, po_item_state: nil, is_po_changed: nil,
|
53
53
|
purchase_order_state: nil, ordering_vendor_code: nil, rate_limit: 10.0)
|
@@ -76,7 +76,7 @@ module Peddler
|
|
76
76
|
# @param purchase_order_number [String] The purchase order identifier for the order that you want. Formatting
|
77
77
|
# Notes: 8-character alpha-numeric code.
|
78
78
|
# @param rate_limit [Float] Requests per second
|
79
|
-
# @return [
|
79
|
+
# @return [Peddler::Response] The API response
|
80
80
|
def get_purchase_order(purchase_order_number, rate_limit: 10.0)
|
81
81
|
path = "/vendor/orders/v1/purchaseOrders/#{purchase_order_number}"
|
82
82
|
|
@@ -86,9 +86,9 @@ module Peddler
|
|
86
86
|
# Submits acknowledgements for one or more purchase orders.
|
87
87
|
#
|
88
88
|
# @note This operation can make a static sandbox call.
|
89
|
-
# @param body [Hash]
|
89
|
+
# @param body [Hash] Submits acknowledgements for one or more purchase orders from a vendor.
|
90
90
|
# @param rate_limit [Float] Requests per second
|
91
|
-
# @return [
|
91
|
+
# @return [Peddler::Response] The API response
|
92
92
|
def submit_acknowledgement(body, rate_limit: 10.0)
|
93
93
|
path = "/vendor/orders/v1/acknowledgements"
|
94
94
|
|
@@ -130,7 +130,7 @@ module Peddler
|
|
130
130
|
# If not included in filter, this will return purchase orders for all the buyer's warehouses used for vendor
|
131
131
|
# group purchase orders.
|
132
132
|
# @param rate_limit [Float] Requests per second
|
133
|
-
# @return [
|
133
|
+
# @return [Peddler::Response] The API response
|
134
134
|
def get_purchase_orders_status(limit: nil, sort_order: nil, next_token: nil, created_after: nil,
|
135
135
|
created_before: nil, updated_after: nil, updated_before: nil, purchase_order_number: nil,
|
136
136
|
purchase_order_status: nil, item_confirmation_status: nil, item_receive_status: nil, ordering_vendor_code: nil,
|
@@ -5,12 +5,12 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def vendor_shipments_v1(...)
|
8
|
-
|
8
|
+
APIs::VendorShipmentsV1.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
#
|
12
|
+
module APIs
|
13
|
+
# Vendor Shipments v1
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Retail Procurement Shipments provides programmatic access to retail shipping data for
|
16
16
|
# vendors.
|
@@ -20,7 +20,7 @@ module Peddler
|
|
20
20
|
# @note This operation can make a static sandbox call.
|
21
21
|
# @param body [Hash] A request to submit shipment confirmation.
|
22
22
|
# @param rate_limit [Float] Requests per second
|
23
|
-
# @return [
|
23
|
+
# @return [Peddler::Response] The API response
|
24
24
|
def submit_shipment_confirmations(body, rate_limit: 10.0)
|
25
25
|
path = "/vendor/shipping/v1/shipmentConfirmations"
|
26
26
|
|
@@ -31,7 +31,7 @@ module Peddler
|
|
31
31
|
#
|
32
32
|
# @param body [Hash] A request to submit shipment request.
|
33
33
|
# @param rate_limit [Float] Requests per second
|
34
|
-
# @return [
|
34
|
+
# @return [Peddler::Response] The API response
|
35
35
|
def submit_shipments(body, rate_limit: 10.0)
|
36
36
|
cannot_sandbox!
|
37
37
|
|
@@ -87,7 +87,7 @@ module Peddler
|
|
87
87
|
# @param seller_warehouse_code [String] Get Shipping Details based on vendor warehouse code. This value should be
|
88
88
|
# same as 'sellingParty.partyId' in the Shipment.
|
89
89
|
# @param rate_limit [Float] Requests per second
|
90
|
-
# @return [
|
90
|
+
# @return [Peddler::Response] The API response
|
91
91
|
def get_shipment_details(limit: nil, sort_order: nil, next_token: nil, created_after: nil, created_before: nil,
|
92
92
|
shipment_confirmed_before: nil, shipment_confirmed_after: nil, package_label_created_before: nil,
|
93
93
|
package_label_created_after: nil, shipped_before: nil, shipped_after: nil, estimated_delivery_before: nil,
|
@@ -5,11 +5,11 @@ require "peddler/api"
|
|
5
5
|
module Peddler
|
6
6
|
class << self
|
7
7
|
def vendor_transaction_status_v1(...)
|
8
|
-
|
8
|
+
APIs::VendorTransactionStatusV1.new(...)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
module APIs
|
13
13
|
# Selling Partner API for Retail Procurement Transaction Status
|
14
14
|
#
|
15
15
|
# The Selling Partner API for Retail Procurement Transaction Status provides programmatic access to status
|
@@ -20,7 +20,7 @@ module Peddler
|
|
20
20
|
# @param transaction_id [String] The GUID provided by Amazon in the 'transactionId' field in response to the post
|
21
21
|
# request of a specific transaction.
|
22
22
|
# @param rate_limit [Float] Requests per second
|
23
|
-
# @return [
|
23
|
+
# @return [Peddler::Response] The API response
|
24
24
|
def get_transaction(transaction_id, rate_limit: 10.0)
|
25
25
|
cannot_sandbox!
|
26
26
|
|
data/lib/peddler/endpoint.rb
CHANGED
@@ -27,14 +27,14 @@ module Peddler
|
|
27
27
|
raise ArgumentError, "#{aws_region} not found"
|
28
28
|
end
|
29
29
|
|
30
|
-
new(**values
|
30
|
+
new(**values, aws_region: aws_region)
|
31
31
|
end
|
32
32
|
|
33
33
|
def find_by_selling_region(selling_region)
|
34
34
|
aws_region, values = ENDPOINTS.find { |_, v| v[:selling_region] == selling_region } ||
|
35
35
|
raise(ArgumentError, "#{selling_region} not found")
|
36
36
|
|
37
|
-
new(**values
|
37
|
+
new(**values, aws_region: aws_region)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
data/lib/peddler/error.rb
CHANGED
@@ -2,30 +2,39 @@
|
|
2
2
|
|
3
3
|
module Peddler
|
4
4
|
class Error < StandardError
|
5
|
-
|
6
|
-
class NotFound < Error; end
|
7
|
-
class QuotaExceeded < Error; end
|
8
|
-
class Unauthorized < Error; end
|
9
|
-
|
10
|
-
attr_reader :cause
|
5
|
+
attr_reader :response
|
11
6
|
|
12
7
|
# @!visibility private
|
13
8
|
class << self
|
14
9
|
def build(response)
|
15
10
|
error = JSON.parse(response).dig("errors").first
|
16
11
|
class_name = error.dig("code")
|
17
|
-
|
12
|
+
message = error.dig("message")
|
13
|
+
klass = if Errors.const_defined?(class_name)
|
14
|
+
Errors.const_get(class_name)
|
15
|
+
else
|
16
|
+
Errors.const_set(
|
17
|
+
class_name,
|
18
|
+
Class.new(Error),
|
19
|
+
)
|
20
|
+
end
|
18
21
|
|
19
|
-
klass.new(
|
22
|
+
klass.new(message, response)
|
20
23
|
rescue NameError
|
21
|
-
|
22
|
-
retry
|
24
|
+
# Do nothing if code cannot be converted to a class name
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
26
|
-
def initialize(msg = nil,
|
27
|
-
@
|
28
|
+
def initialize(msg = nil, response = nil)
|
29
|
+
@response = response
|
28
30
|
super(msg)
|
29
31
|
end
|
30
32
|
end
|
33
|
+
|
34
|
+
module Errors
|
35
|
+
class InvalidInput < Error; end
|
36
|
+
class NotFound < Error; end
|
37
|
+
class QuotaExceeded < Error; end
|
38
|
+
class Unauthorized < Error; end
|
39
|
+
end
|
31
40
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Peddler
|
4
|
+
module Helpers
|
5
|
+
module Feeds20210630
|
6
|
+
# Uploads feed_content to a signed upload_url previously provided by
|
7
|
+
# create_feed_document. The upload_url is signed, the Host and content-type
|
8
|
+
# headers must match the signing.
|
9
|
+
# @param upload_url [String] The signed url from the `create_feed_document` response.
|
10
|
+
# @param feed_content [String] The body of the content to upload.
|
11
|
+
# @param content_type [String] The content type of the upload,
|
12
|
+
# this must match the content-type requested in `create_feed_document`
|
13
|
+
# @return [HTTP::Response] The API response
|
14
|
+
def upload_feed_document(upload_url, feed_content, content_type)
|
15
|
+
response = HTTP.headers("content-type" => content_type).put(upload_url, body: feed_content)
|
16
|
+
|
17
|
+
if response.status.client_error?
|
18
|
+
error = Error.build(response)
|
19
|
+
raise error if error
|
20
|
+
end
|
21
|
+
|
22
|
+
response
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Peddler
|
4
|
+
class JSONFeedDocument
|
5
|
+
CONTENT_TYPE = "application/json; charset=UTF-8"
|
6
|
+
|
7
|
+
def upload(content)
|
8
|
+
# While HTTPrb already sets the content-type, Amazon server seems to fail if we don't explicitly set it again
|
9
|
+
# here. A bit of a mystery; maybe it's the order of the headers that's screwing things up on their end?
|
10
|
+
HTTP.headers("Content-Type" => CONTENT_TYPE).put(url, json: content)
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize(api)
|
14
|
+
@api = api
|
15
|
+
end
|
16
|
+
|
17
|
+
def id
|
18
|
+
metadata.fetch("id")
|
19
|
+
end
|
20
|
+
|
21
|
+
def url
|
22
|
+
metadata.fetch("url")
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def metadata
|
28
|
+
@metadata ||= @api.create_feed_document({ "contentType" => CONTENT_TYPE }).parse
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|