Class: ActiveMerchant::Shipping::UPS

Inherits:
Carrier show all
Defined in:
lib/active_shipping/shipping/carriers/ups.rb

Constant Summary collapse

TEST_URL =
'https://wwwcie.ups.com'
LIVE_URL =
'https://www.ups.com'
RESOURCES =
{
  :rates => 'ups.app/xml/Rate',
  :track => 'ups.app/xml/Track'
}
PICKUP_CODES =
{
  :daily_pickup => "01",
  :customer_counter => "03", 
  :one_time_pickup => "06",
  :on_call_air => "07",
  :suggested_retail_rates => "11",
  :letter_center => "19",
  :air_service_center => "20"
}
DEFAULT_SERVICES =
{
  "01" => "UPS Next Day Air",
  "02" => "UPS Second Day Air",
  "03" => "UPS Ground",
  "07" => "UPS Worldwide Express",
  "08" => "UPS Worldwide Expedited",
  "11" => "UPS Standard",
  "12" => "UPS Three-Day Select",
  "13" => "UPS Next Day Air Saver",
  "14" => "UPS Next Day Air Early A.M.",
  "54" => "UPS Worldwide Express Plus",
  "59" => "UPS Second Day Air A.M.",
  "65" => "UPS Saver",
  "82" => "UPS Today Standard",
  "83" => "UPS Today Dedicated Courier",
  "84" => "UPS Today Intercity",
  "85" => "UPS Today Express",
  "86" => "UPS Today Express Saver"
}
CANADA_ORIGIN_SERVICES =
{
  "01" => "UPS Express",
  "02" => "UPS Expedited",
  "14" => "UPS Express Early A.M."
}
MEXICO_ORIGIN_SERVICES =
{
  "07" => "UPS Express",
  "08" => "UPS Expedited",
  "54" => "UPS Express Plus"
}
EU_ORIGIN_SERVICES =
{
  "07" => "UPS Express",
  "08" => "UPS Expedited"
}
OTHER_NON_US_ORIGIN_SERVICES =
{
  "07" => "UPS Express"
}
EU_COUNTRY_CODES =
["GB", "AT", "BE", "BG", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE"]
US_TERRITORIES_TREATED_AS_COUNTRIES =
["AS", "FM", "GU", "MH", "MP", "PW", "PR", "VI"]
@@name =
"UPS"

Instance Attribute Summary

Attributes inherited from Carrier

#last_request, #test_mode

Instance Method Summary collapse

Methods inherited from Carrier

#initialize, #maximum_weight, #valid_credentials?

Methods included from PostsData

included, #ssl_get, #ssl_post

Methods included from RequiresParameters

#requires!

Constructor Details

This class inherits a constructor from ActiveMerchant::Shipping::Carrier

Instance Method Details

#find_rates(origin, destination, packages, options = {}) ⇒ Object



80
81
82
83
84
85
86
87
88
# File 'lib/active_shipping/shipping/carriers/ups.rb', line 80

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] || false))
  parse_rate_response(origin, destination, packages, response, options)
end

#find_tracking_info(tracking_number, options = {}) ⇒ Object



90
91
92
93
94
95
96
# File 'lib/active_shipping/shipping/carriers/ups.rb', line 90

def find_tracking_info(tracking_number, options={})
  options = @options.update(options)
  access_request = build_access_request
  tracking_request = build_tracking_request(tracking_number, options)
  response = commit(:track, save_request(access_request + tracking_request), (options[:test] || false))
  parse_tracking_response(response, options)
end

#requirementsObject



76
77
78
# File 'lib/active_shipping/shipping/carriers/ups.rb', line 76

def requirements
  [:key, :login, :password]
end