Como navegar entre páginas de resultados e obter todas as ofertas existentes
Developers,
dando continuidade ao artigo sobre como navegar entre as páginas de resultados de ofertas da Lomadee, vamos ver hoje como obter a quantidade de páginas retornadas nevegando automaticamente entre elas, mesclando todas as ofertas em um único array de ofertas.
Em nosso exemplo, vamos navegar entre as páginas usando o modelo de requisição abaixo:
http://sandbox.buscape.com/service/offers/lomadee/412f4b4a4268414258674d3d/BR/?keyword=apple&sourceId=123456
Para essa solução, usamos o wrapper para PHP criado pela comunidade para efetuarmos as requisições necessárias à API do Buscapé. Após conhecer um pouco do wrapper e ter feito seu download, vamos “codar”.
// Inclui o wrapper PHP
if ( file_exists( dirname( __FILE__ ).'/includes/Apiki_Buscape_API.php' ) )
require_once dirname( __FILE__ ).'/includes/Apiki_Buscape_API.php';
// Verifica se a classe do wrapper existe, caso contrário exibe uma mensagem
if ( !class_exists( 'Apiki_Buscape_API' ) )
exit( 'A class Apiki_Buscape_API não existe ou não foi carregada corretamente.' );
// ID da aplicação (requerido)
$application_id = '412f4b4a4268414258674d3d';
// Source ID (requerido)
$source_id = '123456';
// Palavra-chave usada para a busca por ofertas
$keyword = 'apple';
// Página inicial
$page = 1;
// Inicializa o array de ofertas vazio
$offers = array();
// Instancia o wrapper para PHP informando o ID da aplicação e o Source ID
$api_buscape = new Apiki_Buscape_API( $application_id, $source_id );
Pronto, developers, agora vocês já podem testar o valor da variável $offers usada para armazenar as ofertas no exemplo acima e comprovarem a mesclagem de todas as ofertas um único array.
Usando a função print_r, teremos o seguinte array com todas as 185 ofertas disponíveis com a palavra-chave “apple”.
Array
(
[0] => stdClass Object
(
[offer] => stdClass Object
(
[id] => 1330354300728
[thumbnail] => stdClass Object
(
[url] => http://storeimages.apple.com/2392/as-images.apple.com/is/image/AppleInc/MC377?wid=600&hei=600&fmt=jpeg&qlt=95&op_sharpen=0&resMode=bicub&op_usm=0.5,0.5,0,0&iccEmbed=0&layer=comp
)
[price] => stdClass Object
(
[parcel] => stdClass Object
(
[interest] => 0
[value] => 4.92
[number] => 12
)
[value] => 59.0
[currency] => stdClass Object
(
[abbreviation] => BRL
É isso, developers. Espero que tenham curtido a implementação. Mas tomem cuidado, pois a mesclagem das ofertas pode demorar dependendo da quantidade de ofertas disponíveis para uma determinada palavra-chave ou categoria.
Have fun!







