Skip to main content

Обзор

Upcart — это отдельное от Aftersell приложение, поэтому Strategies не встроены в модуль Upsells так, как в post-purchase- и checkout-потоках Aftersell. Вместо этого вы связываете два приложения небольшим скриптом, который напрямую вызывает Strategies API и передает результат в существующий модуль Upsells Upcart через публичный API Upcart. Скрипт полностью готов к использованию — вставьте его один раз в пользовательский HTML Upcart, замените два значения (ваш API-ключ Strategy и идентификатор Strategy), и модуль Upsells начнет показывать товары, которые возвращает Strategy.

Что вам понадобится

  1. Ваш API-ключ Strategy. В Aftersell перейдите в Settings → Product Strategy и в карточке Security Token скопируйте ваш токен (это и есть ваш API-ключ Strategy).
  2. Идентификатор Strategy. Откройте нужную Strategy в редакторе Strategy Aftersell и скопируйте ее идентификатор.
  3. Включенный модуль Upsells в Upcart. Скрипт переопределяет список товаров, отображаемых в существующем блоке апселлов, поэтому модуль должен быть включен, чтобы что-либо отображалось.

Добавление скрипта

В Upcart перейдите в Settings → Custom HTML → Scripts (before load) и вставьте приведенный ниже скрипт. Замените STRATEGY_ID и STRATEGY_API_KEY значениями из Aftersell, затем сохраните.
Ваш API-ключ Strategy авторизует вызовы к Strategies вашего магазина. Приведенный выше скрипт размещает его в клиентском коде — это единственный практичный способ вызвать API из cart drawer. Обращайтесь с ключом так же, как с любыми другими публичными учетными данными витрины, и обновите его в Aftersell в разделе Settings → Product Strategy, если он когда-либо окажется раскрыт нежелательным образом.

Что видит Strategy

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

Контекст товаров

Позиции, находящиеся в корзине Upcart, отправляются как входные товары. Триггеры, такие как product type, vendor, product handle, product title, а также любые триггеры по product ID / variant ID, вычисляются именно по этим позициям.

Контекст корзины

  • Subtotal — промежуточная сумма корзины в основных денежных единицах валюты магазина (например, в долларах). total_price в Upcart указывается в младших единицах (центах), поэтому скрипт делит его на 100, чтобы соответствовать единицам, которые использует остальная часть Strategies API, — и единицам, в которых написаны ваши правила cart_subtotal.
  • Item count — общее количество единиц по всем позициям.
  • Line count — количество отдельных позиций.

Контекст сессии

  • Код валюты — берется из window.Shopify.currency.active.
Триггеры по покупателю и UTM-триггеры не сработают. Скрипт по умолчанию не отправляет теги покупателя, количество заказов, местоположение или UTM-параметры, поэтому любое правило с этими триггерами никогда не сработает. Используйте триггеры по товарам, корзине и валюте либо Catch all, чтобы гарантированно что-то возвращалось.

Что происходит, когда Strategy возвращает результат

Товары, возвращенные Strategy, полностью заменяют список, который Upcart иначе показал бы в модуле Upsells. Список апселлов, заданный продавцом, переопределяется на время работы с этой корзиной — он не объединяется с результатом. Каждый товар Strategy преобразуется в формат товара, ожидаемый Upcart (варианты, изображения, опции, метаполя и т.д.), поэтому он отображается внутри блока апселлов точно так же, как любой другой товар.

Когда товар не возвращается

Если Strategy не вернула товары, модуль Upsells отображается пустым — апселлы не показываются. Чтобы избежать этого, настройте Catch all в Strategy, чтобы всегда был резервный товар для возврата. О настройке Catch all см. страницу Создание Strategies.

Повторное вычисление при изменениях корзины

В отличие от апселлов на оформлении заказа, реализация для Upcart повторно вычисляет Strategy при каждом изменении корзины — добавлении, удалении товаров или изменении количества. Скрипт подписывается на событие cartUpdated Upcart, отправляет новую корзину в Strategies API и обновляет cart drawer с новым списком апселлов. Проверка сигнатуры корзины пропускает избыточные вызовы, если позиции и количества фактически не изменились, поэтому последовательные события корзины, не меняющие ее по существу, не будут повторно обращаться к API.

Советы по Strategies для Upcart

  • Проектируйте вокруг корзины. Триггеры по параметрам корзины и товарам — самые сильные сигналы, доступные здесь. История покупателя и таргетинг на основе UTM скриптом по умолчанию не отправляются.
  • Используйте Catch all как страховку. Без него модуль Upsells ничего не покажет, если ни одно правило не совпало.
  • Бережное отношение к кешу по умолчанию. Проверка сигнатуры корзины предотвращает повторные вызовы API, если корзина по существу не изменилась, — это полезно для покупателей, которые открывают и закрывают корзину, не редактируя ее.