ups_time_in_transit is an easy to use interface to the UPS Time in Transit API.
installation ==
gem install ups_time_in_transit
usage ==
# define your access options. These are options that won’t change # between requests. Take care to specify the proper UPS url: # ‘wwwcie.ups.com/ups.app/xml/TimeInTransit’ for testing and # development, and ‘onlinetools.ups.com/ups.app/xml/TimeInTransit’ # for production. access_options =
:url => 'https://wwwcie.ups.com/ups.app/xml/TimeInTransit',
:access_license_number => 'foo',
:user_id => 'bar',
:password => 'baz',
:order_cutoff_time => 17 ,
:sender_city => 'Hoboken',
:sender_state => 'NJ',
:sender_country_code => 'US',
:sender_zip => '07030'
# It’s best to store these these options in a yaml file and load them # into a map when you need them: yaml = YAML.load_file(“#{RAILS_ROOT}/config/ups_time_in_transit.yml”) access_options = yaml.inject({}){|h,(k, v)| h = v; h}
# create an api instance with your access options time_in_transit_api = UPS::TimeInTransit.new(access_options)
# for each request, generate a map of request options describing # the shipment and where it’s going request_options = {
:total_packages => 1,
:unit_of_measurement => 'LBS',
:weight => 10,
:city => 'Newark',
:state => 'DE',
:zip => '19711',
:country_code => 'US'}
# request the map of delivery types (overnight, ground, etc.) to the expected # delivery date for that type. Be sure to rescue any errors. begin
delivery_dates = time_in_transit_api.request()
rescue => error
puts error.inspect
end
changelog ==
v.0.1.0
initial release