ePages 6.17.9 - DE_EPAGES/RemoteSearch/API/Object/SearchParamBuilder.pm

Package DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder

Class for craeting params for remote search requests. See 'jaxrs' documentation in $EPAGESJ/doc/jaxrsdoc/product/{dsName}/{shopGUID}/search/index.html for all available search options.

Example
my $Builder = DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder->new();
$Builder->query('Jack')
->lang('en')
->addFilterValues('IsNew', [1])
->addFilterRange('Price', [10, 20] );
->addFacetMode($Shop)
my $hParams = $Builder->params();

Functions

addFacetMode
addFilterRange
addFilterValues
addTaxArea
currency
currentPage
getFilters
lang
new
params
query
resultsPerPage
sortBy

addFacetMode

Define which facets should be part of the search result, based on available shop features. Possible facet modes are: 'NO_FACETS'|'STANDARD_FACETS'|'ALL_FACETS'

Syntax
$Builder->addFacetMode( $Shop );
Example
$Builder->addFacetMode( $Shop );
Input
$Shop (DE_EPAGES::Shop::API::Object::Shop)
shop
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self

addFilterRange

Add range filter to parameters. First value from $aValue is used as "min" the second value is used from $aValue.

Syntax
$Builder->addFilterRange( $Name, $aValues );
Example
$Builder->addFilterRange( 'ListPrice', [1.11,12.22] );
Input
$Name (String)
attribute name used for filtering
$aValues (array.ref.)
list of filter values
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self

addFilterValues

Add simple filter to parameters. If more than one value is provided multible filters are created for facet $Name. In the example below we search for products from Manufacturers 'Deuter' or 'Leatherman'.

Syntax
$Builder->addFilterValues( $Name, $aValues );
Example
$Builder->addFilterValues( 'Manufacturer', ['Deuter','Leatherman'] );
Input
$Name (String)
attribute name used for filtering
$aValues (array.ref.)
list of filter values
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self

addTaxArea

Set TaxArea (only needed if gross prices are used)

Syntax
$Builder->addTaxArea(  );
Example
$Builder->addTaxArea( $TaxArea );
Input
$TaxArea (object)
TaxArea object for calculating net prices
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self

currency

Adds currency code to parameters

Syntax
$Builder->currency( $currency );
Example
$Builder->currency( 'EUR' );
Input
$currency (string)
currency code (3-digit)
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self

currentPage

Adds current page number to parameters

Syntax
$Builder->currentPage( $currentPage );
Example
$Builder->currentPage( 2 );
Input
$currentPage (integer)
page number, starting by 0
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self

getFilters

Returns reference of the filter list stored in params under key 'attributeFilters'. Method is used only for testing/internally

Syntax
my $aFilters = $Builder->getFilters();
Return
$aFilters (array.ref)
list of hashes

lang

Adds language code to parameters

Syntax
$Builder->lang( $lang );
Example
$Builder->lang( 'de' );
Input
$lang (string)
language code (2-digit)
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self

new

Standard constructor

Syntax
my $Builder = DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder->new()
Input
%Params (hash)
initial filter params
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
object

params

Returns reference of the parameters list stored in this object

Syntax
my $hParams = $Builder->params();
Return
$hParams (hash.ref)
a hash containing params, names are used as keys

query

Adds a query to parameters. Does not do anything, if query is undefined or only contains whitespace.

Syntax
$Builder->query( $query );
Example
$Builder->query( 'Jack' );
Input
$query (string)
query string
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self

resultsPerPage

sets results per page

Syntax
resultsPerPage( $resultsPerPage );
Input
$resultsPerPage (integer)
number of results per page
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self

sortBy

Adds sorting option to parameters

Syntax
$Builder->sortBy( $orderBy, $orderDesc );
Example
$Builder->sortBy( 'NameOrAlias', 0 );
Input
$orderBy (string)
field to order by
$orderDesc (boolean)
1 for descending, 0 for ascending
Return
$Builder (DE_EPAGES::RemoteSearch::API::Object::SearchParamBuilder)
self