---
title: "addtocart"
method: POST
path: "/{siteId}/recommendations/addtocart"
tags: ["Recommendations"]
---

# addtocart

`POST /{siteId}/recommendations/addtocart`

## Request

- Base URL: `https://analytics.searchspring.net/beacon/v2`
- URL: `https://analytics.searchspring.net/beacon/v2/{siteId}/recommendations/addtocart`
- Auth: none required

<i>/beacon/v2/{siteId}/recommendations/addtocart</i><br><br>Shopper adds a Searchspring personalized recommendation result to the cart via a `Quick Add to Cart` button in the rendered product card. **If frontend `Quick Add to Cart` is not implemented, omit usage of this endpoint.**

## Path parameters

- `siteId` string, required

## Request body

- RecommendationsAddtocartSchema
  - `context` Context, required: Contextual data about the event
    - `IP` string: Shoppers IP address. Accepts IPv4 and IPv6 formats. Recommended this is passed for accuracy. If not, will attempt to default to the "x-forwarded-for" or the Remote Address.
    - `userAgent` string: Shoppers UserAgent. Recommended this is passed for accuracy. If not, will attempt to default to "user-agent" request header.
    - `timestamp` string, required: RFC3339 formatted timestamp represents time of event
    - `pageUrl` string, required: Current page `window.location.href` value
    - `userId` string, required: Unique identifier for the customer (usually a UUID)
    - `sessionId` string, required: Unique identifier for the customer's current session - should expire after store visit (usually a UUID)
    - `pageLoadId` string, required: Unique identifier that represents a unique page load. Used to tie multiple events made on a single page together.
    - `shopperId` string: Unique identifier for the customer's product personalization - it is typically a user id or email and should be sent if the user is authenticated on the storefront. If the shopper has already logged in this is required.
    - `initiator` string, required: Application identifier that initiated the event
    - `attribution` object[]: Provides attribution details on product landing pages - it is currently only used for email recommendations
      - `type` string, required
      - `id` string, required
    - `currency` Currency: Active currency type on the site
      - `code` string: currency code in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html#:~:text=The%20first%20two%20letters%20of,and%20the%20D%20for%20dollar.) format
    - `dev` boolean: Developer mode flag. If set to `true`, the event data will not populate in reporting
  - `data` object, required: Event details
    - `responseId` string, required: Unique ID returned in each API response
    - `tag` string, required: Tag of the personalized recommendation profile the shopper interacted with
    - `results` Product[], required: Products added to the cart
      - `parentId` string, required: Unique product identifier of the parent product interacted with
      - `uid` string, required: Unique product identifier of the product interacted with
      - `sku` string: SKU of the product interacted with
      - `qty` number, required: Quantity of the item
      - `price` number, float, required: Price of individual item

## Response `200`

OK

- object
  - `success` boolean: Data sent and received

## Other responses

- `400`: Bad request
- `404`: Invalid path
- `405`: Invalid request method
- `413`: Payload too large
- `415`: Unsupported media type
- `500`: Internal server error

---

[API](https://skmtc.dev/searchspring/apis/beacon-2-0.md) - [All operations](https://skmtc.dev/searchspring/apis/beacon-2-0/llms.txt) - [OpenAPI document](https://skmtc.dev/searchspring/apis/beacon-2-0/revisions/09305a8d73df?raw)
