CIOBrowseQueryBuilder
public class CIOBrowseQueryBuilder
Request builder for creating an browse query.
-
Create a Browse request query builder
Usage Example:
To retrieve the item group with ID “sales”, set filterName to “group_id” and filterValue to “sales”.
let query = CIOBrowseQueryBuilder(filterName: "group_id", filterValue: "sales")Declaration
Swift
public init(filterName: String, filterValue: String)Parameters
filterNameThe attribute name that defines what you are browsing by.
- Use “group_id” by default for browsing item groups.
- Possible values:
- “group_id”
- “collection_id”
- “[facet_name]” (where the facet name corresponds with a facet defined in the catalog)
filterValueThe specific value to filter by, corresponding to the
filterName.- Use the specific group ID, collection ID, or facet value you wish to query for. Eg. “sales”, “mens-jeans”
-
Add additional filters
Declaration
Swift
public func setFilters(_ filters: CIOQueryFilters) -> CIOBrowseQueryBuilder -
Add a sort option
Declaration
Swift
public func setSortOption(_ sortOption: CIOSortOption) -> CIOBrowseQueryBuilder -
Add a page number
Declaration
Swift
public func setPage(_ page: Int) -> CIOBrowseQueryBuilder -
Add the number of results to return per page
Declaration
Swift
public func setPerPage(_ perPage: Int) -> CIOBrowseQueryBuilder -
Add the number of results to return per page
Declaration
Swift
public func setSection(_ section: String) -> CIOBrowseQueryBuilder -
Add a list of hidden metadata fields to return
Declaration
Swift
public func setHiddenFields(_ hiddenFields: [String]) -> CIOBrowseQueryBuilder -
Add a list of hidden facets to return
Declaration
Swift
public func setHiddenFacets(_ hiddenFacets: [String]) -> CIOBrowseQueryBuilder -
Add a variations map to return per variation
Declaration
Swift
public func setVariationsMap(_ variationsMap: CIOQueryVariationsMap) -> CIOBrowseQueryBuilder -
Add a groups sort option
Declaration
Swift
public func setGroupsSortOption(_ groupsSortOption: CIOGroupsSortOption) -> CIOBrowseQueryBuilder -
Add the pre filter expression
Declaration
Swift
public func setPreFilterExpression(_ preFilterExpression: String) -> CIOBrowseQueryBuilder -
Add the fmt_options to use with result set
Declaration
Swift
public func setFmtOptions(_ fmtOptions: [FmtOption]?) -> CIOBrowseQueryBuilder -
Build the request object set all of the provided data
Usage Example:
let facetFilters = [(key: "Nutrition", value: "Organic"), (key: "Nutrition", value: "Natural"), (key: "Brand", value: "Kraft Foods")] let preFilterExpression = "{\"or\":[{\"and\":[{\"name\":\"group_id\",\"value\":\"electronics-group-id\"},{\"name\":\"Price\",\"range\":[\"-inf\",200.0]}]},{\"and\":[{\"name\":\"Type\",\"value\":\"Laptop\"},{\"not\":{\"name\":\"Price\",\"range\":[800.0,\"inf\"]}}]}]}" let query = CIOBrowseQueryBuilder(filterName: "group_id", filterValue: "sales") .setFilters(CIOQueryFilters(groupFilter: nil, facetFilters: facetFilters)) .setPage(2) .setPerPage(40) .setSection("Products") .setHiddenFields(["hidden_price_field", "color_swatches"]) .setHiddenFacets(["hidden_facet"]) .setPreFilterExpression(preFilterExpression) .build() constructor.browse(forQuery: query, completionHandler: { ... })Declaration
Swift
public func build() -> CIOBrowseQuery