ontrac-web-services

Description

This gem provides an interface to the OnTrac web services API. It interfaces with its HTTP/POST API to generate labels (looking up shipping rates and tracking coming soon).

Examples

Creating a shipment with multiple packages

  require 'ontrac'

  include ::Ontrac::WebServices
  include ::Ontrac::WebServices::Definitions

  credentials = Service::Credentials.new("ACCOUNT #", "PASSWORD", "production")
  service = Service.new(credentials)

  shipper = ShipperData.new
  shipper.name    = "Fulfillment Circle"
  shipper.address = "343 third street"
  shipper.suite   = "suite 17"
  shipper.city    = "sparks"
  shipper.state   = "nv"
  shipper.zip     = "89434"
  shipper.phone   = "(415) 350-2608"

  recipient = DeliveryData.new
  recipient.name     = "Joe Shmoe"
  recipient.address  = "123 4th St"
  recipient.address2 = "Suite 315"
  recipient.city     = "San Luis Obispo"
  recipient.state    = "CA"
  recipient.zip      = "93401"
  recipient.phone    = "(805) 555-1234"

  responses = service.request_shipment(SERVICE_TYPE_GROUND, shipper, recipient, LABEL_TYPE_PDF,
      [ 22.0, 15, 10 ]) do |package_data, package_num|

    package_data.package_detail.residential = false
    package_data.package_detail.reference = "order #1234"
  end

  tracking_numbers = responses.map do |(tracking_number, label, charge)|
    puts "tracking number: #{tracking_number}"
    puts "charge: #{charge.to_f}"
    File.open("#{tracking_number}.pdf", "w") { |f| f << label }
    tracking_number
  end