NAME
Business::TNT::ExpressConnect - TNT ExpressConnect interface
SYNOPSIS
# read config from config file
my $tnt = Business::TNT::ExpressConnect->new();
# provide username and password
my $tnt = Business::TNT::ExpressConnect->new({username => 'john', password => 'secret'});
# use xml file to define the request
my $tnt_prices = $tnt->get_prices({file => $xml_filename});
#use a hash to define the request (only one of consignmentDetails or pieceLines has to be present)
my %params = (
sender => {country => 'AT', town => 'Vienna', postcode => 1020},
delivery => {country => 'AT', town => 'Schwechat', postcode => '2320'},
account => {accountNumber => 33505, accountCountry => 'SK'},
consignmentDetails => {
totalWeight => 1.25,
totalVolume => 0.1,
totalNumberOfPieces => 1
}
pieceLines => [
{ pieceLine => {
numberOfPieces => 2,
pieceMeasurements => {weight => 11, length => 0.44, width => 0.37, height => 1},
pallet => 0,
}
},
],
);
$tnt_prices = $tnt->get_prices({params => \%params});
warn join("\n",@{$tnt->errors}) unless ($tnt_prices);
# tnt prices structure
$tnt_prices = {
'10' => {
'charge_elements' => 'HASH(0x40a5f40)',
'total_price_excl_vat' => '96.14',
'vat_amount' => '19.23',
'price_desc' => '10:00 Express',
'total_price' => '115.37',
'sort_index' => 1,
'currency' => 'EUR'
},
'09' => {
'currency' => 'EUR',
'sort_index' => 0,
'charge_elements' => 'HASH(0x40b0130)',
'total_price_excl_vat' => '101.79',
'vat_amount' => '20.36',
'total_price' => '122.15',
'price_desc' => '9:00 Express'
},
};
DESCRIPTION
Calculate prices for TNT delivery.
Schema definitions and user guides: https://express.tnt.com/expresswebservices-website/app/pricingrequest.html
CONFIGURATION
etc/tnt-expressconnect.ini
username = john
password = secret
METHODS
get_prices(\%hash)
get_prices({file => $filename}) or get_prices({params => \%params})
Returns a hash of tnt products for that request or undef in case of error. $tnt->errors returns an array ref with error messages.
hash_to_price_request_xml(\%hash)
Takes a hash and turns it into a XML::LibXML::Document for a price request.
http_ping
Check if tnt server is reachable.
tnt_get_price_url
Returns the URL of the TNT price check interface.
AUTHOR
Jozef Kutej, <jkutej at cpan.org>
; Andrea Pavlovic, <spinne at cpan.org>
CONTRIBUTORS
The following people have contributed to the meon::Web by committing their code, sending patches, reporting bugs, asking questions, suggesting useful advice, nitpicking, chatting on IRC or commenting on my blog (in no particular order):
you?
LICENSE AND COPYRIGHT
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.