Event schemas

reco Recommendation

A size answer was shown to the shopper: the status, the sizes and the answers' summary, never a body measurement.

When to send it

Shopper app, after each size answer shown (T07.09.10).

Required fields

Field Type Rules Description
client_id integer greater than 0
event "reco"
tracking_id string a UUID
timestamp_ms integer
product_id string 1–255 characters
available boolean | null

Optional fields

Field Type Rules Description
event_id string 1–255 characters
schema_version 1
user_agent string at most 2048 characters
shop_country string | null at most 8 characters; may be null
channel string | null at most 64 characters; may be null
instance_id string 1–255 characters
brand_id integer | null greater than 0; may be null
product_associated boolean
ab_data object
testEvent true
extra object
reco_id string 1–255 characters
status "recommended" | "between_sizes" | "needs_measurements" | "no_match"
recommended_size string | null 1–64 characters; may be null
closest_size string | null 1–64 characters; may be null
alternatives array of string at most 20 items
direction_hint "size_up_for_relaxed" | "size_down_for_slim" | null may be null
primary_size_system string 1–16 characters
chart_id string 1–255 characters
chart_revision string 1–64 characters
mode "classic" | "social_proof" | "usual_size" | "shoes" | "head"
input_source "questions" | "measurements" | "mixed" | "usual_size" | "profile"
predicted_dimensions array of "height" | "chest" | "underbust" | "waist" | "pelvisGirth" | "hipsMax" | "upperArm" | "wrist" | "thigh" | "calf" | "neck" | "upperArmLength" | "forearmLength" | "upperLegLength" | "lowerLegLength" | "inseam" | "shoulderWidth" | "backLength" | "torsoHeight" | "sleeveLength" | "footLength" | "headCircumference" at most 40 items
entered_dimensions array of "height" | "chest" | "underbust" | "waist" | "pelvisGirth" | "hipsMax" | "upperArm" | "wrist" | "thigh" | "calf" | "neck" | "upperArmLength" | "forearmLength" | "upperLegLength" | "lowerLegLength" | "inseam" | "shoulderWidth" | "backLength" | "torsoHeight" | "sleeveLength" | "footLength" | "headCircumference" at most 40 items
engine_version string 1–64 characters
predictor_version string 1–64 characters
body_model_version string 1–64 characters
product_body_part string 1–16 characters
comforts object
size_conversions object
physical_infos object
references array of object at most 10 items
references[].brand_id integer | string greater than 0; 1–64 characters
references[].brand_type_id integer | string greater than 0; 1–64 characters
references[].size_name string 1–64 characters
references[].size_system string | null 1–16 characters; may be null
found boolean
size string | null 1–64 characters; may be null
size_system string | null 1–16 characters; may be null
sizing_chart_id integer | string | null greater than 0; 1–255 characters; may be null
model string | null 1–64 characters; may be null

Example

Test values only. This example passes the event's schema.

{
  "event": "reco",
  "client_id": 1000,
  "tracking_id": "3f0b8c2e-4d5a-4b6c-8d7e-9f0a1b2c3d4e",
  "timestamp_ms": 1792000000000,
  "product_id": "TEST-JACKET-01",
  "reco_id": "reco_01JTESTEXAMPLE000000000000",
  "status": "recommended",
  "recommended_size": "M",
  "closest_size": "M",
  "alternatives": [
    "L"
  ],
  "direction_hint": null,
  "available": true,
  "primary_size_system": "EU",
  "chart_id": "8030",
  "chart_revision": "3",
  "mode": "classic",
  "input_source": "questions",
  "predicted_dimensions": [
    "chest",
    "waist",
    "hipsMax"
  ],
  "entered_dimensions": [],
  "engine_version": "chart-fit-3.0",
  "predictor_version": "anny-predictor-1.2.0",
  "comforts": {
    "chest": "ADJUSTED",
    "waist": "LOOSE"
  },
  "size_conversions": {
    "M": {
      "FR": {
        "size_name": "38"
      }
    }
  },
  "physical_infos": {
    "gender": "female",
    "age": 34,
    "height": 168,
    "weight": 62,
    "body_shape": "X",
    "bra": {
      "band": 75,
      "cup": "B",
      "region": "EU"
    }
  },
  "references": [
    {
      "brand_id": 12,
      "brand_type_id": 340,
      "size_name": "M",
      "size_system": "EU"
    }
  ],
  "found": true,
  "size": "M",
  "size_system": "EU",
  "sizing_chart_id": 8030,
  "model": null
}

Checks and messages

What Tracking debug in your back office checks for this event, with its exact message. An error means the event is not counted; a warning means it is counted but something is likely wrong; an info is a hint.

LevelCheckMessage
error invalid_field what is wrong with the field
error over_limit the field is over the limit of <limit>
error product_id_missing missing product_id
error tracking_id_missing missing tracking_id: the event is rejected. Send the visitor id (fmt_device_id) with every event.
warning product_unknown product not found in your catalogue or has no size chart
warning size_not_in_product size "<value>" is not one of the product's sizes
warning timestamp_missing timestamp_ms is missing or not a time in milliseconds: the time the event was received is used
warning timestamp_out_of_range timestamp_ms is more than 30 days old or more than 3 days ahead: the time the event was received is used
info size_lower_case size "<value>" was sent in lower case. Use uppercase letters or numbers.

JSON schema

The schema the API checks this event against: reco.schema.json.