lib/peddler/api/fulfillment_inbound_v0.rb in peddler-3.0.0.beta1 vs lib/peddler/api/fulfillment_inbound_v0.rb in peddler-3.0.0
- old
+ new
@@ -1,10 +1,16 @@
# frozen_string_literal: true
require "peddler/api"
module Peddler
+ class << self
+ def fulfillment_inbound_v0(...)
+ API::FulfillmentInboundV0.new(...)
+ end
+ end
+
class API
# Selling Partner API for Fulfillment Inbound
#
# The Selling Partner API for Fulfillment Inbound lets you create applications that create and update inbound
# shipments of inventory to Amazon's fulfillment network.
@@ -14,158 +20,178 @@
# can be optimally placed in Amazon's fulfillment network—for example, positioning inventory closer to the
# customer. Alternatively, two inbound shipment plans might be created with the same Amazon fulfillment center
# destination if the two shipment plans require different processing—for example, items that require labels must
# be shipped separately from stickerless, commingled inventory.
#
- # @param [Hash] body The request schema for the CreateInboundShipmentPlanRequest operation.
+ # @note This operation can make a static sandbox call.
+ # @param body [Hash] The request schema for the CreateInboundShipmentPlanRequest operation.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def create_inbound_shipment_plan(body)
+ def create_inbound_shipment_plan(body, rate_limit: 2.0)
path = "/fba/inbound/v0/plans"
- rate_limit(2.0).post(path, body:)
+ meter(rate_limit).post(path, body:)
end
# Returns a new inbound shipment based on the specified shipmentId that was returned by the
# createInboundShipmentPlan operation.
#
- # @param [Hash] body The request schema for the InboundShipmentRequest operation.
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param body [Hash] The request schema for the InboundShipmentRequest operation.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def create_inbound_shipment(body, shipment_id)
+ def create_inbound_shipment(body, shipment_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}"
- rate_limit(2.0).post(path, body:)
+ meter(rate_limit).post(path, body:)
end
# Updates or removes items from the inbound shipment identified by the specified shipment identifier. Adding new
# items is not supported.
#
- # @param [Hash] body The request schema for the InboundShipmentRequest operation.
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param body [Hash] The request schema for the InboundShipmentRequest operation.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def update_inbound_shipment(body, shipment_id)
+ def update_inbound_shipment(body, shipment_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}"
- rate_limit(2.0).put(path, body:)
+ meter(rate_limit).put(path, body:)
end
# Returns pre-order information, including dates, that a seller needs before confirming a shipment for pre-order.
#
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
- # @param [String] marketplace_id A marketplace identifier. Specifies the marketplace the shipment is tied to.
+ # @param marketplace_id [String] A marketplace identifier. Specifies the marketplace the shipment is tied to.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def get_preorder_info(shipment_id, marketplace_id)
+ def get_preorder_info(shipment_id, marketplace_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/preorder"
params = {
"MarketplaceId" => marketplace_id,
}.compact
- rate_limit(2.0).get(path, params:)
+ meter(rate_limit).get(path, params:)
end
# Returns information needed to confirm a shipment for pre-order. Call this operation after calling the
# getPreorderInfo operation to get the NeedByDate value and other pre-order information about the shipment.
#
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
- # @param [String] need_by_date Date that the shipment must arrive at the Amazon fulfillment center to avoid
+ # @param need_by_date [String] Date that the shipment must arrive at the Amazon fulfillment center to avoid
# delivery promise breaks for pre-ordered items. Must be in YYYY-MM-DD format. The response to the
# getPreorderInfo operation returns this value.
- # @param [String] marketplace_id A marketplace identifier. Specifies the marketplace the shipment is tied to.
+ # @param marketplace_id [String] A marketplace identifier. Specifies the marketplace the shipment is tied to.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def confirm_preorder(shipment_id, need_by_date, marketplace_id)
+ def confirm_preorder(shipment_id, need_by_date, marketplace_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/preorder/confirm"
params = {
"NeedByDate" => need_by_date,
"MarketplaceId" => marketplace_id,
}.compact
- rate_limit(2.0).put(path, params:)
+ meter(rate_limit).put(path, params:)
end
# Returns labeling requirements and item preparation instructions to help prepare items for shipment to Amazon's
# fulfillment network.
#
- # @param [String] ship_to_country_code The country code of the country to which the items will be shipped. Note
+ # @note This operation can make a static sandbox call.
+ # @param ship_to_country_code [String] The country code of the country to which the items will be shipped. Note
# that labeling requirements and item preparation instructions can vary by country.
- # @param [Array<String>] seller_sku_list A list of SellerSKU values. Used to identify items for which you want
+ # @param seller_sku_list [Array<String>] A list of SellerSKU values. Used to identify items for which you want
# labeling requirements and item preparation instructions for shipment to Amazon's fulfillment network. The
# SellerSKU is qualified by the Seller ID, which is included with every call to the Seller Partner API. Note:
# Include seller SKUs that you have used to list items on Amazon's retail website. If you include a seller SKU
# that you have never used to list an item on Amazon's retail website, the seller SKU is returned in the
# InvalidSKUList property in the response.
- # @param [Array<String>] asin_list A list of ASIN values. Used to identify items for which you want item
+ # @param asin_list [Array<String>] A list of ASIN values. Used to identify items for which you want item
# preparation instructions to help with item sourcing decisions. Note: ASINs must be included in the product
# catalog for at least one of the marketplaces that the seller participates in. Any ASIN that is not included in
# the product catalog for at least one of the marketplaces that the seller participates in is returned in the
# InvalidASINList property in the response. You can find out which marketplaces a seller participates in by
# calling the getMarketplaceParticipations operation in the Selling Partner API for Sellers.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def get_prep_instructions(ship_to_country_code, seller_sku_list: nil, asin_list: nil)
+ def get_prep_instructions(ship_to_country_code, seller_sku_list: nil, asin_list: nil, rate_limit: 2.0)
path = "/fba/inbound/v0/prepInstructions"
params = {
"ShipToCountryCode" => ship_to_country_code,
"SellerSKUList" => seller_sku_list,
"ASINList" => asin_list,
}.compact
- rate_limit(2.0).get(path, params:)
+ meter(rate_limit).get(path, params:)
end
# Returns current transportation information about an inbound shipment.
#
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def get_transport_details(shipment_id)
+ def get_transport_details(shipment_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/transport"
- rate_limit(2.0).get(path)
+ meter(rate_limit).get(path)
end
# Sends transportation information to Amazon about an inbound shipment.
#
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
- # @param [Hash] body The request schema for the PutTransportDetailsRequest operation.
+ # @param body [Hash] The request schema for the PutTransportDetailsRequest operation.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def put_transport_details(shipment_id, body)
+ def put_transport_details(shipment_id, body, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/transport"
- rate_limit(2.0).put(path, body:)
+ meter(rate_limit).put(path, body:)
end
# Cancels a previously-confirmed request to ship an inbound shipment using an Amazon-partnered carrier. To be
# successful, you must call this operation before the VoidDeadline date that is returned by the
# getTransportDetails operation. Important: The VoidDeadline date is 24 hours after you confirm a Small Parcel
# shipment transportation request or one hour after you confirm a Less Than Truckload/Full Truckload (LTL/FTL)
# shipment transportation request. After the void deadline passes, your account will be charged for the shipping
# cost.
#
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def void_transport(shipment_id)
+ def void_transport(shipment_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/transport/void"
- rate_limit(2.0).post(path)
+ meter(rate_limit).post(path)
end
# Initiates the process of estimating the shipping cost for an inbound shipment by an Amazon-partnered carrier.
# Prior to calling the estimateTransport operation, you must call the putTransportDetails operation to provide
# Amazon with the transportation information for the inbound shipment.
#
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def estimate_transport(shipment_id)
+ def estimate_transport(shipment_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/transport/estimate"
- rate_limit(2.0).post(path)
+ meter(rate_limit).post(path)
end
# Confirms that the seller accepts the Amazon-partnered shipping estimate, agrees to allow Amazon to charge their
# account for the shipping cost, and requests that the Amazon-partnered carrier ship the inbound shipment. Prior
# to calling the confirmTransport operation, you should call the getTransportDetails operation to get the
@@ -174,39 +200,43 @@
# voidTransport operation to cancel the transportation request. Note that for a Small Parcel shipment, the seller
# has 24 hours after confirming a transportation request to void the transportation request. For a Less Than
# Truckload/Full Truckload (LTL/FTL) shipment, the seller has one hour after confirming a transportation request
# to void it. After the grace period has expired the seller's account will be charged for the shipping cost.
#
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def confirm_transport(shipment_id)
+ def confirm_transport(shipment_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/transport/confirm"
- rate_limit(2.0).post(path)
+ meter(rate_limit).post(path)
end
# Returns package/pallet labels for faster and more accurate shipment processing at the Amazon fulfillment center.
#
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
- # @param [String] page_type The page type to use to print the labels. Submitting a PageType value that is not
+ # @param page_type [String] The page type to use to print the labels. Submitting a PageType value that is not
# supported in your marketplace returns an error.
- # @param [String] label_type The type of labels requested.
- # @param [Integer] number_of_packages The number of packages in the shipment.
- # @param [Array<String>] package_labels_to_print A list of identifiers that specify packages for which you want
+ # @param label_type [String] The type of labels requested.
+ # @param number_of_packages [Integer] The number of packages in the shipment.
+ # @param package_labels_to_print [Array<String>] A list of identifiers that specify packages for which you want
# package labels printed. Must match CartonId values previously passed using the FBA Inbound Shipment Carton
# Information Feed. If not, the operation returns the IncorrectPackageIdentifier error code.
- # @param [Integer] number_of_pallets The number of pallets in the shipment. This returns four identical labels for
+ # @param number_of_pallets [Integer] The number of pallets in the shipment. This returns four identical labels for
# each pallet.
- # @param [Integer] page_size The page size for paginating through the total packages' labels. This is a required
+ # @param page_size [Integer] The page size for paginating through the total packages' labels. This is a required
# parameter for Non-Partnered LTL Shipments. Max value:1000.
- # @param [Integer] page_start_index The page start index for paginating through the total packages' labels. This
+ # @param page_start_index [Integer] The page start index for paginating through the total packages' labels. This
# is a required parameter for Non-Partnered LTL Shipments.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
def get_labels(shipment_id, page_type, label_type, number_of_packages: nil, package_labels_to_print: nil,
- number_of_pallets: nil, page_size: nil, page_start_index: nil)
+ number_of_pallets: nil, page_size: nil, page_start_index: nil, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/labels"
params = {
"PageType" => page_type,
"LabelType" => label_type,
"NumberOfPackages" => number_of_packages,
@@ -214,47 +244,51 @@
"NumberOfPallets" => number_of_pallets,
"PageSize" => page_size,
"PageStartIndex" => page_start_index,
}.compact
- rate_limit(2.0).get(path, params:)
+ meter(rate_limit).get(path, params:)
end
# Returns a bill of lading for a Less Than Truckload/Full Truckload (LTL/FTL) shipment. The getBillOfLading
# operation returns PDF document data for printing a bill of lading for an Amazon-partnered Less Than
# Truckload/Full Truckload (LTL/FTL) inbound shipment.
#
- # @param [String] shipment_id A shipment identifier originally returned by the createInboundShipmentPlan
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier originally returned by the createInboundShipmentPlan
# operation.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def get_bill_of_lading(shipment_id)
+ def get_bill_of_lading(shipment_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/billOfLading"
- rate_limit(2.0).get(path)
+ meter(rate_limit).get(path)
end
# Returns a list of inbound shipments based on criteria that you specify.
#
- # @param [Array<String>] shipment_status_list A list of ShipmentStatus values. Used to select shipments with a
+ # @note This operation can make a static sandbox call.
+ # @param shipment_status_list [Array<String>] A list of ShipmentStatus values. Used to select shipments with a
# current status that matches the status values that you specify.
- # @param [Array<String>] shipment_id_list A list of shipment IDs used to select the shipments that you want. If
+ # @param shipment_id_list [Array<String>] A list of shipment IDs used to select the shipments that you want. If
# both ShipmentStatusList and ShipmentIdList are specified, only shipments that match both parameters are
# returned.
- # @param [String] last_updated_after A date used for selecting inbound shipments that were last updated after (or
+ # @param last_updated_after [String] A date used for selecting inbound shipments that were last updated after (or
# at) a specified time. The selection includes updates made by Amazon and by the seller.
- # @param [String] last_updated_before A date used for selecting inbound shipments that were last updated before
+ # @param last_updated_before [String] A date used for selecting inbound shipments that were last updated before
# (or at) a specified time. The selection includes updates made by Amazon and by the seller.
- # @param [String] query_type Indicates whether shipments are returned using shipment information (by providing the
+ # @param query_type [String] Indicates whether shipments are returned using shipment information (by providing the
# ShipmentStatusList or ShipmentIdList parameters), using a date range (by providing the LastUpdatedAfter and
# LastUpdatedBefore parameters), or by using NextToken to continue returning items specified in a previous
# request.
- # @param [String] next_token A string token returned in the response to your previous request.
- # @param [String] marketplace_id A marketplace identifier. Specifies the marketplace where the product would be
+ # @param next_token [String] A string token returned in the response to your previous request.
+ # @param marketplace_id [String] A marketplace identifier. Specifies the marketplace where the product would be
# stored.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
def get_shipments(query_type, marketplace_id, shipment_status_list: nil, shipment_id_list: nil,
- last_updated_after: nil, last_updated_before: nil, next_token: nil)
+ last_updated_after: nil, last_updated_before: nil, next_token: nil, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments"
params = {
"ShipmentStatusList" => shipment_status_list,
"ShipmentIdList" => shipment_id_list,
"LastUpdatedAfter" => last_updated_after,
@@ -262,53 +296,57 @@
"QueryType" => query_type,
"NextToken" => next_token,
"MarketplaceId" => marketplace_id,
}.compact
- rate_limit(2.0).get(path, params:)
+ meter(rate_limit).get(path, params:)
end
# Returns a list of items in a specified inbound shipment.
#
- # @param [String] shipment_id A shipment identifier used for selecting items in a specific inbound shipment.
- # @param [String] marketplace_id A marketplace identifier. Specifies the marketplace where the product would be
+ # @note This operation can make a static sandbox call.
+ # @param shipment_id [String] A shipment identifier used for selecting items in a specific inbound shipment.
+ # @param marketplace_id [String] A marketplace identifier. Specifies the marketplace where the product would be
# stored.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
- def get_shipment_items_by_shipment_id(shipment_id, marketplace_id)
+ def get_shipment_items_by_shipment_id(shipment_id, marketplace_id, rate_limit: 2.0)
path = "/fba/inbound/v0/shipments/#{shipment_id}/items"
params = {
"MarketplaceId" => marketplace_id,
}.compact
- rate_limit(2.0).get(path, params:)
+ meter(rate_limit).get(path, params:)
end
# Returns a list of items in a specified inbound shipment, or a list of items that were updated within a specified
# time frame.
#
- # @param [String] last_updated_after A date used for selecting inbound shipment items that were last updated after
+ # @note This operation can make a static sandbox call.
+ # @param last_updated_after [String] A date used for selecting inbound shipment items that were last updated after
# (or at) a specified time. The selection includes updates made by Amazon and by the seller.
- # @param [String] last_updated_before A date used for selecting inbound shipment items that were last updated
+ # @param last_updated_before [String] A date used for selecting inbound shipment items that were last updated
# before (or at) a specified time. The selection includes updates made by Amazon and by the seller.
- # @param [String] query_type Indicates whether items are returned using a date range (by providing the
+ # @param query_type [String] Indicates whether items are returned using a date range (by providing the
# LastUpdatedAfter and LastUpdatedBefore parameters), or using NextToken, which continues returning items
# specified in a previous request.
- # @param [String] next_token A string token returned in the response to your previous request.
- # @param [String] marketplace_id A marketplace identifier. Specifies the marketplace where the product would be
+ # @param next_token [String] A string token returned in the response to your previous request.
+ # @param marketplace_id [String] A marketplace identifier. Specifies the marketplace where the product would be
# stored.
+ # @param rate_limit [Float] Requests per second
# @return [Hash] The API response
def get_shipment_items(query_type, marketplace_id, last_updated_after: nil, last_updated_before: nil,
- next_token: nil)
+ next_token: nil, rate_limit: 2.0)
path = "/fba/inbound/v0/shipmentItems"
params = {
"LastUpdatedAfter" => last_updated_after,
"LastUpdatedBefore" => last_updated_before,
"QueryType" => query_type,
"NextToken" => next_token,
"MarketplaceId" => marketplace_id,
}.compact
- rate_limit(2.0).get(path, params:)
+ meter(rate_limit).get(path, params:)
end
end
end
end