Stamps#find_rates does not accept multiple packages?
Opened this issue · 0 comments
stephen-puiszis commented
I'm need to integrate with multiple carriers for shipping estimates and have run into some inconsistencies. The one of most concern is ::Stamps#find_rates
not accepting multiple packages, while UPS / FedEx accept multiple packages. Is this an intentional design decision based on the Stamps.com API? I'm going through their documentation and am not seeing anything related. Would supporting Stamps.com with multiple packages be as simple as adding something similar to ::UPS#build_package_nodes
?
(everything below is copied and linked to the respective file on master)
def find_rates(origin, destination, package, options = {})
origin = standardize_address(origin)
destination = standardize_address(destination)
request = build_rate_request(origin, destination, package, options)
commit(:GetRates, request)
end
def find_rates(origin, destination, packages, options = {})
origin, destination = upsified_location(origin), upsified_location(destination)
options = @options.merge(options)
packages = Array(packages)
access_request = build_access_request
rate_request = build_rate_request(origin, destination, packages, options)
response = commit(:rates, save_request(access_request + rate_request), options[:test])
parse_rate_response(origin, destination, packages, response, options)
end
def find_rates(origin, destination, packages, options = {})
options = @options.merge(options)
packages = Array(packages)
rate_request = build_rate_request(origin, destination, packages, options)
xml = commit(save_request(rate_request), (options[:test] || false))
parse_rate_response(origin, destination, packages, xml, options)
end
build_packages_nodes(xml, packages, imperial)
def build_packages_nodes(xml, packages, imperial)
packages.map do |pkg|
xml.RequestedPackageLineItems do
xml.GroupPackageCount(1)
build_package_weight_node(xml, pkg, imperial)
build_package_dimensions_node(xml, pkg, imperial)
end
end
end
end