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

# Kameleoon.API.Products: Tracking

> Referenz der Methoden von Kameleoon.API.Products, mit denen Produktaufrufe, Kategorieaufrufe, Suchanfragen, Änderungen im Warenkorb und auf der Wunschliste sowie Käufe gesendet werden.

Verwenden Sie diese Methoden, um Produkt- und Kategorieaufrufe, Suchanfragen, Änderungen im Warenkorb, Ergänzungen der Wunschliste und Käufe an Kameleoon zu senden.

> [!NOTE]
>
> Dieses Modul ist verfügbar, wenn Sie das Modul "Produktempfehlung" oder das Zusatzmodul "Produkt-Targeting" abonniert haben.

## trackAddToCart

Die `trackAddToCart()` Methode wird ausgelöst, wenn ein Besucher ein Produkt zum Einkaufswagen hinzufügt.

```javascript theme={null}
var buyButton = Kameleoon.API.Utils.querySelectorAll("#buyButton")[0];
Kameleoon.API.Utils.addEventListener(buyButton, "mousedown", function () {
  Kameleoon.API.Products.trackAddToCart("myProductId", 19.99, 1, {
    stock: true, 
    recommended_code: 'some-unique-code', //siehe Argumenttabelle für weitere Informationen
    recommended_by: 'dynamic'//siehe Argumenttabelle für weitere Informationen
  });
});
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| productID | String | Eindeutige Produktkennung. Dieses Feld ist erforderlich. |
| unitPrice | Number | Preis für eine Einheit des Produkts, auf das **productID** verweist. Dieses Feld ist optional; wenn Sie es nicht angeben, verwendet Kameleoon den Standardpreis des Produkts aus dem importierten Produkt-Feed. |
| amount | Number | Gesamtmenge des Produkts nach der Warenkorb-Aktualisierung. Verwenden Sie nicht-inkrementelle Werte. Wenn der Warenkorb beispielsweise zwei Artikel mit der gleichen `productID` enthält und Sie einen weiteren hinzufügen, geben Sie 3 an. Wenn Sie zwei Artikel aus einem Warenkorb mit 20 Artikeln entfernen, geben Sie 18 an. |
| parameters | Object | [Parameter für die Empfehlungsplattform.](#parameter-für-die-empfehlungsplattform) Dieses Feld ist optional. |

### Parameter für die Empfehlungsplattform

| Name | Type | Description |
| - | - | - |
| recommended\_by | String | Setzen Sie für SPAs oder Pop-ups diesen Wert auf "dynamic". Dieses Feld ist erforderlich in bestimmten Szenarien. |
| recommended\_code | String | Stellen Sie für SPAs oder Pop-ups den eindeutigen Widget-Code bereit, den Sie im Attribut "data-recommender-code" in Ihrem Konto finden. |
| stock | Boolean | Produktverfügbarkeit. Dieser Wert setzt Daten aus Produktfeeds oder Katalogimporten außer Kraft. Dieses Feld ist optional. |

## trackAddToWishList

Die `trackAddToWishList()` Methode wird ausgeführt, wenn ein Besucher ein Produkt von der Wunschliste oder den Favoriten hinzufügt oder entfernt.

```javascript theme={null}
Kameleoon.API.Products.trackAddToWishList("myProductId"); // zum Hinzufügen zur Wunschliste

Kameleoon.API.Products.trackAddToWishList("myProductId", -1); // zum Entfernen von der Wunschliste
```

| Name | Type | Description |
| - | - | - |
| productId | String | Eindeutige Kennung des zur Wunschliste hinzugefügten Produkts. Dieses Feld ist erforderlich. |
| quantity | Number | Menge zum Aktualisieren. Verwenden Sie negative Werte (z. B. -1), um Entfernung anzuzeigen. Wenn weggelassen, wird die Methode standardmäßig auf **1** gesetzt. |

## trackCategoryView

Die Methode `trackCategoryView()` wird bei jedem Seitenabruf einer Kategorie während einer Sitzung ausgeführt.

```javascript theme={null}
if (location.href.indexOf("productPage") != -1) {
  Kameleoon.API.Core.runWhenConditionTrue(function () {
    return typeof dataLayer != null;
  }, function () {
    dataLayer.forEach(function (map) {
      if (map.categoryID) {
        Kameleoon.API.Products.trackCategoryView(5);
      }
    });
  }, 200);
}
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| categoryID | String | Eindeutige Kategorikennung. Dieses Feld ist erforderlich. |

## trackProductView

Die Methode `trackProductView()` wird für jeden Produktaufruf während einer Sitzung ausgeführt. Diese Methode ermöglicht es Kameleoon, einen automatisierten Produktkatalog ohne XML-Feed-Integration zu erstellen, was die Einrichtung von Produktempfehlungsprojekten vereinfacht.

```javascript theme={null}
Kameleoon.API.Products.trackProductView("myProductID", {
    "name": "productName",
    "categories": [{
        "id": "13",
        "name": "productCategory",
        "parent": null,
        "url": "website.com/category/2"
    }],
    "imageURL": "https://www.mywebsite/productImage.jpg",
    "price": 19.99,
   "oldPrice": 23.99,
    "accessories": ['productID1', 'productID2'],
    "available": true,
    "availableQuantity": 15,
    "brand": "productBrand",
    "groupId": "groupID1",
    "sku": "productSKU",
    "description": "This is a short description",
    "rating": 4,
    "model": "phone 14 128GB",
    "leftovers": "one",
    "tags": ["shirt", "red"],
    "typePrefix": "mobile phone",
    "seasonality": [1, 2, 3, 10, 11, 12],
    "priceMargin": 100,
    "isChild": false,
    "isNew": false,
    "isFashion": true,
    "auto": {
        "vds": ["BP8AN5", "HH5820"],
        "compatibility": [ 
            {
                "brand": "BMW"
            }, 
            { 
                "brand": "Mini", "model": "Cooper S" 
            } 
        ]
    },
    "fashion":  {
        "gender": "f",
        "type": "shoe",
        "sizes": ["37", "42"],
        "feature": "adult",
        "colors": [ 
            { 
                "color": "red" 
            }, 
            { 
                "color": "green", "picture": "https://example.com/items/395532-green.jpg" 
            }
        ]
    },
    "params": [
        {
            "name": "connectivity",
            "value": ["bluetooth", "wi-fi"]
        },
        {
            "name": "lengths",
            "value": ["4", "6", "8"],
            "unit": "cm"
        }
    ]
});
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| productID | String | Produktkennung. Verwenden Sie einen eindeutigen Wert, der dieses Produkt identifiziert. Dieses Feld ist erforderlich. |
| productData | Object | [Product-Objekt](https://docs.kameleoon.com/de/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#product). Dieses Feld ist erforderlich, um Produkt-Feeds über das Add-on Product Recommendation zu importieren. |

## trackSearchQuery

The `trackSearchQuery()` method records user search queries.

```javascript theme={null}
Kameleoon.API.Products.trackSearchQuery("Example search request");
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| search\_query | String | Der Suchabfragewert. Dieses Feld ist erforderlich. |

## trackTransaction

The `trackTransaction()` method executes wenn a transaction or purchase occurs.

```javascript theme={null}
Kameleoon.API.Products.trackTransaction(
 [
  {
   "productID": "myProductID1",
   "quantity": 4
  },
  {
   "productID": "myProductID4564",
   "quantity": 1
  }
 ],
 {
  "order": "N318",
  "order_price": 29999
 }
);
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| products | Array | Liste von Objekten, die `productID` und `quantity` für jedes Produkt in der Transaktion enthalten. Dieses Feld ist erforderlich. |
| params | Object | [Zusätzliche Parameter für die Empfehlungsplattform.](#additional-parameters-for-tracktransaction) Dieses Feld ist optional. |

### Zusätzliche Parameter für trackTransaction

| Name | Type | Description |
| - | - | - |
| order | string | Bestellnummer des Geschäfts. Wenn Sie diese weglassen, verwendet die Engine ein internes Nummerierungssystem, das die Bestellstatusverwaltung verhindert. Siehe die Parameterbeschreibungen unten. |
| order\_price | Number | Endgültige Bestellkosten, einschließlich Rabatte, Boni und zusätzliche Services. Wenn Sie dies auslassen, berechnet die Engine die Kosten aus der Produktdatenbank ohne Rabatte oder Services. |
| email | string | Customer email. |
| phone | string | Customer phone number. |
| promocode | string | Transaction promo code. |
| order\_cash | number | Cash payment amount. |
| order\_bonuses | number | Bonus payment amount. |
| order\_delivery | number | Delivery fee. |
| order\_discount | number | Order discount amount. |
| delivery\_type | string | Delivery method. |
| payment\_type | string | Payment type (e.g., "cash", "card", "wire"). |
| tax\_free | boolean | Tax-free status. |
