peddler 3.0.0.beta1 → 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 +108 -110
- data/lib/peddler/api.rb +56 -18
- data/lib/peddler/{api → apis}/amazon_warehousing_and_distribution_2024_05_09.rb +38 -26
- data/lib/peddler/{api → apis}/aplus_content_2020_11_01.rb +97 -59
- data/lib/peddler/apis/application_integrations_2024_04_01.rb +56 -0
- data/lib/peddler/{api → apis}/application_management_2023_11_30.rb +14 -4
- data/lib/peddler/{api → apis}/catalog_items_2020_12_01.rb +34 -23
- data/lib/peddler/{api → apis}/catalog_items_2022_04_01.rb +39 -29
- data/lib/peddler/{api → apis}/catalog_items_v0.rb +43 -30
- data/lib/peddler/{api → apis}/data_kiosk_2023_11_15.rb +47 -31
- data/lib/peddler/apis/easy_ship_2022_03_23.rb +126 -0
- data/lib/peddler/{api → apis}/fba_inbound_eligibility_v1.rb +15 -7
- data/lib/peddler/{api → apis}/fba_inventory_v1.rb +45 -29
- data/lib/peddler/{api → apis}/feeds_2021_06_30.rb +54 -33
- data/lib/peddler/apis/finances_2024_06_19.rb +50 -0
- data/lib/peddler/{api → apis}/finances_v0.rb +50 -36
- data/lib/peddler/{api → apis}/fulfillment_inbound_2024_03_20.rb +384 -255
- data/lib/peddler/{api → apis}/fulfillment_inbound_v0.rb +138 -93
- data/lib/peddler/{api → apis}/fulfillment_outbound_2020_07_01.rb +105 -68
- data/lib/peddler/apis/invoices_2024_06_19.rb +180 -0
- data/lib/peddler/apis/listings_items_2020_09_01.rb +95 -0
- data/lib/peddler/apis/listings_items_2021_08_01.rb +136 -0
- data/lib/peddler/{api → apis}/listings_restrictions_2021_08_01.rb +21 -11
- data/lib/peddler/apis/merchant_fulfillment_v0.rb +80 -0
- data/lib/peddler/{api → apis}/messaging_v1.rb +107 -75
- data/lib/peddler/{api → apis}/notifications_v1.rb +63 -32
- data/lib/peddler/{api → apis}/orders_v0.rb +99 -84
- data/lib/peddler/apis/product_fees_v0.rb +77 -0
- data/lib/peddler/{api → apis}/product_pricing_2022_05_01.rb +24 -13
- data/lib/peddler/{api → apis}/product_pricing_v0.rb +70 -52
- data/lib/peddler/{api → apis}/product_type_definitions_2020_09_01.rb +32 -21
- data/lib/peddler/{api → apis}/replenishment_2022_11_07.rb +25 -13
- data/lib/peddler/{api → apis}/reports_2021_06_30.rb +71 -47
- data/lib/peddler/{api → apis}/sales_v1.rb +22 -14
- data/lib/peddler/{api → apis}/sellers_v1.rb +19 -7
- data/lib/peddler/{api → apis}/services_v1.rb +156 -116
- data/lib/peddler/apis/shipment_invoicing_v0.rb +59 -0
- data/lib/peddler/apis/shipping_v1.rb +132 -0
- data/lib/peddler/{api → apis}/shipping_v2.rb +150 -98
- data/lib/peddler/{api → apis}/solicitations_v1.rb +21 -11
- data/lib/peddler/apis/supply_sources_2020_07_01.rb +100 -0
- data/lib/peddler/{api → apis}/tokens_2021_03_01.rb +15 -7
- data/lib/peddler/{api → apis}/uploads_2020_11_01.rb +18 -8
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_inventory_v1.rb +14 -6
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_orders_2021_12_28.rb +33 -21
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_orders_v1.rb +33 -21
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_payments_v1.rb +13 -5
- data/lib/peddler/apis/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.rb +45 -0
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_shipping_2021_12_28.rb +86 -60
- data/lib/peddler/apis/vendor_direct_fulfillment_shipping_v1.rb +189 -0
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_transactions_2021_12_28.rb +14 -6
- data/lib/peddler/{api → apis}/vendor_direct_fulfillment_transactions_v1.rb +14 -6
- data/lib/peddler/apis/vendor_invoices_v1.rb +30 -0
- data/lib/peddler/{api → apis}/vendor_orders_v1.rb +59 -48
- data/lib/peddler/apis/vendor_shipments_v1.rb +132 -0
- data/lib/peddler/{api → apis}/vendor_transaction_status_v1.rb +14 -5
- data/lib/peddler/endpoint.rb +51 -0
- data/lib/peddler/error.rb +21 -11
- 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 +93 -0
- data/lib/peddler/response.rb +46 -0
- data/lib/peddler/token.rb +70 -0
- data/lib/peddler/version.rb +1 -1
- data/lib/peddler.rb +55 -52
- metadata +64 -57
- data/lib/peddler/access_token.rb +0 -76
- data/lib/peddler/api/easy_ship_2022_03_23.rb +0 -108
- data/lib/peddler/api/listings_items_2020_09_01.rb +0 -84
- data/lib/peddler/api/listings_items_2021_08_01.rb +0 -154
- data/lib/peddler/api/merchant_fulfillment_v0.rb +0 -64
- data/lib/peddler/api/product_fees_v0.rb +0 -69
- data/lib/peddler/api/shipment_invoicing_v0.rb +0 -46
- data/lib/peddler/api/shipping_v1.rb +0 -107
- data/lib/peddler/api/supply_sources_2020_07_01.rb +0 -82
- data/lib/peddler/api/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.rb +0 -35
- data/lib/peddler/api/vendor_direct_fulfillment_shipping_v1.rb +0 -165
- data/lib/peddler/api/vendor_invoices_v1.rb +0 -22
- data/lib/peddler/api/vendor_shipments_v1.rb +0 -120
- data/lib/peddler/region.rb +0 -30
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "uri"
|
4
|
+
|
5
|
+
module Peddler
|
6
|
+
# @see https://developer-docs.amazon.com/sp-api/docs/sp-api-endpoints
|
7
|
+
ENDPOINTS = {
|
8
|
+
"us-east-1" => {
|
9
|
+
selling_region: "North America",
|
10
|
+
host: "sellingpartnerapi-na.amazon.com",
|
11
|
+
},
|
12
|
+
"us-west-2" => {
|
13
|
+
selling_region: "Far East",
|
14
|
+
host: "sellingpartnerapi-fe.amazon.com",
|
15
|
+
},
|
16
|
+
"eu-west-1" => {
|
17
|
+
selling_region: "Europe",
|
18
|
+
host: "sellingpartnerapi-eu.amazon.com",
|
19
|
+
},
|
20
|
+
}
|
21
|
+
|
22
|
+
Endpoint = Data.define(:aws_region, :selling_region, :host) do
|
23
|
+
class << self
|
24
|
+
# @param [String] aws_region
|
25
|
+
def find(aws_region)
|
26
|
+
values = ENDPOINTS.fetch(aws_region) do
|
27
|
+
raise ArgumentError, "#{aws_region} not found"
|
28
|
+
end
|
29
|
+
|
30
|
+
new(**values, aws_region: aws_region)
|
31
|
+
end
|
32
|
+
|
33
|
+
def find_by_selling_region(selling_region)
|
34
|
+
aws_region, values = ENDPOINTS.find { |_, v| v[:selling_region] == selling_region } ||
|
35
|
+
raise(ArgumentError, "#{selling_region} not found")
|
36
|
+
|
37
|
+
new(**values, aws_region: aws_region)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [URI]
|
42
|
+
def production
|
43
|
+
URI::HTTPS.build(host: host)
|
44
|
+
end
|
45
|
+
|
46
|
+
# @return [URI]
|
47
|
+
def sandbox
|
48
|
+
URI::HTTPS.build(host: "sandbox.#{host}")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/peddler/error.rb
CHANGED
@@ -2,29 +2,39 @@
|
|
2
2
|
|
3
3
|
module Peddler
|
4
4
|
class Error < StandardError
|
5
|
-
|
6
|
-
class QuotaExceeded < Error; end
|
7
|
-
class Unauthorized < Error; end
|
8
|
-
|
9
|
-
attr_reader :cause
|
5
|
+
attr_reader :response
|
10
6
|
|
11
7
|
# @!visibility private
|
12
8
|
class << self
|
13
9
|
def build(response)
|
14
10
|
error = JSON.parse(response).dig("errors").first
|
15
11
|
class_name = error.dig("code")
|
16
|
-
|
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
|
17
21
|
|
18
|
-
klass.new(
|
22
|
+
klass.new(message, response)
|
19
23
|
rescue NameError
|
20
|
-
|
21
|
-
retry
|
24
|
+
# Do nothing if code cannot be converted to a class name
|
22
25
|
end
|
23
26
|
end
|
24
27
|
|
25
|
-
def initialize(msg = nil,
|
26
|
-
@
|
28
|
+
def initialize(msg = nil, response = nil)
|
29
|
+
@response = response
|
27
30
|
super(msg)
|
28
31
|
end
|
29
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
|
30
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
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "peddler/endpoint"
|
4
|
+
|
5
|
+
module Peddler
|
6
|
+
# @see https://developer-docs.amazon.com/sp-api/docs/marketplace-ids
|
7
|
+
MARKETPLACE_IDS = {
|
8
|
+
"CA" => { id: "A2EUQ1WTGCTBG2", country_name: "Canada", selling_region: "North America" },
|
9
|
+
"US" => { id: "ATVPDKIKX0DER", country_name: "United States", selling_region: "North America" },
|
10
|
+
"MX" => { id: "A1AM78C64UM0Y8", country_name: "Mexico", selling_region: "North America" },
|
11
|
+
"BR" => { id: "A2Q3Y263D00KWC", country_name: "Brazil", selling_region: "North America" },
|
12
|
+
"IE" => { id: "A28R8C7NBKEWEA", country_name: "Ireland", selling_region: "Europe" },
|
13
|
+
"ES" => { id: "A1RKKUPIHCS9HS", country_name: "Spain", selling_region: "Europe" },
|
14
|
+
"UK" => { id: "A1F83G8C2ARO7P", country_name: "United Kingdom", selling_region: "Europe" },
|
15
|
+
"FR" => { id: "A13V1IB3VIYZZH", country_name: "France", selling_region: "Europe" },
|
16
|
+
"BE" => { id: "AMEN7PMS3EDWL", country_name: "Belgium", selling_region: "Europe" },
|
17
|
+
"NL" => { id: "A1805IZSGTT6HS", country_name: "Netherlands", selling_region: "Europe" },
|
18
|
+
"DE" => { id: "A1PA6795UKMFR9", country_name: "Germany", selling_region: "Europe" },
|
19
|
+
"IT" => { id: "APJ6JRA9NG5V4", country_name: "Italy", selling_region: "Europe" },
|
20
|
+
"SE" => { id: "A2NODRKZP88ZB9", country_name: "Sweden", selling_region: "Europe" },
|
21
|
+
"ZA" => { id: "AE08WJ6YKNBMC", country_name: "South Africa", selling_region: "Europe" },
|
22
|
+
"PL" => { id: "A1C3SOZRARQ6R3", country_name: "Poland", selling_region: "Europe" },
|
23
|
+
"EG" => { id: "ARBP9OOSHTCHU", country_name: "Egypt", selling_region: "Europe" },
|
24
|
+
"TR" => { id: "A33AVAJ2PDY3EV", country_name: "Turkey", selling_region: "Europe" },
|
25
|
+
"SA" => { id: "A17E79C6D8DWNP", country_name: "Saudi Arabia", selling_region: "Europe" },
|
26
|
+
"AE" => { id: "A2VIGQ35RCS4UG", country_name: "United Arab Emirates", selling_region: "Europe" },
|
27
|
+
"IN" => { id: "A21TJRUUN4KGV", country_name: "India", selling_region: "Europe" },
|
28
|
+
"SG" => { id: "A19VAU5U5O7RUS", country_name: "Singapore", selling_region: "Far East" },
|
29
|
+
"AU" => { id: "A39IBJ37TRP1C6", country_name: "Australia", selling_region: "Far East" },
|
30
|
+
"JP" => { id: "A1VC38T7YXB528", country_name: "Japan", selling_region: "Far East" },
|
31
|
+
}
|
32
|
+
|
33
|
+
# @!parse
|
34
|
+
# # Wraps an Amazon marketplace
|
35
|
+
# #
|
36
|
+
# # @api public
|
37
|
+
# #
|
38
|
+
# # @!attribute [r] id
|
39
|
+
# # @!attribute [r] country_code
|
40
|
+
# # @!attribute [r] country_name
|
41
|
+
# # @!attribute [r] selling_region
|
42
|
+
# class Peddler::Marketplace < Data; end
|
43
|
+
Marketplace = Data.define(:id, :country_code, :country_name, :selling_region) do
|
44
|
+
class << self
|
45
|
+
# Finds the marketplace for the given country code
|
46
|
+
#
|
47
|
+
# @param [String] country_code
|
48
|
+
def find(country_code)
|
49
|
+
values = MARKETPLACE_IDS.fetch(country_code == "GB" ? "UK" : country_code) do
|
50
|
+
raise ArgumentError, "#{country_code} not found"
|
51
|
+
end
|
52
|
+
|
53
|
+
new(**values, country_code: country_code)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Returns the marketplace ID for the given country code
|
57
|
+
#
|
58
|
+
# @param [String] country_code
|
59
|
+
# @return [String]
|
60
|
+
def id(country_code)
|
61
|
+
find(country_code).id
|
62
|
+
end
|
63
|
+
|
64
|
+
# Returns the marketplace IDs for the given country codes
|
65
|
+
#
|
66
|
+
# @param [Array<String>] country_codes
|
67
|
+
# @return [Array<String>]
|
68
|
+
def ids(*country_codes)
|
69
|
+
country_codes.map { |country_code| id(country_code) }
|
70
|
+
end
|
71
|
+
|
72
|
+
# Returns all marketplaces
|
73
|
+
#
|
74
|
+
# @return [Array<Peddler::Marketplace>]
|
75
|
+
def all
|
76
|
+
MARKETPLACE_IDS.map do |country_code, values|
|
77
|
+
new(**values, country_code: country_code)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# @return [Peddler::Endpoint]
|
83
|
+
def endpoint
|
84
|
+
Endpoint.find_by_selling_region(selling_region)
|
85
|
+
end
|
86
|
+
|
87
|
+
# @note So HTTP can encode
|
88
|
+
# @return [String]
|
89
|
+
def to_str
|
90
|
+
id
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "delegate"
|
4
|
+
require "forwardable"
|
5
|
+
|
6
|
+
module Peddler
|
7
|
+
# Wraps HTTP::Response to allow custom parsing
|
8
|
+
class Response < SimpleDelegator
|
9
|
+
extend Forwardable
|
10
|
+
|
11
|
+
# @!method dig(*key)
|
12
|
+
# Delegates to the Hash returned by {ResponseDecorator#to_h} to extract a nested
|
13
|
+
# value specified by the sequence of keys
|
14
|
+
#
|
15
|
+
# @param [String] key one or more keys
|
16
|
+
# @see https://ruby-doc.org/core/Hash.html#method-i-dig
|
17
|
+
def_delegator :to_h, :dig
|
18
|
+
|
19
|
+
class << self
|
20
|
+
# Decorates an HTTP::Response
|
21
|
+
#
|
22
|
+
# @param [HTTP::Response] response
|
23
|
+
# @param [nil, #call] parser (if any)
|
24
|
+
# @return [ResponseDecorator]
|
25
|
+
def decorate(response, parser: nil)
|
26
|
+
new(response).tap do |decorator|
|
27
|
+
decorator.parser = parser
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# @return [#call]
|
33
|
+
attr_accessor :parser
|
34
|
+
|
35
|
+
def parse
|
36
|
+
parser ? parser.call(__getobj__) : __getobj__.parse
|
37
|
+
end
|
38
|
+
|
39
|
+
# Converts the response body to a Hash
|
40
|
+
#
|
41
|
+
# @return [Hash]
|
42
|
+
def to_h
|
43
|
+
(parser && parser.respond_to?(:to_h) ? parser : parse).to_h
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "http"
|
4
|
+
|
5
|
+
module Peddler
|
6
|
+
# Requests refresh and access tokens that authorize your application to take actions on behalf of a selling partner.
|
7
|
+
#
|
8
|
+
# The refresh token allows you to generate access tokens. Access tokens expire one hour after they are issued.
|
9
|
+
#
|
10
|
+
# @see https://developer-docs.amazon.com/sp-api/docs/connecting-to-the-selling-partner-api
|
11
|
+
class Token
|
12
|
+
class Error < StandardError
|
13
|
+
attr_reader :cause
|
14
|
+
|
15
|
+
def initialize(msg = nil, cause = nil)
|
16
|
+
@cause = cause
|
17
|
+
super(msg)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
URL = "https://api.amazon.com/auth/o2/token"
|
22
|
+
|
23
|
+
attr_reader :client_id, :client_secret, :options
|
24
|
+
|
25
|
+
class << self
|
26
|
+
def request(...)
|
27
|
+
new(...).request
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def initialize(client_id: ENV["LWA_CLIENT_ID"], client_secret: ENV["LWA_CLIENT_SECRET"], **options)
|
32
|
+
@client_id = client_id
|
33
|
+
@client_secret = client_secret
|
34
|
+
@options = options
|
35
|
+
end
|
36
|
+
|
37
|
+
def request
|
38
|
+
response = HTTP.post(URL, form: params)
|
39
|
+
|
40
|
+
unless response.status.success?
|
41
|
+
message = response.parse["error_description"]
|
42
|
+
raise Error.new(message, response)
|
43
|
+
end
|
44
|
+
|
45
|
+
response
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def params
|
51
|
+
{
|
52
|
+
grant_type: grant_type,
|
53
|
+
client_id: client_id,
|
54
|
+
client_secret: client_secret,
|
55
|
+
}.compact.merge(options)
|
56
|
+
end
|
57
|
+
|
58
|
+
def grant_type
|
59
|
+
return if options.key?(:grant_type)
|
60
|
+
|
61
|
+
if options.key?(:refresh_token)
|
62
|
+
"refresh_token"
|
63
|
+
elsif options.key?(:scope)
|
64
|
+
"client_credentials"
|
65
|
+
elsif options.key?(:code)
|
66
|
+
"authorization_code"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
data/lib/peddler/version.rb
CHANGED
data/lib/peddler.rb
CHANGED
@@ -1,54 +1,57 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "peddler/
|
4
|
-
require "peddler/
|
5
|
-
require "peddler/
|
6
|
-
require "peddler/
|
7
|
-
require "peddler/
|
8
|
-
require "peddler/
|
9
|
-
require "peddler/
|
10
|
-
require "peddler/
|
11
|
-
require "peddler/
|
12
|
-
require "peddler/
|
13
|
-
require "peddler/
|
14
|
-
require "peddler/
|
15
|
-
require "peddler/
|
16
|
-
require "peddler/
|
17
|
-
require "peddler/
|
18
|
-
require "peddler/
|
19
|
-
require "peddler/
|
20
|
-
require "peddler/
|
21
|
-
require "peddler/
|
22
|
-
require "peddler/
|
23
|
-
require "peddler/
|
24
|
-
require "peddler/
|
25
|
-
require "peddler/
|
26
|
-
require "peddler/
|
27
|
-
require "peddler/
|
28
|
-
require "peddler/
|
29
|
-
require "peddler/
|
30
|
-
require "peddler/
|
31
|
-
require "peddler/
|
32
|
-
require "peddler/
|
33
|
-
require "peddler/
|
34
|
-
require "peddler/
|
35
|
-
require "peddler/
|
36
|
-
require "peddler/
|
37
|
-
require "peddler/
|
38
|
-
require "peddler/
|
39
|
-
require "peddler/
|
40
|
-
require "peddler/
|
41
|
-
require "peddler/
|
42
|
-
require "peddler/
|
43
|
-
require "peddler/
|
44
|
-
require "peddler/
|
45
|
-
require "peddler/
|
46
|
-
require "peddler/
|
47
|
-
require "peddler/
|
48
|
-
require "peddler/
|
49
|
-
require "peddler/
|
50
|
-
require "peddler/
|
51
|
-
require "peddler/
|
52
|
-
require "peddler/
|
53
|
-
require "peddler/
|
54
|
-
require "peddler/
|
3
|
+
require "peddler/apis/amazon_warehousing_and_distribution_2024_05_09"
|
4
|
+
require "peddler/apis/aplus_content_2020_11_01"
|
5
|
+
require "peddler/apis/application_integrations_2024_04_01"
|
6
|
+
require "peddler/apis/application_management_2023_11_30"
|
7
|
+
require "peddler/apis/catalog_items_2020_12_01"
|
8
|
+
require "peddler/apis/catalog_items_2022_04_01"
|
9
|
+
require "peddler/apis/catalog_items_v0"
|
10
|
+
require "peddler/apis/data_kiosk_2023_11_15"
|
11
|
+
require "peddler/apis/easy_ship_2022_03_23"
|
12
|
+
require "peddler/apis/fba_inbound_eligibility_v1"
|
13
|
+
require "peddler/apis/fba_inventory_v1"
|
14
|
+
require "peddler/apis/feeds_2021_06_30"
|
15
|
+
require "peddler/apis/finances_2024_06_19"
|
16
|
+
require "peddler/apis/finances_v0"
|
17
|
+
require "peddler/apis/fulfillment_inbound_2024_03_20"
|
18
|
+
require "peddler/apis/fulfillment_inbound_v0"
|
19
|
+
require "peddler/apis/fulfillment_outbound_2020_07_01"
|
20
|
+
require "peddler/apis/invoices_2024_06_19"
|
21
|
+
require "peddler/apis/listings_items_2020_09_01"
|
22
|
+
require "peddler/apis/listings_items_2021_08_01"
|
23
|
+
require "peddler/apis/listings_restrictions_2021_08_01"
|
24
|
+
require "peddler/apis/merchant_fulfillment_v0"
|
25
|
+
require "peddler/apis/messaging_v1"
|
26
|
+
require "peddler/apis/notifications_v1"
|
27
|
+
require "peddler/apis/orders_v0"
|
28
|
+
require "peddler/apis/product_fees_v0"
|
29
|
+
require "peddler/apis/product_pricing_2022_05_01"
|
30
|
+
require "peddler/apis/product_pricing_v0"
|
31
|
+
require "peddler/apis/product_type_definitions_2020_09_01"
|
32
|
+
require "peddler/apis/replenishment_2022_11_07"
|
33
|
+
require "peddler/apis/reports_2021_06_30"
|
34
|
+
require "peddler/apis/sales_v1"
|
35
|
+
require "peddler/apis/sellers_v1"
|
36
|
+
require "peddler/apis/services_v1"
|
37
|
+
require "peddler/apis/shipment_invoicing_v0"
|
38
|
+
require "peddler/apis/shipping_v1"
|
39
|
+
require "peddler/apis/shipping_v2"
|
40
|
+
require "peddler/apis/solicitations_v1"
|
41
|
+
require "peddler/apis/supply_sources_2020_07_01"
|
42
|
+
require "peddler/apis/tokens_2021_03_01"
|
43
|
+
require "peddler/apis/uploads_2020_11_01"
|
44
|
+
require "peddler/apis/vendor_direct_fulfillment_inventory_v1"
|
45
|
+
require "peddler/apis/vendor_direct_fulfillment_orders_2021_12_28"
|
46
|
+
require "peddler/apis/vendor_direct_fulfillment_orders_v1"
|
47
|
+
require "peddler/apis/vendor_direct_fulfillment_payments_v1"
|
48
|
+
require "peddler/apis/vendor_direct_fulfillment_sandbox_test_data_2021_10_28"
|
49
|
+
require "peddler/apis/vendor_direct_fulfillment_shipping_2021_12_28"
|
50
|
+
require "peddler/apis/vendor_direct_fulfillment_shipping_v1"
|
51
|
+
require "peddler/apis/vendor_direct_fulfillment_transactions_2021_12_28"
|
52
|
+
require "peddler/apis/vendor_direct_fulfillment_transactions_v1"
|
53
|
+
require "peddler/apis/vendor_invoices_v1"
|
54
|
+
require "peddler/apis/vendor_orders_v1"
|
55
|
+
require "peddler/apis/vendor_shipments_v1"
|
56
|
+
require "peddler/apis/vendor_transaction_status_v1"
|
57
|
+
require "peddler/token"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: peddler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hakan Ensari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -40,63 +40,70 @@ files:
|
|
40
40
|
- LICENSE
|
41
41
|
- README.md
|
42
42
|
- lib/peddler.rb
|
43
|
-
- lib/peddler/access_token.rb
|
44
43
|
- lib/peddler/api.rb
|
45
|
-
- lib/peddler/
|
46
|
-
- lib/peddler/
|
47
|
-
- lib/peddler/
|
48
|
-
- lib/peddler/
|
49
|
-
- lib/peddler/
|
50
|
-
- lib/peddler/
|
51
|
-
- lib/peddler/
|
52
|
-
- lib/peddler/
|
53
|
-
- lib/peddler/
|
54
|
-
- lib/peddler/
|
55
|
-
- lib/peddler/
|
56
|
-
- lib/peddler/
|
57
|
-
- lib/peddler/
|
58
|
-
- lib/peddler/
|
59
|
-
- lib/peddler/
|
60
|
-
- lib/peddler/
|
61
|
-
- lib/peddler/
|
62
|
-
- lib/peddler/
|
63
|
-
- lib/peddler/
|
64
|
-
- lib/peddler/
|
65
|
-
- lib/peddler/
|
66
|
-
- lib/peddler/
|
67
|
-
- lib/peddler/
|
68
|
-
- lib/peddler/
|
69
|
-
- lib/peddler/
|
70
|
-
- lib/peddler/
|
71
|
-
- lib/peddler/
|
72
|
-
- lib/peddler/
|
73
|
-
- lib/peddler/
|
74
|
-
- lib/peddler/
|
75
|
-
- lib/peddler/
|
76
|
-
- lib/peddler/
|
77
|
-
- lib/peddler/
|
78
|
-
- lib/peddler/
|
79
|
-
- lib/peddler/
|
80
|
-
- lib/peddler/
|
81
|
-
- lib/peddler/
|
82
|
-
- lib/peddler/
|
83
|
-
- lib/peddler/
|
84
|
-
- lib/peddler/
|
85
|
-
- lib/peddler/
|
86
|
-
- lib/peddler/
|
87
|
-
- lib/peddler/
|
88
|
-
- lib/peddler/
|
89
|
-
- lib/peddler/
|
90
|
-
- lib/peddler/
|
91
|
-
- lib/peddler/
|
92
|
-
- lib/peddler/
|
93
|
-
- lib/peddler/
|
94
|
-
- lib/peddler/
|
95
|
-
- lib/peddler/
|
44
|
+
- lib/peddler/apis/amazon_warehousing_and_distribution_2024_05_09.rb
|
45
|
+
- lib/peddler/apis/aplus_content_2020_11_01.rb
|
46
|
+
- lib/peddler/apis/application_integrations_2024_04_01.rb
|
47
|
+
- lib/peddler/apis/application_management_2023_11_30.rb
|
48
|
+
- lib/peddler/apis/catalog_items_2020_12_01.rb
|
49
|
+
- lib/peddler/apis/catalog_items_2022_04_01.rb
|
50
|
+
- lib/peddler/apis/catalog_items_v0.rb
|
51
|
+
- lib/peddler/apis/data_kiosk_2023_11_15.rb
|
52
|
+
- lib/peddler/apis/easy_ship_2022_03_23.rb
|
53
|
+
- lib/peddler/apis/fba_inbound_eligibility_v1.rb
|
54
|
+
- lib/peddler/apis/fba_inventory_v1.rb
|
55
|
+
- lib/peddler/apis/feeds_2021_06_30.rb
|
56
|
+
- lib/peddler/apis/finances_2024_06_19.rb
|
57
|
+
- lib/peddler/apis/finances_v0.rb
|
58
|
+
- lib/peddler/apis/fulfillment_inbound_2024_03_20.rb
|
59
|
+
- lib/peddler/apis/fulfillment_inbound_v0.rb
|
60
|
+
- lib/peddler/apis/fulfillment_outbound_2020_07_01.rb
|
61
|
+
- lib/peddler/apis/invoices_2024_06_19.rb
|
62
|
+
- lib/peddler/apis/listings_items_2020_09_01.rb
|
63
|
+
- lib/peddler/apis/listings_items_2021_08_01.rb
|
64
|
+
- lib/peddler/apis/listings_restrictions_2021_08_01.rb
|
65
|
+
- lib/peddler/apis/merchant_fulfillment_v0.rb
|
66
|
+
- lib/peddler/apis/messaging_v1.rb
|
67
|
+
- lib/peddler/apis/notifications_v1.rb
|
68
|
+
- lib/peddler/apis/orders_v0.rb
|
69
|
+
- lib/peddler/apis/product_fees_v0.rb
|
70
|
+
- lib/peddler/apis/product_pricing_2022_05_01.rb
|
71
|
+
- lib/peddler/apis/product_pricing_v0.rb
|
72
|
+
- lib/peddler/apis/product_type_definitions_2020_09_01.rb
|
73
|
+
- lib/peddler/apis/replenishment_2022_11_07.rb
|
74
|
+
- lib/peddler/apis/reports_2021_06_30.rb
|
75
|
+
- lib/peddler/apis/sales_v1.rb
|
76
|
+
- lib/peddler/apis/sellers_v1.rb
|
77
|
+
- lib/peddler/apis/services_v1.rb
|
78
|
+
- lib/peddler/apis/shipment_invoicing_v0.rb
|
79
|
+
- lib/peddler/apis/shipping_v1.rb
|
80
|
+
- lib/peddler/apis/shipping_v2.rb
|
81
|
+
- lib/peddler/apis/solicitations_v1.rb
|
82
|
+
- lib/peddler/apis/supply_sources_2020_07_01.rb
|
83
|
+
- lib/peddler/apis/tokens_2021_03_01.rb
|
84
|
+
- lib/peddler/apis/uploads_2020_11_01.rb
|
85
|
+
- lib/peddler/apis/vendor_direct_fulfillment_inventory_v1.rb
|
86
|
+
- lib/peddler/apis/vendor_direct_fulfillment_orders_2021_12_28.rb
|
87
|
+
- lib/peddler/apis/vendor_direct_fulfillment_orders_v1.rb
|
88
|
+
- lib/peddler/apis/vendor_direct_fulfillment_payments_v1.rb
|
89
|
+
- lib/peddler/apis/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.rb
|
90
|
+
- lib/peddler/apis/vendor_direct_fulfillment_shipping_2021_12_28.rb
|
91
|
+
- lib/peddler/apis/vendor_direct_fulfillment_shipping_v1.rb
|
92
|
+
- lib/peddler/apis/vendor_direct_fulfillment_transactions_2021_12_28.rb
|
93
|
+
- lib/peddler/apis/vendor_direct_fulfillment_transactions_v1.rb
|
94
|
+
- lib/peddler/apis/vendor_invoices_v1.rb
|
95
|
+
- lib/peddler/apis/vendor_orders_v1.rb
|
96
|
+
- lib/peddler/apis/vendor_shipments_v1.rb
|
97
|
+
- lib/peddler/apis/vendor_transaction_status_v1.rb
|
98
|
+
- lib/peddler/endpoint.rb
|
96
99
|
- lib/peddler/error.rb
|
97
|
-
- lib/peddler/
|
100
|
+
- lib/peddler/helpers/feeds_2021_06_30.rb
|
101
|
+
- lib/peddler/json_feed_document.rb
|
102
|
+
- lib/peddler/marketplace.rb
|
103
|
+
- lib/peddler/response.rb
|
104
|
+
- lib/peddler/token.rb
|
98
105
|
- lib/peddler/version.rb
|
99
|
-
homepage: https://github.com/
|
106
|
+
homepage: https://github.com/lineofflight/peddler
|
100
107
|
licenses:
|
101
108
|
- MIT
|
102
109
|
metadata:
|
@@ -119,5 +126,5 @@ requirements: []
|
|
119
126
|
rubygems_version: 3.5.16
|
120
127
|
signing_key:
|
121
128
|
specification_version: 4
|
122
|
-
summary:
|
129
|
+
summary: Amazon Selling Partner API (SP-API) in Ruby
|
123
130
|
test_files: []
|