Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A free open source content management system and web application framework. The most widely deployed mod_perl application on the planet.
Perl JavaScript CSS
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This repo holds a UPS shipping driver for WebGUI, developed against
WebGUI 7.7.8.  To install it, you only need to run the install script
in the sbin directory, or, manually add "WebGUI::Shop::ShipDriver::UPS"
to the shippingDrivers entry in your WebGUI config file.

Instructions for registering with the UPS are in the Shipping driver
edit screen.

The driver is currently limited to shipping originating in the United
States only.  Here is what is required to make it handle all available UPS
shipping services internationally.

* The Product needs to be modified to have units for weight.  Currently,
they are unitless, and likewise, this driver assumes that all weights are in pounds
(the current default weight unit in the United States).  The chosen unit is added
to the PackageWeight XML tag, in buildXML.

* The driver code itself needs to be extended to add the shipping services.
    1) Add i18n for the names of the new services, and a shipping type.  See
       the code in the defintion subroutine.
    2) Add a new key/value pair to the %shippingTypes hash.
    3) The %shippingServices hash has a unique list of shipping services by code.  If you
       introduce new codes, add the appropriate key/value pairs to the hash.  This is
       required to get the selected code into the generated HTML, regardless of the
       shippingType chosen.
    4) There is javascript inside of www/extras/yui-webgui/ShipDriver/UPS.js that will
       alter the set of shipping services displayed to the user, based on which shipping
       type they have chosen.  It in internationalized.
        * Inside WebGUI.ShipDriver.UPS.initServiceTables, add a new object to hold codes
          and i18n labels to describe the services.
        * Add a new service to the switch (newService) statement.  Make sure the new case
          matches the keys you added to the shippingTypes hash in the definition subroutine.
    5) Add a new definition property that allows the user to choose the type of currency
       to use for their shipping rate quote.

Country names and codes, and currency codes are ISO standards.  Country codes are provided
by the Locales module, ISO 3166.  This module already has translations for 13 languages.
For additional languages, they should be added as modules and sent to the Locales module

Currency codes are not currently supported by this driver, nor is there an existing internationalized
currency module.  This should be a simple extension to Locales.
Something went wrong with that request. Please try again.