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

    filterName

    The 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)

    filterValue

    The 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