Для настраиваемой мерчантом версии с уровнями, правилами по рынкам и прогресс-баром используйте блок Rewards — без кода. Этот вариант нужен, когда ваше правило не выражается блоком.
Фрагмент кода
Как это работает
reconcileGift описывает состояние, в котором корзина должна находиться, а затем вносит не более одного изменения, чтобы достичь его:
- Условие выполнено, а подарка нет →
addItemдобавляет его. - Условие не выполнено, а подарок есть →
removeItemудаляет его поkeyстроки. - Иначе → ничего не делать.
cart_loaded (чтобы корзина, уже соответствующая условию при загрузке страницы, получила подарок), и на cart_updated (чтобы реагировать на каждое последующее изменение). Поскольку cart_loaded воспроизводится для поздних подписчиков, это работает независимо от того, когда запускается ваш скрипт.
Обратите внимание, что добавление подарка увеличивает сумму корзины, поэтому порог, близкий к цене товара, может колебаться: добавление подарка за $0 безопасно, но подарок с ценой сам по себе может поднять корзину выше порога. Делайте подарок бесплатным или сравнивайте с суммой, которая его исключает.
Адаптация
context, доступный до загрузки корзины:
Line transform не может скрыть элементы управления количеством строки — его единственные сеттеры:
setTitle, setVariantTitle, setHidden и setInternalProperties. Если покупатель изменит количество подарка, корректируйте его из обработчика cart_updated.Что дальше
- Блок Rewards: версия без кода, с уровнями.
- Действия:
addItem,removeItemи остальные. - События: почему важны проверки.