1. Cookie consent (legal requirement)
Concretely: gate the
<script src="https://module.kleep.ai/api/widget"> tag and the kleep.load(...) call behind your CMP’s consent callback, so they only run after consent is granted. If consent is later withdrawn, stop loading Kleep on subsequent page views.2. Installation
To get started, include the widget’s JavaScript file in your project. Before</body>, add:
3. Methods
3.1. kleep.load — Display Kleep’s CTA
-
Initialize the widget with
kleep.load: -
Add a container where the widget should be displayed on the product page:
This div is used to append our button inside. We leave CSS styling of the button to you during the implementation.
Parameters
kleep.load should be called on each product page (PDP) to load Kleep’s CTA, with the following parameters:
| Parameter | Type | Description | Priority |
|---|---|---|---|
public_id | UUID | The UUID provided to you during onboarding | required |
product_id | string | array | Product ID(s) of the PDP on which kleep.load is called. A single string applies to every selector; an array must match selectors.sizing (see warning below). | required |
customer_id | string | ID of the connected customer (must match what is sent via data transfers) | optional |
lang | string | Current language of the page. Follow ISO 639-1. Default: fr. See list of supported languages below. | required |
market | string | Country code (location of the website visitor). Follow ISO 3166-1 alpha-2. Default: null. See list of supported markets below. | optional |
selectors.sizing | array | HTML selectors of the sizing button wrapper(s). Pass multiple to add several CTAs on the same PDP. | required |
getSizes | async function | Returns the available sizes as an array of { variantId, quantity } so the widget can check whether recommended sizes are in stock. | required for that usage, otherwise optional |
addToCart | async function | Receives a variantId as input and adds the matching product variant to the cart. | required for that usage, otherwise optional |
selectSize | async function | Receives a variantId as input and selects the matching variant in your storefront UI (lets the customer skip one click). | required for that usage, otherwise optional |
If
lang or market don’t follow their respective conventions or aren’t supported, you’ll see a console warning.Supported languages (ISO 639-1)
Supported languages (ISO 639-1)
If a language you need isn’t in the list below, please contact your Kleep representative.
fr— French (default)br— Brazilianda— Danishde— Germanen— Englishes— Spanishfi— Finnishit— Italianja— Japaneseko— Koreannl— Dutchpl— Polishpt— Portuguesesv— Swedishzh— Chinese
Supported markets (ISO 3166-1 alpha-2)
Supported markets (ISO 3166-1 alpha-2)
AF, AX, AL, DZ, AD, AO, AI, AG, AR, AM, AW, AC, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CA, CV, BQ, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, HR, CU, CW, CY, CZ, CI, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, XK, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MQ, MR, MU, YT, MX, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, AN, NC, NZ, NI, NE, NG, NU, NF, MK, NO, OM, PK, PS, PA, PG, PY, PE, PH, PN, PL, PT, QA, CM, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, KR, SS, ES, LK, VC, SD, SR, SJ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TA, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, WF, EH, YE, ZM, ZW, ZZ
Example
3.2. kleep.createButton — Recreate Kleep’s CTA
In some cases your website might rebuild components or reload state variables, causing Kleep’s CTA to disappear. Call kleep.createButton to make it reappear.
No parameter is needed — it reuses the information you provided when calling kleep.load, so make sure kleep.load ran first.
3.3. kleep.track — Enable tracking & Dashboard access
On top of the sizing functionality, we add tracking so you can measure how the solution performs on your website. Use kleep.track(event_type, event_info) to send information each time a tracked event occurs.
These events track your store’s standard customer journey — a product being viewed, added to cart, or purchased through your usual storefront flow. They are not Kleep-specific actions (e.g. an add-to-cart triggered from the Kleep widget); fire each one wherever it naturally happens on your site.
| Event type | Trigger | Priority |
|---|---|---|
product_viewed | Upon PDP viewed | required |
product_added_to_cart | Upon product added to the cart | required |
checkout_completed | Upon order confirmation after payment | required |
product_viewed
product_added_to_cart
checkout_completed
3.4. kleep.getTrackingId — Get internal Kleep ID
For custom use cases, you can retrieve one of the visitor’s Kleep internal IDs.
It returns either:
null— if the visitor has not used Kleep, or- a UUID — if the visitor has a Kleep tracking ID
