# Recently Viewed

> Source: https://docs.recombee.com/recipes/e-commerce/fully-personalized-homepage/recently-viewed

> For the complete documentation index, see [llms.txt](/llms.txt).

**Table of contents**

* [Introduction](#introduction)
* [Scenario Setup](#scenario-setup)
* [Logic](#logic)
* [Filters](#filters)
* [Requesting Recommendations](#requesting-recommendations)

# Recently Viewed

![](/img/recipes/e-commerce/recently-viewed.png) 

## Introduction

The "Recently Viewed" scenario suggests products that have been previously viewed by the user, driving the user to ultimately purchase the product.

## Scenario Setup

In the Recombee Admin UI, navigate to the **[Scenarios](/scenarios)** section and choose **Create Scenario**.

1. Enter a **Scenario ID**. Select a distinctive label for your recommendation scenario, such as _"recently-viewed"_
2. Choose **Recommendation type** \- _[Items to User](/api#recommend-items-to-user)_

![Admin UI - Scenario Setup](/img/recipes/e-commerce/recently-viewed-create-scenario.png)

## Logic

The [Logic](/recommendation_logics) defines the behavior of the recommendation engine.

* Choose the **[recombee:recently-viewed](/recommendation_logics#recombee-recently-viewed)** logic type from the **Universal Models**

By adjusting specific parameters, such as `maxAge` and `recencyOrdering`, you can fine-tune the model’s behavior.

`maxAge` specifies the time interval in which the user’s Detail Views are taken into account.

For example, if you set the parameter to 7 days (it is specified in seconds, thus 7 \* 24 \* 60 \* 60 = 604,800 seconds), the products viewed by the user within the last 7 days will be returned.

`recencyOrdering`: By default, the products are returned from the most recently viewed ones, however, you can alter this behavior by setting `recencyOrdering` to _“ascending”_.

![Admin UI - Logic](/img/recipes/e-commerce/recently-viewed-logic.png)

## Filters

Available Products (Global Settings)

You always want to recommend only the products that are in stock. Therefore you need to apply a [**Filter**](/scenarios#filters) rule to allow only such products.

As it would be tedious and prone to error to add this rule to all the Scenarios, this rule shall be added to the [**Global Settings**](/scenarios#scenarios-in-admin-ui-global-settings), so it is always applied everywhere.

You can select a **predefined rule from the Recombee Library** to allow only the available products.

Depending on how you represent availability in the catalog, it can be **one of the following rules:**

* **Not deleted items** \- when you have a _deleted_ property (true/false)
* **Available items** \- when you have an _available_ property (true/false)
* **Items in stock \[Google Merchant\]** \- when you have a string _available_ property with _"in stock"_ as its value

![Admin UI - Global Settings - Filter](/img/recipes/e-commerce/filter.png)

## Requesting Recommendations

There are three ways to get recommendations.

1. **[No-Code Widget](/no-code-widgets)** \- create a No-Code Widget using the **visual editor in the Admin UI**.
2. **[Widget SDKs](/widget-sdks)** \- use the SDK for a [Carousel](/widget-sdks#carousel), [Grid](/widget-sdks#grid) or [Feed](/widget-sdks#feed) to display the recommendations in the design of your choice. Use the [Recommend Items to User endpoint](/api#recommend-items-to-user) when initializing the widget.
3. **[API SDK](/api_clients)** \- request the [Recommend Items to User endpoint](/api#recommend-items-to-user) of the Recombee API using an SDK of your choice.

For more information, navigate to the Integration tab of the Scenario in the Admin UI.

In order to request content for multiple homepage boxes with a single API request, use the [Batch endpoint](/api#batch) and put the recommendation requests inside it. Set the parameter `distinctRecomms` in order to [deduplicate the items among the boxes](/api#batch-example-using-distinctrecomms-parameter-to-deduplicate-results-in-multiple-boxes).