---
title: "Product Catalog"
slug: "engage-personalization-functions-product-catalog"
updated: 2026-01-21T14:06:27Z
published: 2026-01-21T14:06:27Z
canonical: "docs.mapp.com/engage-personalization-functions-product-catalog"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Product Catalog

These functions allow you to use the contact's Wishlist data in email personalization.

---

## ecx:productCatalog

#### Product Catalog

This function fetches a specific product by its product SKU from the product catalog. The product doesn't have to be (but can be) on any wishlist or in the abandoned cart of any user. The product is detached here from any specific user.

```javascript
<%${ecx:productCatalog('aaa-bbb-ccc','productName')}%>
```

#### Wishlist

This function fetches all products on the contact's wishlist. The product to be fetched must be in the product catalog and on the wishlist under the same product SKU.

```javascript
<%ForEach var='wishlistProduct' items="${user.wishlistProducts}" %>
<%${wishlistProduct['productName']}%>
<%/ForEach%>
```

#### Abandoned Cart

This function fetches all products in the contact's abandoned cart. The product to be fetched must be in the product catalog and in the abandoned cart under the same product SKU.

```javascript
<%ForEach var='abanonedCartProduct' items="${user.abandonedCartProducts}" %>
<%${abanonedCartProduct['productName']}%>
<%/ForEach%>
```

### Available Properties

| Name | Type |
| --- | --- |
| `productSKU` | String |
| `productName` | String |
| `localizedProductNames` | Map<String, String> |
| `productPrice` | Float |
| `localizedProductPrices` | Map<String, Float> |
| `variant` | Map<String, String> |
| `stockTotal` | Integer |
| `productURL` | String |
| `imageURL` | String |
| `zoomImageURL` | String |
| `brand` | String |
| `category` | String |
| `msrp` | Float |
| `localizedMsrp` | Map<String, Float> |
| `description` | String |
| `localizedDescriptions` | Map<String, String> |
| `customAttribute1-5` | String |

---

## ecx:productCatalog: Localized Property Names

The `ecx:productCatalog` function handles the resolution of localized values. Below are the accepted function formats.

| Value | Formats |
| --- | --- |
| `productName` | <%${ecx:productCatalog('aaa-bbb-ccc','localizedProductNames')['de']}%> |
| <%${ecx:productCatalog('aaa-bbb-ccc','productName_de')}%> |
| `productPrice` | <%${ecx:productCatalog('aaa-bbb-ccc','localizedProductPrices')['de']}%> <%${ecx:productCatalog('aaa-bbb-ccc','productPrice_eur')}%> |
| `msrp` | <%${ecx:productCatalog('aaa-bbb-ccc','localizedMsrp')['eur']}%> <%${ecx:productCatalog('aaa-bbb-ccc','msrp_eur')}%> |
| `description` | <%${ecx:productCatalog('aaa-bbb-ccc','localizedDescriptions')['de']}%> <%${ecx:productCatalog('aaa-bbb-ccc','description_de')}%> |
| `productURL` | <%${ecx:productCatalog('aaa-bbb-ccc','localizedProductURLs')['de']}%> <%${ecx:productCatalog('aaa-bbb-ccc','productURL_de')}%> |
| `variant` | <%${ecx:productCatalog('aaa-bbb-ccc','variant')['xl']}%> <%${ecx:productCatalog('aaa-bbb-ccc','variant_xl')}%> |
