# 🛠️ Установка скрипта

Для корректной работы персонализации необходимо установить следующие скрипты на каждой странице сайта.


# 📡 Установка скриптов preconnect, prefetch и core.js

Добавьте в раздел <head> каждой страницы скрипты для ускорения загрузки внешних ресурсов:

<link rel="preconnect" href="//cdn-01.gravityfield.ai">  
<link rel="preconnect" href="//evs-01.gravityfield.ai">  
<link rel="dns-prefetch" href="//cdn-01.gravityfield.ai">  
<link rel="dns-prefetch" href="//evs-01.gravityfield.ai">  

Также в <head> необходимо подключить основной скрипт:

<script type="text/javascript" src="//cdn-01.gravityfield.ai/core/core.js"></script>  

# 🖋️ Установка переменной GF, Section ID и Page Context

На каждой странице необходимо объявить переменную GF, которая включает следующие параметры:

<script>  
window.GF = window.GF || {};  
GF.API = () => {};
GF.section = "идентификатор секции, строка";  
GF.pageContext = { type: "PAGETYPE", data: [] }; // PAGETYPE и пустой массив data - это пример  
</script>  

Описание параметров

  • GF: Основная переменная для интеграции.
  • GF.API: Заглушка, которая позволит безопасно использовать вызовы GF.API при отсутствии скрипта.
  • GF.section: Уникальный идентификатор секции (строковое значение).
  • GF.pageContext: Переменная контекста страницы, содержит:
    • type: Тип страницы (например, CART, PRODUCT, MAIN).
    • data: Данные, связанные с контекстом страницы (например, SKU товаров).
    • lng (опционально): Локализация, если на сайте используются разные языки или регионы.

📖 Подробнее: Контекст страницы

# 🔍 Пример корректно установленных скриптов

<link rel="preconnect" href="//cdn-01.gravityfield.ai">  
<link rel="preconnect" href="//evs-01.gravityfield.ai">  
<link rel="dns-prefetch" href="//cdn-01.gravityfield.ai">  
<link rel="dns-prefetch" href="//evs-01.gravityfield.ai">  

<script>  
window.GF = window.GF || {};  
GF.API = () => {};
GF.section = "6315dda2f1c33ba4cd04655b";  
GF.pageContext = {   
  type: "CART",  
  data: ["XD-154", "DL-5874", "TN-15", "QSD-1581", "XD-15"]  
};  
</script>  

<script type="text/javascript" src="//cdn-01.gravityfield.ai/core/core.js"></script>  

# 📋 Порядок подключения скриптов

  1. Подключение preconnect и prefetch.
  2. Объявление переменной GF и указание Page Context.
  3. Подключение core.js.

# Рекомендация по работе с внешними библиотеками

При интеграции внешних библиотек настоятельно рекомендуется выполнять проверку наличия методов, свойств или функций перед их непосредственным вызовом. Это позволяет предотвратить ошибки выполнения, которые могут возникнуть из-за внешних факторов, таких как:

  • Неполная загрузка библиотеки (например, при сетевых сбоях);
  • Устаревшие версии зависимостей;
  • Динамическое изменение API библиотеки в runtime.
if (typeof GF?.API === 'function') {
  GF.API('event', { name: "Some event" });
} else {
  // Обработка отсутствия метода: вывод предупреждения, fallback-логика и т.д.
}

Данная практика повышает отказоустойчивость приложения и обеспечивает корректную работу даже в нештатных сценариях.

# Для более глубокого изучения