Similarity

similarity_example

Our similarity service is trying to answer a question: which are the visually similar products? Since the information is purely visual it creates relation between product looks being visually distinct variants.

We are able to add custom business logic into parsing similar looks using other information from feed, e.g.

  • only compare to products in the same category

  • filter only similar looks of a similar price (+- 20eur)

  • exclude different looks with same parent product from similarity

API Usage

  • Similarity results are updated automatically by processing customers feed

  • The results are filled into Catalogue as a relationships between looks.

See Catalogue: Look endpoints labeled Get Similarities in interactive OpenAPI docs.

Example Query - look/similarities

  • request

LOOK_ID='793769'

curl \
    -X GET "${API_BASE_URL}/looks/${LOOK_ID}/similarities?limit=3" \
    -H "accept: application/json" \
    -H "x-api-key: ${API_KEY}" \
    -H "Authorization: None"
  • response

{
  "links": {
      "next": "/similarities?limit=3&offset=3",
      "prev": null,
      "limit": 3,
      "offset": 0
  },
  "results": [
    {
    "look_id": "793769",
    "similar_look_id": "370299",
    "position": 0
    },
    {
    "look_id": "793769",
    "similar_look_id": "844177",
    "position": 1
    },
    {
    "look_id": "793769",
    "similar_look_id": "1035194",
    "position": 2
    }
  ]
}

Example Query - look/similar-looks

  • request

LOOK_ID='793769'

curl \
    -X GET "${API_BASE_URL}/looks/${LOOK_ID}/similar-looks?limit=3" \
    -H "accept: application/json" \
    -H "x-api-key: ${API_KEY}" \
    -H "Authorization: None"
  • response

{
  "links": {
      "next": "/similarities?limit=3&offset=3",
      "prev": null,
      "limit": 3,
      "offset": 0
  },
  "results": [
    {
      "id": "1035194",
      "code": "1035194",
      "instance": {},
      "product": {},
      "primary_image": {}
    },
    {
      "id": "1053562",
      "code": "1053562",
      "instance": {},
      "product": {},
      "primary_image": {}
    },
    {
      "id": "750255",
      "code": "750255",
      "instance": {},
      "product": {},
      "primary_image": {}
    }
  ]
}