Skip to content

Search Navigation requests

Dominik Brader edited this page Jan 11, 2022 · 1 revision
NOTICE: This page is work in progress, and not yet suitable for the current stabe version of Findologic-API.

Introduction

Search and navigation requests can be easily sent using a RequestBuilder.
With it you will obtain a Request instance, by calling the RequestBuilder::buildRequest() method.

First Steps

Get a search or navigation RequestBuilder instance and set some data.

use FINDOLOGIC\Api\Requests\Builder\RequestBuilder;
use FINDOLOGIC\Api\Requests\Builder\SearchRequestBuilder;
use FINDOLOGIC\Api\Requests\Builder\NavigationRequestBuilder;

/** @var SearchRequestBuilder */
$searchRequestBuilder = RequestBuilder::getInstance(RequestBuilder::TYPE_SEARCH_REQUEST);
$searchRequestBuilder->setQuery('foobar')
    ->addAttribute('color', 'red')
    ->addRangeAttribute('price', 10, 100)
    ->setRevision('1.0.0');

/** @var NavigationRequestBuilder */
$navigationRequestBuilder = RequestBuilder::getInstance(RequestBuilder::TYPE_NAVIGATION_REQUEST);
$searchRequestBuilder->setSelected('Women_Jackets')
    ->addAttribute('size', 'M')
    ->addRangeAttribute('length', 10, 100)
    ->setRevision('1.0.0');

Sending requests

Use the Client, to send Request instances.

use FINDOLOGIC\Api\Config;
use FINDOLOGIC\Api\Client;
use FINDOLOGIC\Api\Requests\Builder\RequestBuilder;
use FINDOLOGIC\Api\Requests\Builder\SearchRequestBuilder;
use FINDOLOGIC\Api\Requests\Builder\NavigationRequestBuilder;

/** @var SearchRequestBuilder */
$searchRequestBuilder = RequestBuilder::getInstance(RequestBuilder::TYPE_SEARCH_REQUEST);
$searchRequestBuilder->setQuery('foobar')
    ->addAttribute('color', 'red')
    ->addRangeAttribute('price', 10, 100)
    ->setRevision('1.0.0');

/** @var NavigationRequestBuilder */
$navigationRequestBuilder = RequestBuilder::getInstance(RequestBuilder::TYPE_NAVIGATION_REQUEST);
$searchRequestBuilder->setSelected('Women_Jackets')
    ->addAttribute('size', 'M')
    ->addRangeAttribute('length', 10, 100)
    ->setRevision('1.0.0');


$config = new Config('ABCDABCDABCDABCDABCDABCDABCDABCD');
$client = new Client($config);

$searchRequest = $searchRequestBuilder->buildRequest($config);
$searchResponse = $client->send($searchRequest);

$navigationRequest = $navigationRequestBuilder->buildRequest($config);
$navigationResponse = $client->send($navigationRequest);

Available methods

For a detailed overview of all available request parameters, please refer to the API spec documentation.

Search Request

setQuery

Sets the search query.

Examples

use FINDOLOGIC\Api\Requests\Builder\RequestBuilder;
use FINDOLOGIC\Api\Requests\Builder\SearchRequestBuilder;

/** @var SearchRequestBuilder */
$searchRequestBuilder = RequestBuilder::getInstance(RequestBuilder::TYPE_SEARCH_REQUEST);
$searchRequestBuilder->setQuery('blue shirt');

setShoppingGuide

Enables a Shopping Guide identified by its name, which changes the filters in the search result to match the questions configured for this particular Shopping Guide in the Findologic Account.

Examples

use FINDOLOGIC\Api\Requests\Builder\RequestBuilder;
use FINDOLOGIC\Api\Requests\Builder\SearchRequestBuilder;

/** @var SearchRequestBuilder */
$searchRequestBuilder = RequestBuilder::getInstance(RequestBuilder::TYPE_SEARCH_REQUEST);
$searchRequestBuilder->setShoppingGuide('Bed Guide'); // EN
$searchRequestBuilder->setShoppingGuide('Bettenberater'); // DE

setIdentifier

Return the product with the given ID. If this is set query is ignored.

Examples

use FINDOLOGIC\Api\Requests\Builder\RequestBuilder;
use FINDOLOGIC\Api\Requests\Builder\SearchRequestBuilder;

/** @var SearchRequestBuilder */
$searchRequestBuilder = RequestBuilder::getInstance(RequestBuilder::TYPE_SEARCH_REQUEST);
$searchRequestBuilder->setIdentifier('108378335893'); // numeric (must still be set as a string)
$searchRequestBuilder->setIdentifier('71ddc5b98c304749a0217ccff59cd38c'); // strings

Navigation request

TBD WIP