NAME
Net::Amazon::Recommended - Grab and configurate recommendations by Amazon
VERSION
version v0.0.4
SYNOPSIS
my $obj = Net::Amazon::Recommended->new(
email => 'someone@example.com',
password => 'password',
domain => 'co.jp',
);
my $rec = $obj->get('http://www.amazon.co.jp/gp/yourstore/recs/ref=pd_ys_welc');
print join "\n", map { $_->{title} } @$rec;
DESCRIPTION
This module obtains recommended items in Amazon by using WWW::Mechanize.
To spcify category, you need to specify URL itself. To specify some constants or short-hand key is considered but currently rejected because category names are dependent on domains and it is difficult to enumerate all possible sub categories.
METHODS
new(%options
)
Constructor. The following options are available.
- email => $email
-
Specify an email as a login ID.
- password => $password
-
Specify a password.
- domain => $domain
-
Domain of Amazon e.g.
'com'
. Defaults to'co.jp'
.'com'
,'co.uk'
and'co.jp'
are checked. It might work for other domains.
get($url
, $max_pages
= 1)
Returns array reference of recommended items. Each element is a hash reference having the following keys:
id
-
ASIN ID.
url
-
URL for the item like http://www.amazon.co.jp/dp/4873110963. Just an ASIN is used and other components are stripped.
image_url
-
URL of cover image.
title
-
Title.
-
Author.
- date
-
DateTime object of publish date.
- price
-
price in just a string. Currency symbol is included.
- listprice
-
list price in just a string. Currency symbol is included.
- otherprice
-
price by other sellers in just a string. Currency symbol is included.
$url
can be sub category page like http://www.amazon.co.jp/gp/yourstore/recs/ref=pd_ys_nav_b_515826?ie=UTF8&nodeID=515826&parentID=492352&parentStoreNode=492352.
$max_page
is the limitation of retrieving pages. Defaults to 1. To specify undef
explicitly means no limitation, that is all recommended items are retrieved.
get_list($type
, $max_pages
= 1)
Returns array reference of items in the specified type. $type
can be 'notinterested'
, 'owned'
, 'purchased'
or 'rated'
.
Each element is a hash reference having the following keys:
id
-
ASIN ID.
url
-
URL for the item like http://www.amazon.co.jp/dp/4873110963. Just an ASIN is used and other components are stripped.
image_url
-
URL of cover image.
title
-
Title.
-
Author. It might be empty.
starRating
-
Rated value for this item from 1 to 5. 0 means not rated. This key is avaiable for the case that
$type
is'owned'
,'purchased'
or'rated'
. isNotInterested
-
1 means this item is not interested. 0 means not. This key is avaiable for the case that
$type
is'notinterested'
. isExcluded
-
1 means this item is not considered for recommendation. 0 means considered. This key is avaiable for the case that
$type
is'owned'
,'purchased'
or'rated'
.
$max_page
is the limitation of retrieving pages. Defaults to 1. To specify undef
explicitly means no limitation, that is all recommended items are retrieved.
get_status($asin
)
Returns a hash reference having the following keys. If the corresponding item is not found, undef
is returned. Unfortunately, it seems to be that only 'co.jp'
provides the interface /gp/rate-it/
used by this method. Other domains moved to /gp/betterizer/ intefrace. To set some state by set_status()
then calling get_last_status()
or get_list()
might be used as workaround.
starRating
-
Rated value for this item from 1 to 5. 0 means not rated.
isOwned
-
1 means this item is owned. 0 means not.
get_last_status($type
)
Returns a hash reference having the following keys for the last item of $type
.
starRating
-
Rated value for this item from 1 to 5. 0 means not rated. This key is avaiable for the case that
$type
is'owned'
or'rated'
. isNotInterested
-
1 means this item is not interested. 0 means not. This key is avaiable for the case that
$type
is'notinterested'
. isExcluded
-
1 means this item is not considered for recommendation. 0 means considered. This key is avaiable for the case that
$type
is'owned'
or'rated'
.
$type
is case-insensitive.
set_status($asin
, \%args
)
%arg
is a hash having some of the following keys.
starRating
-
Rated value for this item from 1 to 5. 0 means not rated.
isOwned
-
1 means this item is owned. 0 means not.
isNotInterested
-
1 means this item is not interested. 0 means not.
isExcluded
-
1 means this item is not considered for recommendation. 0 means considered.
TEST
To test this module completely, you need to specify environment variables AMAZON_EMAIL
and AMAZON_PASSWORD
.
Because results of some tests are dependent on purchase history, they are marked as TODO.
CAUTIONS: Some tests, 03-status.t
, 05-domain.t
and 06-domain.t
will change your recommendation configurations.
SEE ALSO
AUTHOR
Yasutaka ATARASHI <yakex@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Yasutaka ATARASHI.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.