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
        my %params = (
            sender             => {country => 'AT', town => 'Vienna',    postcode => 1020},
            delivery           => {country => 'AT', town => 'Schwechat', postcode => '2320'},
            consignmentDetails => {
                totalWeight         => 1.25,
                totalVolume         => 0.1,
                totalNumberOfPieces => 1
            }
        );

        $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.ht
    ml

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.

