Подключение браузерного агента
Данный вариант подходит для быстрого подключения партнеров с минимальными доработками, однако, может приводить к длительному исполнению сценария. Автоматизация достигается за счет использования браузерного агента: агент выполняет действия вместо пользователя на сайте партнера в отдельной вкладке браузера.
Требования к партнеру
Для успешного подключения браузерного агента сайт партнера должен соответствовать описанным требованиям.
Обшие требования
На сайте партнера не должено быть:
- обязательного выбора дополнительных услуг к товару (в том числе с возможностью отказа);
- сломанной верстки, неработающих ссылок и прочих проблем.
Требования по авторизации
Сайт партнера должен поддерживать хотя бы один из способов авторизации:
- Сбер ID;
- покупка неавторизованным пользователем без создания аккаунта;
- аккаунт линкинг на базе OAuth 2.0.
Требование по каталогу
Для автоматизации работы с каталогом товаров браузерный агент предоставляет две опции:
Если сайт партнера реализован с помощью REST API, потребуется предоставление агенту доступа к эндпоинту для получения всего каталога товаров в формате JSON.
Если вариант с REST API не подходит, доступна опция поиска товаров агентом на сайте партнера. Для этого:
- Нужно, чтобы на сайте была страница, отображающая весь каталог товаров.
- Количество страниц должно быть меньше 10.
- Потребуется добавить дополнительную разметку на странице каталога.
Начало работы
Для интеграции с браузерным агентом партнеру понадобится добавить на страницы товаров и оформления заказа дополнительную разметку, чтобы повысить точность агента и независимость от меняющейся верстки сайта. Это затрагивает основную информацию о товаре, а также важные для агента поля. Точное количество и названия атрибутов зависят от конкретного партнера и вида товаров.
Разметка информации о товаре
В HTML код каждой страницы товара необходимо добавить информацию о товаре в мета теги, расположенные между <head> </head>. Разметка должна соответствовать формату Schema.org и быть представлена microdata.
<div itemscope itemtype="https://schema.org/Product">
<span itemprop="name">Книжный магазинчик у озера</span>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<span itemprop="price" content="1000.00"/>
<link itemprop="availability" href="https://schema.org/InStock" />In stock
<div itemprop="additionalProperty" itemscope itemtype="https://schema.org/PropertyValue">
<meta itemprop="name" content="propertyName">
<meta itemprop="value" content="propertyValue">
</div>
</div>
</div>
Информация о продукте должна быть представлена в формате https://schema.org/Product, а поля name и price являются обязательными параметрами в разметке.
Кроме этого:
- В поле
nameдолжно содержать полное наименование товара. - Стоимость должна быть >0 и представлена целочисленным числом либо в десятичном виде с разделителем-точкой и двумя знаками после разделителя (пример: 1000.00).
- Варианты значений доступности заказа:
https://schema.org/ItemAvailability. Лучше ограничиться значениямиhttps://schema.org/InStockиhttps://schema.org/OutOfStock.
Специально подготовленный для LLM промт, который автоматически добавляет нужные параметры в код страницы.
LLM могут ошибаться. Обязательно проверяйте результат на корректность.
Роль: Ты — фронтенд-разработчик, разбирающийся в Schema.org.
Задача: Сгенерируй только HTML-код с микроразметкой Microdata для страницы товара интернет-магазина. Не выводи всю страницу, только готовый фрагмент с микроразметкой.
Требования к микроразметке:
Формат: Microdata (атрибуты itemscope, itemtype, itemprop)
Структура:
Основной контейнер: Product (https://schema.org/Product)
Вложенный контейнер для цены: Offer (https://schema.org/Offer)
Разрешенные свойства (только эти):
name - название товара
offers - вложенный объект Offer с:
price - цена товара
priceCurrency - валюта
isFamilyFriendly - только значения True или False
Важные ограничения:
НЕ добавлять никаких других свойств кроме указанных выше.
Все значения должны быть представлены как переменные
Для isFamilyFriendly использовать только True или False
Пример ожидаемого вывода (только микроразметка):
<div itemscope itemtype="https://schema.org/Product">
<meta itemprop="name" content="{dynamic_product_name}">
<meta itemprop="isFamilyFriendly" content="{True_or_False}">
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="price" content="{dynamic_price}">
<meta itemprop="priceCurrency" content="{dynamic_currency}">
</div>
</div>
Инструкция:
Проанализируй предоставленный код страницы оформления заказа и сгенерируй только готовый фрагмент микроразметки Microdata с указанными свойствами.
Код для анализа:
Разметка информации о заказе
В HTML код страницы чекаута (сразу перед финальным формированием заказа и перехода к оплате) необходимо добавить информацию о финальном оффере.
<div itemscope itemtype="https://schema.org/Invoice">
<div itemprop="totalPaymentDue" itemscope itemtype="https://schema.org/PriceSpecification">
<span itemprop="price">200.00</span>
<span itemprop="priceCurrency">RUB</span>
</div>
</div>
Оффер должен быть представлен в формате https://schema.org/Invoice и содержать информацию о финальной стоимости и валюте.
Кроме этого:
- Информация о стоимости должна быть представлена в формате
https://schema.org/PriceSpecification. - Стоимость должна быть >0 и представлена целочисленным числом либо в десятичном виде с разделителем-точкой и двумя знаками после разделителя.
- Валюта должна соответствовать стандарту ISO_4217.
Специально подготовленный для LLM промт, который автоматически добавляет нужные параметры в код страницы.
LLM могут ошибаться. Обязательно проверяйте результат на корректность.
Роль: Ты — фронтенд-разработчик, разбирающийся в Schema.org.
Задача: Сгенерируй только HTML-код с микроразметкой Microdata для страницы оформления заказа интернет-магазина. Не выводи всю страницу, только готовый фрагмент с микроразметкой.
Требования к микроразметке:
Формат: Microdata (атрибуты itemscope, itemtype, itemprop)
Структура:
Основной контейнер: Invoice (https://schema.org/Invoice)
Вложенный контейнер для суммы: PriceSpecification (https://schema.org/PriceSpecification)
Разрешенные свойства (только эти):
totalPaymentDue - вложенный объект PriceSpecification с:
price - общая сумма заказа
priceCurrency - валюта
Важные ограничения:
НЕ добавлять никаких других свойств кроме указанных выше.
Все значения должны быть представлены как переменные
Пример ожидаемого вывода (только микроразметка):
<div itemscope itemtype="https://schema.org/Invoice">
<div itemprop="totalPaymentDue" itemscope itemtype="https://schema.org/PriceSpecification">
<meta itemprop="price" content="{dynamic_total_price}">
<meta itemprop="priceCurrency" content="{dynamic_currency}">
</div>
</div>
Инструкция:
Проанализируй предоставленный код страницы оформления заказа и сгенерируй только готовый фрагмент микроразметки Microdata с указанными свойствами.
Код для анализа:
Атрибуты для агента
Для надежной работы агента, независимой от изменений в нейминге и верстке сайта, потребуется добавить атрибуты data-agent-payment, значения и порядок которых необходимо согласовать заранее. Агент будет обращать внимание на наличие этих атрибутов и обрабатывать их соответственно.
Примеры возможных значений атрибутов:
button_buy;button_addToCart;form_email;form_firstName.
Пример добавления атрибута в код:
<div class="_9e2062ab" data-testid="book-sale-block__price--button">
<button data-agent-payment="button_buy" type="button" class="ad20ffd5 e46d17bc _86ab0c42 _1f70b464 _2337ec76">
<div class="_87b72f2c">
<div class="_70e57f8e" data-testid="button__content">
<div class="d4e741ee" data-component="text-container">Купить и скачать</div>
</div>
</div>
</button>
</div>
Отключение всплывающих окон
Если на сайте есть всплывающие окна (информация об акциях и других событиях), это необходимо учесть в процессе интеграции:
-
Оптимальный вариант – отключение всплывающих окон для агента. Отличить агента от пользователей можно по заголовкам запроса или на сетевом уровне.
-
Альтернативный вариант – если отключение всплывающих окон невозможно, то их стоит разметить и включить в сценарий.
Обработка защиты от автоматических действий
Для стабильной и быстрой работы агента желательно отключить для него проверку на автоматические действия.
Для этого добавьте в белый список:
- клиентский сертификат агента.
- список IP-адресов.
Дополн ительную информацию можно запросить в процессе подключения.