Outfits and Similar Items

Prev Next

Overview

This page describes how to retrieve Mapp Fashion Outfits and Similar Items for a given product.

This endpoint is used for item-anchored recommendation use cases, where a specific product serves as the starting point for related content.

Key facts

  • Requires a specific anchor item and is used to retrieve related content for that product

  • Retrieves recommendation content only; no tracking is performed on retrieval

  • Used to render outfits, partner outfits (model wears), and similar item lists

  • Content can be requested individually or combined in a single call

  • Item order and grouping must be preserved for correct interaction tracking

  • Typically used in custom PDP implementations or headless frontends


Retrieval Approaches

Outfits and similar items can be retrieved using the same underlying API, either directly via HTTP or through the JavaScript client library.

Choose the approach based on your integration setup and rendering strategy.

  • JavaScript client library

    Use this approach when Mapp Fashion is integrated via Integrated Tracking and recommendations are rendered client-side.

  • Direct HTTP requests

    Use this approach for server-side rendering, headless setups, or when recommendations are fetched outside the browser.

Both approaches return the same response structures and support the same request parameters.


Endpoint

This endpoint always operates on a single anchor item, defined by the item_id path parameter. Use it to retrieve outfits, partner outfits, and similar items for a given product.

HTTP

GET https://api.dressipi.com/api/items/{item_id}/related

All request properties are translated into query string parameters.

Any unrecognized keys (for example locale) are passed through to the endpoint automatically.


Request Parameters

The following parameters control which related content is returned and how items are represented in the response.

The request parameters can be grouped by their purpose:

  • Required

    • tem_id

  • Content selection

    • methods

    • try_all_methods

  • Result shaping

    • response_format / garment_format

    • outfits_per_occasion

    • max_similar_items

    • max_reduced_by

  • Identification and context

    • identifier_type

    • locale

The table below provides a complete reference of all request parameters and how they affect the response.

Key

Type

Required

Description

item_id

string

Yes

ID of the anchor item to retrieve related content for.

methods

RelatedItemsMethod | RelatedItemsMethod[]

No

Methods include: outfits, partner_outfits, similar_items.

try_all_methods

boolean

No

If true, tries all methods, falling back if one fails. Default: false.

response_format

RequestedResponseFormat

No

Format of returned item data. Maps to URL param garment_format. Default: detailed.

outfits_per_occasion

Integer

No

Max number of outfits per occasion.

max_similar_items

Integer

No

Max number of similar items.

max_reduced_by

Integer

No

Max price reduction threshold (percentage).

identifier_type

IdentifierType

No

Controls the interpretation of item_id.

locale

string

No

e.g., en. Passed through to the endpoint even if not typed in the JavaScript client library.

onSuccess

(res) => void

No

Success callback.

onFailure

(err) => void

No

Error callback.

Common query parameters (HTTP)

The following parameters are used when calling the endpoint directly via HTTP.

Value

Description

methods

Comma-separated list of methods to request.

garment_format

Maps from response_format.

try_all_methods

Boolean. If false (the default), the methods listed are attempted until one succeeds, and only results for that method are returned.

If true, results for all successful methods are returned

Pass-through behavior:

Any additional keys you include (for example locale) are forwarded as URL parameters without explicit client-side mapping.


IdentifierType

Value

Description

dressipi-id

Internal Dressipi item identifier.

ean

EAN barcode.

product-code

Merchant’s product code.

sku

Stock Keeping Unit.


RequestedResponseFormat

Value

Description

detailed

Full detailed data for each item.

document

Minimal metadata document format.

retailer_ids

Only retailer item IDs.


Config key to URL parameter mapping

JavaScript Client Library Key

URL Parameter

response_format

garment_format

methods

methods (comma-separated)

try_all_methods

try_all_methods

outfits_per_occasion

outfits_per_occasion

max_similar_items

max_similar_items

max_reduced_by

max_reduced_by

identifier_type

identifier_type

locale

locale


Example Requests

HTTP

GET https://api.dressipi.com/api/items/123456/related?methods=outfits,similar_items&garment_format=detailed

JavaScript Client Library

wtSmart.extension.fashion.call("related", "items", {
  item_id: "YOUR_PRODUCT_CODE_OR_SKU",
  placement_id: "A_UUID_PROVIDED_BY_DRESSIPI",
  response_format: "detailed",
  methods: ["outfits", "partner_outfits", "similar_items"], // should be an array, amend as required
  try_all_methods: true, // if false (the default), the methods listed are attempted until one succeeds
  onSuccess: (data) => {},
  onFailure: (err) => {},
});

Response

The response structure depends on the retrieval methods requested.

  • When multiple methods are requested, each result set is returned under its corresponding key.

  • When only a single method is requested, the response may contain only that section to simplify consumption.

Multiple Methods Response

{
  response_id: string;
  outfits?: Outfit[];
  partner_outfits?: Outfit[];
  similar_items?: {
    content_id: string;
    items: Item[] | DetailedItem[];
  };
}

Multiple retrieval methods can be combined in a single request to reduce the number of API calls required on a Product Detail Page.

Example:

{
  "response_id": "b3c1b6b0-9c2e-4a8b-9f1a-1234567890ab",
  "outfits": [
    {
      "content_id": "65dfa7",
      "items": [
        {
          "dressipi_item_id": 1322,
          "id": "REDDRESS01"
        }
      ],
      "occasion": "casual"
    }
  ],
  "partner_outfits": [
    {
      "content_id": "65dfa7",
      "items": [
        {
          "dressipi_item_id": 1322,
          "id": "REDDRESS01"
        }
      ],
      "occasion": null
    }
  ],
  "similar_items": {
    "content_id": "65dfa7",
    "items": [
      {
        "dressipi_item_id": 35122,
        "id": "602849501492"
      }
    ]
  }
}

Single Method Response

{
  response_id: string;
  outfits: Outfit[];
}

Example:

{
  "response_id": "b3c1b6b0-9c2e-4a8b-9f1a-1234567890ab",
  "outfits": [
    {
      "content_id": "65dfa7",
      "occasion": "casual",
      "items": [
        { "dressipi_item_id": 1322, "id": "REDDRESS01" }
      ]
    }
  ]
}

Types

The following types describe the data structures returned by the related-items endpoint.

Item

Minimal representation of a returned product.

interface Item {
  id: string;
  dressipi_item_id: number;
}

DetailedItem

Extended item representation including pricing, images, availability, and metadata.

interface DetailedItem extends Item {
  name: string;
  price?: string;
  old_price?: string;
  brand_name: string;
  url: string;
  category_name?: string;
  category_id?: number;
  images: string[];
  image_url: string;
  best_model_image?: string | null;
  best_product_image?: string | '' | null;
  thumbnail_image_url?: string;
  has_outfits: boolean;
  status: 'in stock' | 'out of stock';
  style_id?: string;
}

Outfit

A grouped set of items, optionally associated with an occasion.

interface Outfit {
  content_id: string;
  occasion: string | null;
  items: Item[] | DetailedItem[];
}