Product Details (Android SDK - Kotlin)

Get Product List

Method Objective

The method allows getting a list of products in stock.

Syntax and parameters

sdk.productsManager.getProductsList(params, callback)

NameTypeRequirementDescription
params
requiredRequest parameters.
callbackfunctionrequiredCallback-function, where the API response will be passed to. 

Request Parameters

NameTypeRequirementDescription
limitnumberoptionallyThe maximum number of products in the API response (by default - 10).
pagenumberoptionallyPage number (first page - 1, by default - 1).
categoriesstringoptionallyComma-separated category IDs. If used, the API response will return only those products that are in the specified categories.
locationsstringoptionallyComma-separated location IDs. If used, the API will return only products available in the specified locations. Locations must be specified in the imported product catalog (XML, HTTP API).
brandsstringoptionallyComma-separated vendor names. If used, the API response will return only the products of the listed vendors. The vendors must be listed in the product feed.
filterslistoptionally

List (Map<String, Any>) with the properties and their values that the products should match in the API response. The data matches the values of the "param" parameter of the product feed/catalog (XML, HTTP API).

API response

NameTypeDescription
productsarray

An array of objects with product information. Each object has the following properties:

  • barcode – product barcode, if it was imported in the product catalog (type: string)
  • brand – product vendor (type: string)
  • categories – an Object array with details of the product category hierarchy, where each object has properties:
    "id" – category ID (type: string)
    "level" – сategory level in the hierarchy (type: string)
    "name" – category name (type: string)
    "name_with_parent" – string name from the name of the parent and main product categories, separated by a "-" (type: string)
    "parent_id" – parent category ID (type: string)
    "url" – category page url (type: string)
  • category_ids – an array of IDs of the product category hierarchy (type: String array)
  • currency – product currency (type: string, matches the currency of the PersonaClick account, or the user value set in the settings of the PersonaClick account)
  • discount – the percentage difference between the old price and the current price (type: number)
  • discount_formatted – the percentage difference between the old and the current price that is formatted as a string with the "%" symbol (type: string)
  • group_id – product group ID (type: string)
  • id – product ID (type: string)
  • image_url – URL of the original product image (type: string)
  • image_url_handle – relative URL of the original product image (type: string)
  • image_url_resized – the object with the URLs of the resize product image. Available object keys matching the size of the image in pixels: 120, 140, 160, 180, 200, 220, 310, 520 (type: object)
  • is_new – new arrival product (type: boolean). See the parameter in the product catalog import (XML, HTTP API)
  • leftovers – rough number of the products left in stock. Available values are: 
    "one" - one product
    "few" - 2-10 products
    "lot" - over 10 products
  • model –  model and product name (type: string)
  • name – product name (type: string)
  • oldprice – integer old price of the product (type: number)
  • oldprice_formatted – formatted integer old price of the product, including currency (type: string)
  • oldprice_full – old price of the product (type: number)
  • oldprice_full_formatted – formatted old price of the product, including currency (type: string)
  • params – object array with pairs of "key" (type: string), "values" (type: array) properties. The data matches the values of the "param" parameter of the product feed/catalog (XML, HTTP API).
  • picture – link to the product image in the PersonaClick image repository (type: string)
  • price – integer current price of the product (type: number)
  • price_formatted – formatted integer current price of the product, including currency (type: string)
  • price_full – current price of the product (type: number)
  • price_full_formatted – formatted current price of the product, including currency (type: string)
  • rating – product rating (type: number)
  • relative_sales_rate – level of sales of current product ( in percentage) in relation to the maximum level of sales of products in the store (type: number)
  • sales_rate – level of product sales (absolute value) (type: number)
  • url – product page URL (type: string)
  • url_handle - relative product page URL (type: string)
products_totalnumberThe total number of products. The following request parameters don't affect this value: page, limit.
brandsObject array

An array of objects with information about available brands. Each object has the following properties:

  • name – brand name (type: string)
  • count – total number of brand products (type: number)
filtersObject

JSON string with properties and their values of all API response products. The data matches the values of the "param" parameter of the product feed/catalog (XML, HTTP API). Format:

{"property1":["value1","value2"],"property2":["value1","value2"]}
price_rangeObject

The object containing the values of the minimum and maximum price of the products in the API response. Available properties:

  • min - minimum price
  • max - maximum price

Example of use

sdk.productsManager.getProductsList(
    brands = PRODUCTS_BRANDS,
    categories = PRODUCTS_CATEGORIES,
    locations = PRODUCTS_LOCATIONS,
    limit = PRODUCTS_LIMIT,
    page = PRODUCTS_PAGE,
    filters = PRODUCTS_FILTERS,
    listener = object : OnApiCallbackListener() {
        override fun onSuccess(response: JSONObject?) {
            super.onSuccess(response)
            // Handle your response
        }
        override fun onError(code: Int, msg: String?) {
            super.onError(code, msg)
            // Handle errors
        }
    }
)

Copyright 2018-2024 PersonaClick