Net::Amazon::Property::CE - Class for consumer electronics on amazon.com


Net-Amazon documentation Contained in the Net-Amazon distribution.

Index


Code Index:

NAME

Top

Net::Amazon::Property::CE - Class for consumer electronics on amazon.com

SYNOPSIS

Top

  use Net::Amazon;

  # ...

  if($resp->is_success()) {
      for my $prop ($resp->properties) {
          print join("/", $prop->platforms()), " ",
                $prop->title(), " ",
                $prop->publisher(), "\n";
  }

DESCRIPTION

Top

Net::Amazon::Property::CE is derived from Net::Amazon::Property and on top of the all-purpose methods the base class provides, it offers specialized accessors for consumer electronic parameters.

METHODS

platforms()

Returns a list of the consumer electronic's platforms. There's also a platform() method which just returns the first platform.

features()

Returns a list of the consumer electronic's features. There's also a feature() method which just returns the first feature.

publisher()

Returns the consumer electronic's publishing company as a string.

title()

Returns the consumer electronic's title as a string.

ean()

Returns the consumer electronic's EAN number.

label()

Returns the consumer electronic's label type as a string.

studio()

Returns the consumer electronic's studio type as a string.

brand()

Returns the consumer electronic's brand type as a string.

manufacturer()

Returns the consumer electronic's manufacturer type as a string.

mpn()

Returns the consumer electronic's mpn (manufacturer's part number) as a string.

model()

Returns the consumer electronic's model as a string.

warranty()

Returns the consumer electronic's warranty as a string.

new(xmlref => $xmlref)

Initializes an object by passing a hash of hashes structure containing the XML data returned from the service. Usually, this is just used by Net::Amazon internally to initialize objects for on backcoming data.

Check out Net::Amazon::Property for all-purpose accessors, like year, OurPrice, ListPrice, etc.

AUTHOR

Top

Christopher Boumenot, <boumenot@gmail.com>

COPYRIGHT AND LICENSE

Top


Net-Amazon documentation Contained in the Net-Amazon distribution.

######################################################################
package Net::Amazon::Property::CE;
######################################################################
use warnings;
use strict;
use base qw(Net::Amazon::Property);

__PACKAGE__->make_accessor($_) for qw(brand ean label manufacturer model mpn 
                                      publisher studio upc warranty);
__PACKAGE__->make_array_accessor($_) for qw(platforms features);


##################################################
sub new {
##################################################
    my($class, %options) = @_;

    my $self = $class->SUPER::new(%options);
    bless $self, $class; # Bless into this class

    if(exists $options{xmlref}) {
        $self->init_via_xmlref($options{xmlref});
    }

    return $self;
}

##################################################
sub init_via_xmlref {
##################################################
    my($self, $xmlref) = @_;

    $self->SUPER::init_via_xmlref($xmlref);

    my $ref = $xmlref->{ItemAttributes};

    $self->brand($ref->{Brand});
    $self->ean($ref->{EAN});
    $self->features($ref->{Feature});
    $self->label($ref->{Label});
    $self->manufacturer($ref->{Manufacturer});
    $self->model($ref->{Model});
    $self->mpn($ref->{MPN});
    $self->platforms($ref->{Platform} || 'UNKNOWN');
    $self->publisher($ref->{Publisher});
    $self->studio($ref->{Studio});
    $self->upc($ref->{UPC});
    $self->warranty($ref->{Warranty});

    $self->NumMedia($ref->{NumberOfItems});
}

##################################################
sub platform {
##################################################
    my($self, $nameref) = @_;

    # Only return the first platform
    return ($self->platforms($nameref))[0];
}

##################################################
sub feature {
##################################################
    my($self, $nameref) = @_;

    # Only return the first feature
    return ($self->features($nameref))[0];
}


##################################################
sub as_string {
##################################################
    my($self) = @_;

    return join('/', $self->platforms) . ", " .
      '"' . $self->title . '"' . ", " .
      $self->_best_effort_price() . ", " .
      $self->ASIN;
}

1;

__END__