# Подключение Salesforce B2C Commerce

Как установить пакет ChatRex и подключить каталог Salesforce B2C Commerce.

Интеграция предоставляет боту доступ в режиме чтения к онлайн-каталогу одного сайта Salesforce B2C Commerce. Цены и доступность рассчитываются Salesforce в контексте выбранного сайта, локали и валюты.

ChatRex не запрашивает покупателей и заказы и не изменяет товары, остатки или price books.

# Перед подключением

Потребуются:

  • права администратора B2C Commerce и доступ к Business Manager;
  • возможность установить Commerce App Package и активировать code version;
  • доступ к настройкам SCAPI и SLAS;
  • опубликованный товар в целевом сайте;
  • точные значения short code, organization ID, site ID, content library ID, локали и валюты.

# Установка пакета

  1. В ChatRex откройте Интеграции → Salesforce B2C Commerce → Установка соединения.
  2. Нажмите Скачать установочный пакет.
  3. Установите Commerce App Package для целевого сайта и выполните задачи из tasksList.
  4. Активируйте установленную code version.
  5. Убедитесь, что cartridge int_chatrex_catalog добавлен в cartridge path целевого сайта, а pull request Storefront Next содержит extension chatrex-ai-sales-assistant.
  6. В Custom Site Preferences задайте chatrexProductUrlTemplate как HTTPS-шаблон с обязательным {id}. При необходимости добавьте {variantId}.
  7. Создайте приватный SLAS client для целевого сайта с единственным функциональным scope c_chatrex_catalog.

Пример шаблона ссылки: https://store.example/products/{id}.

# Подключение в ChatRex

В форме Salesforce B2C Commerce укажите:

  • SCAPI short code — восемь символов окружения B2C Commerce API;
  • Organization ID — идентификатор организации;
  • Site ID — идентификатор подключаемого сайта;
  • ID библиотеки контента — библиотека, назначенная сайту;
  • Публичный URL витрины — HTTPS-адрес опубликованного сайта;
  • Локаль — например, en-US;
  • Валюта — трёхбуквенный код, например USD;
  • ID приватного SLAS client и Secret приватного SLAS client.

Нажмите Подключить. ChatRex проверит сайт, каталог, библиотеку, локаль, валюту и scope до сохранения соединения. SLAS credentials передаются только backend ChatRex, хранятся зашифрованно и после подключения не показываются.

# Подключение виджета к Storefront Next

  1. В ChatRex создайте или выберите канал Онлайн-чат и разрешите точный origin витрины Storefront Next.
  2. Скопируйте публичный ID этой интеграции. Это идентификатор виджета, а не Salesforce или SLAS secret.
  3. В окружении Storefront Next задайте переменную:

    PUBLIC__app__extension__chatrexAiSalesAssistant__widgetIntegrationId=<ID онлайн-чата>
  4. В Content Security Policy витрины добавьте https://app.chatrex.pro в script-src и connect-src, а wss://socket.chatrex.pro — в connect-src.
  5. Соберите и опубликуйте Storefront Next.
  6. Откройте витрину, выполните первое действие на странице и убедитесь, что загрузился ровно один виджет ChatRex.

Если ID отсутствует или имеет неверный формат, extension оставляет витрину без изменений и не загружает внешний скрипт. Не помещайте Salesforce или SLAS credentials в frontend-конфигурацию.

# Действия бота

Параметры поиска, выбора варианта и проверки доступности описаны в статье Действия Salesforce B2C Commerce.

# Проверка

  1. Найдите онлайн-товар в тестовом чате ChatRex.
  2. Получите его карточку и варианты.
  3. Сравните возвращённую цену и валюту с целевой витриной.
  4. Проверьте доступность точного варианта.
  5. Откройте публичную ссылку и убедитесь, что она ведёт на выбранный сайт.
  6. Проверьте открытие виджета на опубликованной Storefront Next‑витрине и отправьте через него тестовый вопрос о товаре.

Если проверка соединения не проходит, сверьте контекст сайта, назначенную библиотеку, SLAS credentials и наличие scope c_chatrex_catalog.

# Отключение и удаление

Сначала отключите Salesforce B2C Commerce в ChatRex: сохранённые SLAS credentials будут удалены. Затем удалите переменную виджета из Storefront Next, отзовите или удалите выделенный SLAS client и выполните uninstall-задачи CAP. Убедитесь, что extension и cartridge удалены, а виджет больше не загружается.