Skip to main content

Как работает паттерн API

Большинство скриптов API Upcart следуют одному и тому же простому паттерну: Слушать событие корзины → Проверить условие → Выполнить действие Например: «Когда корзина загружается → проверить, пуста ли она → скрыть закрепленную кнопку». 💡 Впервые работаете с API? Начните со статьи Что такое API?, прежде чем переходить к примерам ниже.

Куда добавлять ваши скрипты

Все скрипты ниже размещаются в: Cart Editor → Settings → Custom HTML → Scripts (before load) Оберните каждый сниппет в теги <script>...</script> и сохраните. Для тестирования откройте консоль Dev Tools вашего браузера (F12) и ищите сообщения console.log.

Замечание об устаревших и современных колбэках

В Upcart есть два способа слушать события корзины: Все примеры ниже используют современный API. Существующие скрипты в старом стиле продолжат работать.

Пример 1: скрыть кнопку закрепленной корзины, когда корзина пуста

Как это работает: upcartSubscribeCartLoaded срабатывает при каждой загрузке корзины. Колбэк получает event с объектом cart, содержащим массив items. Мы суммируем quantity каждого товара, чтобы определить, пуста ли корзина. ⚠️ ВАЖНО: у event.cart НЕТ свойства item_count. Вы должны вычислить итог, перебирая event.cart.items.

Пример 2: логирование добавления товара в корзину

Свойства, доступные в event.item:

Пример 3: интеграция со сторонним аналитическим приложением (например, TripleWhale)

Примечание: каждое стороннее приложение отличается. Уточните правильный формат события у команды поддержки вашего приложения.

Пример 4: автоматическое открытие корзины после добавления товара

Примечание: если опция «Open cart drawer on add to cart» уже включена в Cart Editor → Settings → Cart settings, этот скрипт вам не нужен.

Краткий справочник: функции подписки (современный API)


Функции прямых действий

Полную документацию API см. в документации Upcart Public API.

Устранение неполадок

  • Скрипт не выполняется? Перепроверьте размещение: он должен находиться в Scripts (before load), а не after load.
  • Элемент не найден? Убедитесь, что селектор (например, #upCartStickyButton) соответствует фактическому ID элемента в вашей корзине.
  • Что-то сломалось? Закомментируйте свой скрипт, добавив // в начало каждой строки, сохраните и обновите страницу.
  • Все еще не получается? Дополнительные шаги по устранению неполадок см. в FAQ по API.