Filewatcher File Search File Search
Content Search
» » » » » libbusiness-ups-perl_1.13-1.deb » Content »
pkg://libbusiness-ups-perl_1.13-1.deb:14964/usr/share/man/man3/  info  control  downloads

libbusiness-ups-perl - A UPS Interface Module for Perl…  more info»


UPS(3pm)         User Contributed Perl Documentation        UPS(3pm)

       Business::UPS - A UPS Interface Module

         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";

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

       I've tried to keep this package to a minimum, so you'll need:

       ·   Perl 5.003 or higher

       ·   LWP Module

       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.  Rate Chart (drop-off, pick-up, etc - see below)
         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

       4   Weight

           Weight of the package in pounds

       5   Country

           Defaults to US

       6   Rate Chart

           How does the package get to UPS:

           Can be one of the following:

              Regular Daily Pickup
              On Call Air
              One Time Pickup
              Letter Center
              Customer Counter

ARGUMENTS for UPStrack()
       The tracking number.

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


                   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

             '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 of scanning locations.  Each line has two parts: 1.
           Time/Date of scan and 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
             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

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

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

             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";



             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";

       Let me know.

       Mark Solomon <>

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


3rd Berkeley Distributioperl 5.005, patch 03                UPS(3pm)
Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017