User Profile (JS SDK)
- Andrey Veprikov
Update User Profile
Method Objective
The method updates the user's profile or creates a new profile bound to the user's current device if it was not created earlier.
If you don't have user data, never send bogus data. It'll cause problems in profile handling in the future. For example, don't send a non-existent email, like anonymous@example.com
, or an automatically generated email address that doesn't have anything to do with the user's actual email.
Syntax and parameters
personaclick("profile", "set", params, success, error);
Name | Type | Requirement | Description |
---|---|---|---|
params | Object | required | Object with request parameters. |
success | Function | optionally | A callback function, to which the API response will be passed. Response type: object. |
error | Function | optionally | A callback function that will be called when an error occurs (any HTTP status code other than 200). |
Main request parameters
User data must be sent each time it becomes available:
- after the user's registration is complete
- after the user has logged in to the account
- email or phone number (if available) of the authorized user on each page of the site
- on the checkout page, if the user is registering (or authorizing) at the time of order placement
Name | Type | Description |
---|---|---|
string | User Email. | |
first_name | string | User First Name. |
gender | string | User Gender (m – male, f – female). |
id | number/string | Store side user ID. |
last_name | string | User Surname. |
phone | string | User Phone. |
Additional request parameters
Name | Type | Description |
---|---|---|
age | number | User age (in years). |
auto | Object array | List of vehicles. See description below. |
birthday | string | User birthday in the format YYYY-MM-DD. |
bought_something | boolean | The user has or hasn't ever bought something in the store. |
fb_id | string | Facebook User ID. |
kids | Object array | User's children. See description below. |
location | string | The user's current location from the list of locations in the product feed. |
loyalty_bonuses | number | The current number of store bonuses at the user. |
loyalty_bonuses_to_next_level | number | The number of store bonuses necessary for the user to reach the next loyalty level. |
loyalty_card_location | string | The location (from the list of locations in the product feed) where the user last used the loyalty card. |
loyalty_id | string | The Loyalty Program user ID (loyalty card). |
loyalty_status | string | The user's current status in the loyalty program. |
telegram_id | string | Telegram User ID. |
vk_id | string | VKontakte User ID. |
The "auto" object properties
Name | Type | Description |
---|---|---|
brand | string | Vehicle Brand. |
model | string | Vehicle Model. |
vds | string | Vehicle's VDS/VIN. |
The "kids" object properties
Name | Type | Description |
---|---|---|
gender | string | Child's age (m – male, f – female). |
birthday | string | Child's birthday in the format YYYY-MM-DD. |
Custom Properties
Name | Type | Description |
---|---|---|
A custom property can have any name except the reserved ones | string | The custom property must be created before it can be used. Located there: Account > Settings > Profile Property If property creation isn't available in the account, contact PersonaClick support. |
integer | ||
float | ||
array of string | ||
json | ||
date (YYYY-MM-DD hh:mm:ss) |
Example of use
personaclick("profile", "set", { id: 100500, email: "john.doe@examplemail.com", phone: "4400114527199", first_name: "John", last_name: "Doe", birthday: "1990-03-11", age: 31, gender: "m", location: "NY", bought_something: true, loyalty_id: "000001234567", loyalty_card_location: "NY", loyalty_status: "5% discount", loyalty_bonuses: 1123, loyalty_bonuses_to_next_level: 1877, fb_id: "000000000354677", vk_id: "vk031845", telegram_id: "0125762968357835", kids: [ {gender: "m", birthday: "2001-04-12"}, {gender: "f", birthday: "2015-07-28"} ], auto: [ {brand: "Nissan", model: "Qashqai", vds: "TM7N243E4G0BJG978"} ], custom_string_property: "the string value of the custom property", custom_integer_property: 100500, custom_float_property: 7.62, custom_array_of_string_property: ["value1", "value2", "value3"], custom_json_property: {key1: value1, key2: value2, key3: value3}, custom_date_property: "2021-12-31 23:55:00" });
Read User Profile
Method Objective
The method returns accumulated (depersonalized) profile data of the current user.
Most of the data is computational based on the user's interaction with the products.
Syntax and parameters
personaclick("profile", "get", callback, force);
Name | Type | Requirement | Description |
---|---|---|---|
callback | Function | required | The callback function that takes the API response. The API response type is an object. |
force | boolean | optionally | Allows disabling data caching. By default, caching is enabled. |
API response
Name | Type | Description |
---|---|---|
gender | string | The gender of the current user. If not forced by the "Update User Profile" method, it has the same value as the "computed_gender" property (see below). |
computed_gender | string | The calculated value of gender is based on the user's interaction with the products. |
children | Object array | Data about the children of the current user. Each element of the array can contain the following properties:
|
cosmetic_hair | object | The hair properties of the current user:
|
cosmetic_skin | object | The skin properties of the current user:
Each of the properties above has the following properties and values:
|
cosmetic_perfume | object | Perfume preferences of the current user. The following properties and values are available:
|
allergy | boolean | Whether the current user is allergic. |
fashion_sizes | object | Lists clothing types with preferred sizes for each. See available type values in the Apparel & Accessories section. The value of each property is an array with the user's preferred clothing sizes. |
compatibility | object | The preferred brand and model of the vehicle. The following properties are available:
|
vds | string | The fourth to ninth position in the VIN is the Vehicle Descriptor Section or VDS. |
pets | object | The user's pet. The following properties are available:
|
jewelry | object | The jewelry preferences of the current user. The following properties are available:
|
realty | object | Real estate of the current user. The following properties are available:
|
income_level | string | The income level of the current user. Available values: cheap, medium, premium. |
has_email | boolean | Does the user's profile contain an email? |
custom_properties | Object | The object contains the values of the custom properties that were marked as available for the public part (frontend). The custom properties are located there: Account > Settings > Profile property |
Example of use
personaclick("profile", "get", function(profile) { console.log(profile.gender); });
Get Last Order Products
Method Objective
The method allows getting detailed information about the products of the last order of the current user.
Syntax and parameters
personaclick("orders", "last_for_user", callback, error);
Name | Type | Requirement | Description |
---|---|---|---|
callback | Function | required | The callback function that takes the API response. The API response type is an array. |
error | Function | optionally | A callback function that will be called when an error occurs (any HTTP status code other than 200). |
API response
Each object in the array contains the following properties.
Name | Type | Description |
---|---|---|
barcode | string | Product barcode, if it was imported in the product catalog |
brand | string | Product vendor |
categories | Object array | Object array with details of the product category hierarchy, where each object has properties: "id" – category ID (type: string) "name" – category name (type: string) "parent" – parent category ID (type: string) "url" – category page url (type: string) |
category_ids | String array | Array of IDs of the product category hierarchy |
currency | string | Product currency (type: string, matches the currency of the PersonaClick account, or the user value set in the settings of the PersonaClick account) |
description | string | Product description |
discount | number | The percentage difference between the old price and current price |
discount_formatted | string | The percentage difference between the old price and current price that is formatted as a string with the "%" symbol |
fashion_colors | Object array | Object array with details of the product category hierarchy, where each object has properties: "color" – product color (type: string) "picture" – color-matched product image (type: string) |
fashion_original_sizes | array | Original product sizes |
fashion_sizes | array | Normalised product sizes (see XML) |
id | string | Product ID |
image_url | string | URL of the original product image |
image_url_handle | string | Relative URL of the original product image |
image_url_resized | Object | 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 |
is_new | boolean | New arrival product (type: boolean). See the parameter in the product catalog import (XML, HTTP API) |
leftovers | string | Rough number of the products left in stock. Available values are: "one" - one product "few" - 2-10 products "lot" - over 10 products |
model | string | Model and product name |
name | string | Product name |
oldprice | number | Integer old price of the product |
oldprice_formatted | string | Formatted integer old price of the product, including currency |
oldprice_full | number | Old price of the product |
oldprice_full_formatted | string | Formatted old price of the product, including currency |
params | Object array | 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). |
price | number | Integer current price of the product |
price_formatted | string | Formatted integer current price of the product, including currency |
price_full | number | Current price of the product |
price_full_formatted | string | Formatted current price of the product, including currency |
rating | number | Product rating |
stock_quantity | number | The available quantity of products |
url | string | Product page URL |
url_handle | string | Relative product page URL |
Example of use
personaclick("orders", "last_for_user", function(products) { console.log(products); });
Page Navigation
Related Pages
-
Page:
-
Page:
-
Page:
-
Page:
-
Page:
-
Page:
-
Page:
Copyright 2018-2024 PersonaClick