NAME
Business::Shipping - API for UPS and USPS
SYNOPSIS
Simple API for rating requests.
use Business::Shipping;
my $rate_request = Business::Shipping->rate_request(
shipper => 'UPS',
user_id => '',
password => '',
service => 'GNDRES',
from_zip => '98682',
to_zip => '98270',
weight => 5.00,
};
$rate_request->submit() or die $shipping->error();
print $rate_request->total_charges();
ABSTRACT
Business::Shipping is an API for shipping-related tasks.
Currently, the only implemented task is shipping cost calculation, but tracking, availability, and other services are planned for future addition.
UPS and USPS have been implemented so far, but FedEX and perhaps others are planned for future support.
MULTI-PACKAGE API
$shipment->set(
user_id => '',
password => '',
from_zip => '',
to_zip => '',
);
$shipment->add_package(
id => '0',
weight => '',
);
$shipment->add_package(
id => '1',
weight => '',
);
$shipment->submit() or print $shipment->error();
print $shipment->package('0')->get_charges( 'Airmail Parcel Post' );
print $shipment->package('1')->get_charges( 'Airmail Parcel Post' );
print $shipment->get_total_price( 'Airmail Parcel Post' );
ERROR/DEBUG HANDLING
The 'event_handlers' argument takes a hashref telling Business::Shipping what to do for error, debug, trace, and the like. The value can be one of four options:
* 'STDERR'
* 'STDOUT'
* 'carp'
* 'croak'
For example:
$shipment->set(
'event_handlers' => ({
'debug' => undef,
'trace' => undef,
'error' => 'croak',
})
);
The default is 'STDERR' for error handling, and nothing for debug/trace handling. Note that you can still access error messages even with no handler, by accessing the return values of methods. For example:
$shipment->set( %values ) or print $shipment->error();
However, if you don't save the error value before the next call, it could be overwritten by a new error.