Содержание

Несколько корзин и избранного

Если на вашем сайте предусмотрен функционал работы с множественными корзинами и списками избранного, то enKod позволяет интегрировать и такие механики. Для этого необходимо использовать идентификаторы (строка) для корзин/избранного при передаче событий изменения этих сущностей в enKod.

Идентификаторы корзин и избранного являются необязательными, и, если они не переданы, мы считаем, что работа происходит с дефолтной корзиной/избранным контакта. Подразумеваем, что на аккаунте для контакта могут параллельно и независимо существовать:

Настройка и особенности работы методов трекинга

Действия с корзиной (скрипт)

Параметр «cartId» необходим для передачи идентификатора корзины (тип данных - строка). Если этот параметр не передан - действия будут происходить с дефолтной корзиной без идентификатора.

<script type="text/javascript">
    ekEvents.push('productAdd', {productId: '...', cartId: '...'});
</script>
<script type="text/javascript">
    ekEvents.push('productAdd', [{productId: '...', cartId: '...'}, {productId: '...', cartId: '...'}]); 
</script>
<script type="text/javascript">
    ekEvents.push('productRemove', {productId: '...', cartId: '...'});
</script>
<script type="text/javascript">
    ekEvents.push('productRemove', [{productId: '...', cartId: '...'}, {productId: '...', cartId: '...'}]); 
</script>

При передаче в одном запросе нескольких товаров с разными cartId - они будут сгруппированы и записаны каждый в соответствующий корзину. Пример такой передачи:

<script type="text/javascript">
    ekEvents.push('productAdd', [{productId: '...', cartId: '1'}, {productId: '...', cartId: '2'}]);
</script>

Действия с корзиной (API)

Параметр «id» необходим для передачи идентификатора корзины (тип данных - строка). Если этот параметр не передан - действия будут происходить с дефолтной корзиной без идентификатора.

В теле запроса на уровне с параметрами «cart» и «history» передайте параметр «id» для работы с определенной корзиной:

{
  "id": "...",
  "cart": {...},
  "history": [...]
}

Передайте тело запроса с единственным параметром «id» для работы с определенной корзиной:

{
  "id": "..."
}

Действия с избранным (скрипт)

Параметр «favouriteId» необходим для передачи идентификатора избранного (тип данных - строка). Если этот параметр не передан - действия будут происходить с дефолтным избранным без идентификатора.

<script type="text/javascript">
    ekEvents.push('productLike', {productId: '...', favouriteId: '...'});
</script>
<script type="text/javascript">
    ekEvents.push('productLike', [{productId: '...', favouriteId: '...'}, {productId: '...', favouriteId: '...'}]); 
</script>
<script type="text/javascript">
    ekEvents.push('productDislike', {productId: '...', favouriteId: '...'});
</script>
<script type="text/javascript">
    ekEvents.push('productDislike', [{productId: '...', favouriteId: '...'}, {productId: '...', favouriteId: '...'}]); 
</script>

При передаче в одном запросе нескольких товаров с разными favouriteId - они будут сгруппированы и записаны каждый в соответствующее избранное. Пример такой передачи:

<script type="text/javascript">
    ekEvents.push('productLike', [{productId: '...', favouriteId: '1'}, {productId: '...', favouriteId: '2'}]);
</script>

Действия с избранным (API)

Параметр «id» необходим для передачи идентификатора избранного (тип данных - строка). Если этот параметр не передан - действия будут происходить с дефолтным избранным без идентификатора.

В теле запроса на уровне с параметрами «wishlist» и «history» передайте параметр «id» для работы с определенным избранным:

{
  "id": "...",
  "wishlist": {...},
  "history": [...]
}

Передайте тело запроса с единственным параметром «id» для работы с определенным избранным:

{
  "id": "..."
}

Обработка в методах работы с персонами в контексте параметров, влияющих на состояние корзин/избранного

API

Для API-метода Передача данных контакта с привязкой к основным полям (POST /v1/subscribe/) логика работы для кейсов с несколькими корзинами/избранным в зависимости от переданных параметров cartMergeMethod и favouriteMergeMethod следующая:

Скрипт

Для метода скрипта Захват контакта на любой из форм (логин, регистрация, быстрая покупка) логика работы для кейсов с несколькими корзинами/избранным в зависимости от переданных параметров cartMergeMethod и favouriteMergeMethod по описанной выше логике полностью аналогична API.

Пример кейса с объединением контактов

Пример

Контакт 1

Контакт 2

Объединяем через cartMergeMethod = merge, получаем:

Очистка корзины после заказа в случае множественных корзин

При работе с единственной корзиной после заказа она автоматически очищается в базе. В случае нескольких корзин мы не сможем произвести очистку автоматически, т.к. не знаем, какую из нескольких корзин выкупили. Вам необходимо после передачи заказа дополнительно передать метод на очистку корзины, заказ которой был оформлен (используйте соответствующий API-метод или метод скрипта).

Сегментация и динамический контент

Условия сегментов:

по умолчанию работают с корзиной/избранным с самой недавней датой обновления (под обновлением понимается событие добавления товара в корзину/избранное). Это может быть как дефолтная корзина/избранное, так и одна из корзин/избранного с идентификатором.

В это же время методы динамического контента:

по умолчанию также возвращают товары из корзины/избранного с самой недавней датой обновления (под обновлением понимается событие добавления товара в корзину/избранное). Это может быть как дефолтная корзина/избранное, так и одна из корзин/избранного с идентификатором.

Для того, чтобы вывести в письмо содержание всех корзин и всех списков избранного используйте методы:

Обратите внимание, что при использовании этих конструкций сортировка выдачи происходит только по самим корзинам/избранному, товары внутри не будут отсортированы. Первым будет получено содержимое корзины/избранного, в которые было совершено самое последнее добавление товара, далее следующие по дате обновления и т.д.