SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

BotDetect - Real-Time Bot Detection API
 
 

MAN page from Mandrake Other perl-Business-UPS-1.11-1.i386.rpm

UPS

Section: User Contributed Perl Documentation (3)
Updated: perl 5.004, patch 04
Index 

NAME

Business::UPS - A UPS Interface Module 

SYNOPSIS

  use Business::UPS;
  my ($shipping,$ups_zone,$error) = getUPS(qw/GNDCOM 23606 23607 50/);  $error and die "ERROR: $error\n";  print "Shipping is \$$shipping\n";  print "UPS Zone is $ups_zone\n";
  %track = UPStrack("z10192ixj29j39");  $track{error} and die "ERROR: $track{error};
  # 'Delivered' or 'In-transit'  print "This package is $track{Current Status}\n"; 
 

DESCRIPTION

A way of sending four arguments to a module to get shipping charges that can be used in, say, a CGI. 

REQUIREMENTS

I've tried to keep this package to a minimum, so you'll need:
Perl 5.003 or higher
LWP Module
 

ARGUMENTS for getUPS()

Call the subroutine with the following values:

  1. Product code (see product-codes.txt)  2. Origin Zip Code  3. Destination Zip Code  4. Weight of Package
and optionally:

  5.  Country Code, (see country-codes.txt)  6.  Length,  7.  Width,  8.  Height,  9.  Oversized (defined if oversized), and  10. COD (defined if C.O.D.)

1
Product Codes:

  1DM           Next Day Air Early AM  1DML          Next Day Air Early AM Letter  1DA           Next Day Air  1DAL          Next Day Air Letter  1DP           Next Day Air Saver  1DPL          Next Day Air Saver Letter  2DM           2nd Day Air A.M.  2DA           2nd Day Air  2DML          2nd Day Air A.M. Letter  2DAL          2nd Day Air Letter  3DS           3 Day Select  GNDCOM        Ground Commercial  GNDRES        Ground Residential  XPR           Worldwide Express  XDM           Worldwide Express Plus  XPRL          Worldwide Express Letter  XDML          Worldwide Express Plus Letter  XPD           Worldwide Expedited
In an HTML ``option'' input it might look like this:

  <OPTION VALUE="1DM">Next Day Air Early AM  <OPTION VALUE="1DML">Next Day Air Early AM Letter  <OPTION SELECTED VALUE="1DA">Next Day Air  <OPTION VALUE="1DAL">Next Day Air Letter  <OPTION VALUE="1DP">Next Day Air Saver  <OPTION VALUE="1DPL">Next Day Air Saver Letter  <OPTION VALUE="2DM">2nd Day Air A.M.  <OPTION VALUE="2DA">2nd Day Air  <OPTION VALUE="2DML">2nd Day Air A.M. Letter  <OPTION VALUE="2DAL">2nd Day Air Letter  <OPTION VALUE="3DS">3 Day Select  <OPTION VALUE="GNDCOM">Ground Commercial  <OPTION VALUE="GNDRES">Ground Residential

2
Origin Zip(tm) Code

Origin Zip Code as a number or string (NOT +4 Format)

3
Destination Zip(tm) Code

Destination Zip Code as a number or string (NOT +4 Format)

4
Weight

Weight of the package in pounds

 

ARGUMENTS for UPStrack()

The tracking number.

  use Business::UPS;  %t = UPStrack("1ZX29W290250xxxxxx");  print "This package is $track{Current Status}\n";
 

RETURN VALUES


getUPS()

        The raw http get() returns a list with the following values:
          ##  Desc              Typical Value          --  ---------------   -------------          0.  Name of server:   UPSOnLine3          1.  Product code:     GNDCOM          2.  Orig Postal:      23606          3.  Country:          US          4.  Dest Postal:      23607          5.  Country:          US          6.  Shipping Zone:    002          7.  Weight (lbs):     50          8.  Sub-total Cost:   7.75          9.  Addt'l Chrgs:     0.00          10. Total Cost:       7.75          11. ???:              -1
        If anyone wants these available for some reason, let me know.


UPStrack()    The hash that's returned is like the following:

  'Delivered on'        => '1-22-1998 at 2:58 PM'  'Notice'              => 'UPS authorizes you to use UPS...'  'Received by'         => 'DR PORCH'  'Addressed to'        => 'NEWPORT NEWS, VA US'  'scan'                =>  HASH(0x146e0c) (more later...)  'Current Status'      => 'Delivered'  'Delivered to'        => 'RESIDENTIAL'  'Sent on'             => '1-20-1998'  'UPS Service'         => '2ND DAY AIR'  'Tracking Number'     => '1ZX29W29025xxxxxx'  'Scanning'            => (See next paragraph)
Notice the key `Scanning' is a newline (\n) delineated list ofscanning locations. Each line has two parts: 1. Time/Date of scanand 2. Type of scan. In its scalar context, it looks like this:

  1-22-19982:58 PM NEWPORT NEWS-OYSTER, VA US = DELIVERED  1-21-199811:37 PM RICHMOND, VA US = LOCATION SCAN  2:05 PM PHILA AIR HUB, PA US = LOCATION SCAN  1-20-199811:35 PM PHILA AIR HUB, PA US = LOCATION SCAN
...but a line or two of code can make it very usable like this:

  foreach $line (split "\n", $track{Scanning}) {    my ($location, $type) = split /=/, $line;    print "At $location, the shipment was $type\n";  }
 

EXAMPLE


getUPS()
To retreive the shipping of a `Ground Commercial' Package weighing 25lbs. sent from 23001 to 24002 this package would be called like this:

  #!/usr/local/bin/perl  use Business::UPS;
  my ($shipping,$ups_zone,$error) = getUPS(qw/GNDCOM 23001 23002 25/);  $error and die "ERROR: $error\n";  print "Shipping is \$$shipping\n";  print "UPS Zone is $ups_zone\n";

UPStrack()

  #!/usr/local/bin/perl
  use Business:UPS;
  %t = UPStrack("z10192ixj29j39");  $t{error} and die "ERROR: $t{error};          print "This package is $t{'Current Status'}\n"; # 'Delivered' or                                                   # 'In-transit'  print "More info:\n";  foreach $key (keys %t) {    print "KEY: $key = $t{$key}\n";  }
 

BUGS

Let me know. 

AUTHOR

Mark Solomon <msolomonAATTseva.net>

mailto:msolomonAATTseva.net

http://www.seva.net/~msolomon/

NOTE: UPS is a registered trademark of United Parcel Service. 

SEE ALSO

perl(1).


 

Index

NAME
SYNOPSIS
DESCRIPTION
REQUIREMENTS
ARGUMENTS for getUPS()
ARGUMENTS for UPStrack()
RETURN VALUES
EXAMPLE
BUGS
AUTHOR
SEE ALSO

This document was created byman2html,using the manual pages.
 
ICM Bot detect detector