NAME
   WebService::KakakuCom - Handle WebAPI of kakaku.com.

SYNOPSIS
       use WebService::KakakuCom;

       my $api = WebService::KakakuCom->new;

       my @results = $api->search('VAIO');
       print $_->ProductName, "\n" for @results;

       $api->debug(1);
       $api->ie('utf8'); # for icode of Jcode
       my $rs = $api->search(
           'VAIO',
           { CategoryGroup => 'Pc', SortOrder => 'daterank', PageNum => 2 }
       );
       for (@$rs) {
           print $_->ProductID;
           print $_->ProductName;
           print $_->CategoryName;
           print $_->MakerName;
           print $_->ImageUrl;
           print $_->ItemPageUrl;
           print $_->BbsPageUrl;
           print $_->ReviewPageUrl;
           print $_->LowestPrice;
           print $_->NumOfBbs;
           print $_->ReviewRating;
       }

       my $pager = $rs->pager; # Data::Page
       print $pager->total_entries;
       print $pager->entries_on_this_page;
       ...

       my $product = $api->product($ProductID);
       print $product->ProductID, "\n";
       ...

DESCRIPTION
   This module allows you to handle WebAPI of kakaku.com easily.

   Kakaku.com (http://kakaku.com/) is a price comparison sites in Japan.
   You can search/retrieve arbitrary product informations via its own
   WebAPI. Please refer to http://apiblog.kakaku.com/ for details. (in
   Japanese)

FUNCTIONS
 new()
   Returns an instance of this module. You must create an instance before
   searching.

 ua()
   Returns an User-Agent instance for customizing an User-Agent string,
   timeout values, something like that.

 search($keyword, \%options)
   Returns search results as a result set. The result set contains
   WebService::KakakuCom::Product objects and it will be available as an
   array in list context or as a WebService::KakakuCom::ResultSet object in
   scalar context.

     my $api = WebService::KakakuCom->new;
     my @results = $api->search('Vaio');
     my $rs = $api->search('Vaio');

   A ResultSet object can also be used as an array and it has some special
   methods like "pager()".

     for my $product (@$rs) {
        ...
     }
     my $pager = $rs->pager;  # an instance of Data::Page

   All the informations you want can be retrieve from Product objects in a
   result set.

     for my $product (@results) {
         print $_->ProductID;
         print $_->ProductName;
         print $_->CategoryName;
         print $_->MakerName;
         print $_->LowestPrice;
         print $_->NumOfBbs;
         print $_->ReviewRating;

         # These values are wrapped in URI.
         print $_->ImageUrl
         print $_->ItemPageUrl;
         print $_->BbsPageUrl;
         print $_->ReviewPageUrl;
     }

   You can specify options of search query like PageNum / SortOrder to the
   second argument of this method as hash reference. See the official API
   documents about detail of those options.

     my $rs = $api->search(
         'Vaio',
         { PageNum => 1, SortOrder => 'popularityrank' }
     );

 product($ProductID)
   Returns an object of product by ProductID. An retrieved object is a
   WebService::KakakuCom::Product same as used in "search()".

 ie($icode)
   In the API of kakaku.com, a character set of multi byte characters must
   be Shift-JIS. So this module convert querie's charcter set to Shift-JIS
   by using Jcode internally.

   If there is no information about an input code, it will be guessed
   automatically but may be failed. It's better that you set your character
   set of queries with this method.

   $icode can be any encoding name that Encode understands.

 debug($bool)
   Turn on/off the debug switch. Currently it only dump the data contained
   in a result set.

WARNING
   This module is in beta version. Object interface it provides may be
   changed later.

AUTHOR
   Naoya Ito, "<naoya at bloghackers.net>"

SEE ALSO
   * http://apiblog.kakaku.com/KakakuItemSearchV1.0.html
   * http://apiblog.kakaku.com/KakakuItemInfoV1.0.html

COPYRIGHT & LICENSE
   Copyright 2006 Naoya Ito, all rights reserved.

   This program is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.