NAME

eBay::API::Simple::Shopping - Support for eBay's Shopping web service

DESCRIPTION

This class provides support for eBay's Shopping web services.

See http://developer.ebay.com/products/shopping/

USAGE

my $call = eBay::API::Simple::Shopping->new( 
  { appid => '<your app id here>' } 
);
$call->execute( 'FindItemsAdvanced', { QueryKeywords => 'shoe' } );

if ( $call->has_error() ) {
   die "Call Failed:" . $call->errors_as_string();
}

# getters for the response DOM or Hash
my $dom  = $call->response_dom();
my $hash = $call->response_hash();

print $call->nodeContent( 'Timestamp' );
print $call->nodeContent( 'TotalItems' );

my @nodes = $dom->findnodes(
  '/FindItemsAdvancedResponse/SearchResult/ItemArray/Item'
);

foreach my $n ( @nodes ) {
  print $n->findvalue('Title/text()') . "\n";
}

SANDBOX USAGE

my $call = eBay::API::Simple::Shopping->new( { 
   appid => '<your app id here>',
   domain => 'open.api.sandbox.ebay.com',   
} );

$call->execute( 'FindItemsAdvanced', { QueryKeywords => 'shoe' } );

if ( $call->has_error() ) {
   die "Call Failed:" . $call->errors_as_string();
}

# getters for the response DOM or Hash
my $dom  = $call->response_dom();
my $hash = $call->response_hash();

PUBLIC METHODS

new( { %options } }

Constructor for the Finding API call

my $call = eBay::API::Simple::Shopping->new( { 
  appid => '<your app id here>' 
  ... 
} );

Options

appid (required)

This appid is required by the web service. App ids can be obtained at http://developer.ebay.com

siteid

eBay site id to be supplied to the web service endpoint

defaults to 0

domain

domain for the web service endpoint

defaults to open.api.ebay.com

uri

endpoint URI

defaults to /shopping

version

Version to be supplied to the web service endpoint

defaults to 527

https

Specifies is the API calls should be made over https.

defaults to 0

ALTERNATE CONFIG VIA ebay.ini

The constructor will fallback to the ebay.ini file to get any missing credentials. The following files will be checked, ./ebay.ini, ~/ebay.ini, /etc/ebay.ini which are in the order of precedence.

# your application key
ApplicationKey=LJKGHKLJGKJHG

execute( $verb, $call_data )

 $self->execute( 'FindItemsAdvanced', { QueryKeywords => 'shoe' } );

This method will construct the API request based on the $verb and the $call_data and then post the request to the web service endpoint.

$verb (required)

call verb, i.e. FindItemsAdvanced

$call_data (required)

hashref of call_data that will be turned into xml.

BASECLASS METHODS

request_agent

Accessor for the LWP::UserAgent request agent

request_object

Accessor for the HTTP::Request request object

request_content

Accessor for the complete request body from the HTTP::Request object

response_content

Accessor for the HTTP response body content

response_object

Accessor for the HTTP::Request response object

response_dom

Accessor for the LibXML response DOM

response_hash

Accessor for the hashified response content

nodeContent( $tag, [ $dom ] )

Helper for LibXML that retrieves node content

errors

Accessor to the hashref of errors

has_error

Returns true if the call contains errors

errors_as_string

Returns a string of API errors if there are any.

PRIVATE METHODS

_get_request_body

This method supplies the XML body for the web service request

_get_request_headers

This method supplies the HTTP::Headers obj for the web service request

_get_request_object

This method creates and returns the HTTP::Request object for the web service call.

AUTHOR

Tim Keefer <tim@timkeefer.com>

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 155:

'=item' outside of any '=over'

Around line 187:

You forgot a '=back' before '=head1'