Google-Checkout
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Google/Checkout/Command/AddTrackingData.pm view on Meta::CPAN
carrier => Google::Checkout::XML::Constants::DHL,
tracking_number => 5678);
my $response = $gco->command($add_tracking, $run_diagnose);
die $response if is_gco_error($response);
print $response,"\n\n";
=head1 DESCRIPTION
A sub-class of C<Google::Checkout::Command::DeliverOrder>.
This module is used to add tracking data to an order.
=over 4
=item new ORDER_NUMBER => ..., CARRIER => ..., TRACKING_NUMBER => ...
Constructor. Takes a Google order number, a tracking number
and a carrier.
=item to_xml
Returns the XML that will be sent to Google Checkout.
Note that this function should not be used directly. Instead,
it's called indirectly by the C<Google::Checkout::General::GCO>
object internally.
=back
=cut
=head1 COPYRIGHT
Copyright 2006 Google. All rights reserved.
=head1 SEE ALSO
Google::Checkout::General::GCO
Google::Checkout::Command::DeliverOrder
=cut
#--
#-- <add-tracking-data-order>
#--
use strict;
use warnings;
use Google::Checkout::General::Error;
use Google::Checkout::General::Util qw/get_valid_carrier is_gco_error/;
use Google::Checkout::XML::Constants;
use Google::Checkout::Command::DeliverOrder;
our @ISA = qw/Google::Checkout::Command::DeliverOrder/;
sub new
{
my ($class, @args) = @_;
my $self = $class->SUPER::new(@args);
$self->set_name(Google::Checkout::XML::Constants::ADD_TRACKING_DATA);
return bless $self => $class;
}
sub to_xml
{
my ($self, %args) = @_;
my $carrier = get_valid_carrier($self->get_carrier);
my $tracking_number = $self->get_tracking_number;
return Google::Checkout::General::Error->new(
@{$Google::Checkout::General::Error::ERRORS{MISSING_CARRIER}})
if is_gco_error($carrier);
return Google::Checkout::General::Error->new(
@{$Google::Checkout::General::Error::ERRORS{MISSING_TRACKING_NUMBER}})
unless $tracking_number;
my $code = $self->Google::Checkout::Command::GCOCommand::to_xml(%args);
return $code if is_gco_error($code);
$self->add_element(name => Google::Checkout::XML::Constants::TRACKING_DATA);
$self->add_element(name => Google::Checkout::XML::Constants::CARRIER,
data => $carrier, close => 1);
$self->add_element(name => Google::Checkout::XML::Constants::TRACKING_NUMBER,
data => $tracking_number, close => 1);
return $self->done;
}
1;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.242 second using v1.00-cache-2.02-grep-82fe00e-cpan-f5108d614456 )