Вывести последние просмотренные продукты
Задача
Клиентам отправляют недавно просмотренные товары без привязки к конкретной сессии.
Нужно составить верстку рассылки, чтобы с помощью параметров шаблонизатора выводить клиентам подходящие продукты.
О выводе просмотренных товаров в брошенной сессии — в инструкции.
Как собрать параметр
Используйте базовый параметр по клиенту Recipient
:
Для просмотров добавьте параметр ProductViews
:
Дальше выберите параметр или функцию в зависимости от того, какие продукты нужно отобрать:
FilterBySegment(...)
— из определенного сегмента.
Можно дополнительно отобрать случайные, уникальные для каждой группы и доступные в регионе получателя продукты.AvailableForRecipient
— доступные в регионе получателя.
Можно дополнительно отобрать случайные и уникальные для каждой группы продукты.SinglePerGroup
— уникальные для каждой группы.
Можно дополнительно отобрать случайные продукты.Random
— в случайном порядке.Take(N)
— без фильтрации и сортировки.Products
— продукты без фильтрации и сортировки и без данных по просмотру (доступность и стоимость на момент просмотра). Уникальные продукты из просмотров.
Чтобы отбирать уникальные продукты из просмотров, коллекция должна содержать параметр Products
.
Например, Recipient.ProductViews.AvailableForRecipient.Take(N)
включает все подходящие просмотры, даже с одинаковыми товарами.
А Recipient.ProductViews.AvailableForRecipient.Products.Take(N)
— только уникальные продукты из просмотров.
Пример коллекции — просмотры продуктов из сегмента «В наличии»:
Для обращения к каждому элементу (просмотру) собранной коллекции используйте цикл for...end for.
Параметры для вывода данных по каждому отобранному просмотру:
IsAvailable
— доступен ли был продукт на момент просмотра.Price
— цена продукта на момент просмотра.
Цена и наличие продукта на момент просмотра — неизменные свойства просмотра, отдельные от цены и наличия продукта на проекте.
В них фиксируется состояние товара, каким его увидел конкретный пользователь.
-
Product
— массив данных по текущему состоянию продукта на проекте:
В том числе наличие и цена продукта на данный момент.
Пример верстки
Выведем в рассылке URL, картинку, название, описание и цену уникальных продуктов из просмотров:
@{for prod in Recipient.ProductViews.FilterBySegment("VNalichii").Products.Take(4)}
<a href="${prod.Url}"><img src="${prod.PictureUrl}"></a>
${prod.Name}
${truncate(prod.Description, 50)}
${FormatDecimal(prod.Price, "N0")} ₽
<a href="${prod.Url}">Купить</a>
@{end for}
То же в виде товарной сетки:
@{for row in tableRows(Recipient.ProductViews.FilterBySegment("VNalichii").Products.Take(4), 2)}
@{for cell in row.Cells}
@{if cell.value != null}
<a href="${cell.value.Url}"><img src="${cell.value.PictureUrl}"></a>
${cell.value.Name}
${truncate(cell.value.Description, 50)}
${FormatDecimal(cell.value.Price, "N0")} ₽
<a href="${cell.value.Url}">Купить</a>
@{end if}
@{end for}
@{end for}
Пользователь получит в письме: