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

enable_attributes

This flag adds support for attributes in the request. If enabled request data notes much be defined like so,

myElement => { content => 'element content', myattr => 'attr value' }

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 164:

'=item' outside of any '=over'

Around line 196:

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