Назад в Центр знаний
Развертывание

Сбор данных Shopify: Storefront API, Ajax или браузер?

Сравнение Storefront GraphQL, Ajax JSON размещённых тем и отображаемых страниц: доступ, варианты товара, валюта и доказательства каждого источника.

BotBrowser Team

Документация

Нужна структурированная документация по теме Развертывание?

Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.

Сбор данных Shopify начинается с выбора интерфейса, способного ответить на вопрос о товаре. Storefront GraphQL, Ajax API для тем на хостинге Shopify и отображаемая страница имеют разные контракты. Storefront допускает доступ без токена к документированному подмножеству; Ajax не требует токена, но не является API для произвольных витрин. Браузер добавляет доказательства отображения, когда именно этого требует разрешённая задача. BotBrowser предоставляет настройки на основе профиля; он не предоставляет данные товаров Shopify, не создаёт учётные данные API и не разрешает доступ к административному интерфейсу. Сначала выберите документированный источник и область доступа, затем инструмент автоматизации.

Три интерфейса Shopify отвечают на разные вопросы: Storefront GraphQL предоставляет поддерживаемые коммерческие данные, Ajax размещённых тем выполняет документированные операции JSON, браузер показывает отображение. Идентичность товара, валюта и полнота остаются связанными с выбранным источником.

Кратко

  • Storefront GraphQL поддерживает доступ с токеном и без него. Доступные поля и модель доступа важнее общего названия API.
  • Ajax предназначен для тем на хостинге Shopify, а не для любой витрины на этой платформе.
  • JSON товара имеет документированный предел вариантов, а суммы используют валюту отображения покупателя. Сохраняйте эти условия с наблюдением.
  • Завершившийся запрос не доказывает успех HTTP, корректность данных товара или полноту результата.
  • Используйте браузер для разрешённого вопроса об отображении; его настройки не устанавливают разрешения API или смысл цены.

Содержание

Определить интерфейс Shopify

Справочник Storefront API описывает GraphQL-доступ к коммерческим функциям, включая товары, коллекции и корзины. Запрос указывает нужные приложению поля вместо разбора оформления темы. Это подходит, когда вопрос относится к данным документированной схемы и выбранной модели доступа. Но не означает доступность всех полей без учётных данных или право интеграции использовать результат для любой цели. Операция, поддерживаемая область и разрешённое использование являются отдельными частями выбора источника.

Обзор Ajax API описывает лёгкий интерфейс для тем на хостинге Shopify. Он возвращает JSON без токена доступа и идентификатора клиента, но прямо исключает произвольные витрины. Собственный интерфейс поверх Shopify не наследует автоматически все возможности Ajax размещённых тем. Перед выбором установите архитектуру через одобренную интеграцию или владельца. Знакомое название платформы на странице не доказывает применимость конкретного документированного маршрута.

ИнтерфейсПодходящий вопросСохраняемая граница
Storefront GraphQLКакие запрошенные коммерческие поля доступны через поддерживаемую операцию?Область без токена отличается от функций с токеном
Ajax размещённой темыЧто возвращает документированная операция JSON в этом контексте покупателя?Только темы на хостинге Shopify; ограничения зависят от операции
Отображаемая страницаЧто показывает разрешённый интерфейс в наблюдаемом состоянии?Отображение не является схемой API или доказательством полного каталога

Это правила выбора источника, а не измеренный рейтинг скорости. Названия GraphQL, JSON и браузер не определяют фиксированную стоимость. Узкий запрос API может сократить ненужную работу страницы, а вопрос о видимом формате требует доказательств отображения. Архитектура мониторинга цен разделяет наблюдение и публикацию; выбор интерфейса Shopify относится к контракту наблюдения. Запишите источник ответа, чтобы переход с JSON на текст страницы не выглядел обычным обновлением цены.

Отображаемой странице тоже нужна определённая область. Она может показать вариант товара, форматированную сумму или локализованное сообщение о наличии в конкретном состоянии. Загрузка интерфейса не устанавливает получение всех товаров или вариантов. До разработки браузерного сборщика определите вопрос поля через нужные доказательства. Если поддерживаемая операция уже их предоставляет, дополнительное отображение может создать расхождение, не восполнив отсутствующий факт. Если вопрос визуальный, само значение API также не доказывает показанный результат.

Разделить модели доступа

Текущая документация Storefront API прямо поддерживает доступ без токена и аутентификацию с токеном. Список без токена включает товары и коллекции, планы продаж, поиск, страницы и другое содержимое, а также операции корзины. Документированный предел сложности для этого режима составляет 1,000. Это характеристика конкретной модели, не разрешение на произвольный сбор и не инструкция делить нагрузку до соответствия пределу. Проверяйте текущую операцию и поля в поддерживаемой области интеграции.

Тот же справочник перечисляет функции с обязательным токеном: теги товаров, метаобъекты или метаполя, меню и клиенты. У публичных и приватных токенов разные правила раскрытия: публичный рассчитан на клиентскую среду, приватный должен оставаться на сервере. Не переносите серверный секрет в скрипт браузера лишь потому, что запрос GraphQL кажется воспроизводимым. Публичная видимость, успешная аутентификация и разрешённая цель различны; одно нельзя выводить из двух других.

Обзор аутентификации API различает доступ Storefront, идентичность приложения Admin API и аутентификацию покупателя Customer Account. Наблюдение товара не должно смешивать эти модели. Ответ Storefront не доказывает доступ к административным данным, а сессия покупателя не заменяет необходимые приложению разрешения. Запишите семейство API и поддерживаемый режим, не сохраняя повторно используемые секреты в наблюдении. Исключите их из образцов, снимков и отчётов об инцидентах.

Обзор Ajax различает отсутствие аутентификации и неограниченное использование. Документация говорит об отсутствии жёстких ограничений частоты, но сохраняет защиту от злоупотреблений. Это не обосновывает обещанный объём запросов или рецепт избегания ограничений. Ajax также включает операции корзины, поэтому весь API нельзя назвать доступным только для чтения. Для чтения товара выбирайте соответствующую операцию, не изменяя корзину покупателя. Отказ сохраняйте как результат доступа, не меняя аккаунт или маршрут для продолжения.

Сохранить контекст товара и валюты

Справочник Ajax Product описывает получение товара по URL с учётом языка и идентификатору товара. Идентификатор относится к запрошенному товару в данном контексте, а не универсален между магазинами и интерфейсами. Сохраняйте магазин, ссылку на товар и выбранный вариант, когда он важен. При объединении страницы и API определите правило сопоставления товара и варианта. Одинаковое название не доказывает, что наблюдается одна покупаемая опция.

Справочник ограничивает массив максимумом в 250 вариантов. Успешный ответ поэтому не доказывает полный охват вариантов произвольно большого товара. Запишите предел источника вместе с требованиями приложения к полноте. Если нужен полный перечень, который этот результат не подтверждает, верните неполный результат или выберите другой разрешённый источник с нужным контрактом. Не объявляйте ненаблюдаемый вариант недоступным лишь из-за отсутствия в ограниченном ответе.

Та же документация Product указывает, что денежные свойства возвращаются в валюте отображения покупателя. Сохраняйте сумму с установленным валютным контекстом, не предполагая, что валюта магазина по умолчанию или язык браузера определяют оба значения. Метка страны, символ валюты и настройка региона являются разными доказательствами. Если источник не устанавливает нужную валюту, сохраняйте неизвестность вместо присвоения региональной настройки браузера как коммерческого факта.

Сравнение источников Amazon и браузера отделяет настройки отображения от условий предложения. Это верно и для API со страницей в одной сессии. Сохраняйте их типы источника и время отдельно, вместе с выбором товара и контекстом покупателя. Если видимая сумма отличается от JSON, сначала установите совпадение варианта и валюты. Успешное отображение не определяет, какое наблюдение отвечает на вопрос поля приложения.

Разделяйте также полноту и свежесть. Недавнее наблюдение может не содержать нужный вариант, а полный сохранённый образец может не подходить для текущей цены. Сохраняйте исход сбора, время источника при наличии и время наблюдения сборщика с их реальным смыслом. Не приписывайте всем товарам время завершения всего запуска. Это различия модели приложения, а не дополнительные обещанные свойства Shopify Product. Они позволяют оценивать запись без выдумывания отсутствующих доказательств.

Проверить ответ до принятия данных

Справочник Fetch API MDN указывает, что обещание завершается после получения заголовков даже при ошибке HTTP. Поэтому завершённый запрос является лишь наблюдением транспорта. До интерпретации данных товара проверьте HTTP-результат и отделите отказ от пустого результата. Ни завершённая навигация, ни разрешённое обещание не устанавливают получение ожидаемого коммерческого представления.

ПроверкаНужные доказательстваРезультат при отсутствии
HTTP-результатРеальный статус и конечный источникСохранить сбой или отказ, не пустой каталог
ПредставлениеТело соответствует контракту API или страницыКлассифицировать неожиданное содержимое до разбора полей
Смысл товараНужный контекст товара, варианта и валютыНе превращать неполные или несопоставимые записи в изменение цены
ПолнотаНужная область совместима с пределами источникаНе публиковать частичное покрытие как исчерпывающее

Проверка представления зависит от интерфейса. JSON документированной операции Ajax и HTML витрины не являются взаимозаменяемыми входами парсера. Успешный HTTP-статус всё ещё может нарушать контракт полей приложения. Сохраните минимальный разрешённый пример неожиданного содержимого для объяснения изменения парсера. Не сохраняйте целую аутентифицированную сессию или посторонние данные покупателя только ради доказательства отсутствия поля.

Fetch также подчиняется правилам браузерных запросов, включая CORS, как объясняет MDN. Не относите клиентский сбой автоматически к отсутствию товара или неверным секретам. До выбора объяснения запишите сбой и контекст вызова. Настройки браузера не создают серверное разрешение; другой клиентский контекст также не доказывает авторизацию интеграции. Диагностируйте поддерживаемый путь приложения, не считая любой неуспех препятствием извлечению.

На собственном образце проверьте решения на разных входах: HTTP-ошибка, неожиданное представление, несопоставленный вариант и ограниченный источником результат. Ожидаемые исходы следуют таблице, а не заявлению о реальном магазине. Сбой остаётся сбоем, неверный формат не становится отсутствующей ценой, несопоставленная опция не сравнима, неполное покрытие остаётся неполным. Храните прежнюю принятую запись отдельно от неудачного обновления, чтобы инцидент не превратился в ложное событие цены или наличия.

Использовать браузер для доказательств отображения

Браузер нужен, когда разрешённый вопрос касается реального отображения: выбранных опций, локализованного текста, формата или результата допустимого действия. Справочник Storefront описывает API данных, не поведение каждого интерфейса продавца. Полученный объект товара не доказывает выбранную темой опцию или формат суммы. И наоборот, видимый текст описывает конкретное состояние, не полный поддерживаемый объект API.

Начальная документация BotBrowser описывает настройку на основе профиля, подключение автоматизации, контексты с учётом прокси, проверку и очистку. Эти возможности позволяют разрешённому стенду объявлять и проверять браузерные входы. Они не аутентифицируют приложение Admin API, не создают секреты Shopify и не предоставляют каталог продавца. Отделяйте намеренную конфигурацию от доказательств загрузки профиля и достижения нужного состояния страницы. Файл описывает намерение, наблюдение должно устанавливать требуемый результат.

В разрешённом образце отображения свяжите выбор товара, состояние страницы и настройки с полученным значением. Сравнивайте текст или формат лишь с вопросом, на который образец способен ответить. Снимок подтверждает видимое в нём, но не глобальные остатки или цену для каждого покупателя. Минимальное доказательство должно объяснять поле без раскрытия повторно используемого состояния аккаунта. Если поле нельзя связать с нужной опцией товара, остановитесь до принятия текста в сравнение.

Справочник Ajax Product даёт конкретное основание сохранять семантику: валютный контекст принадлежит ответу для покупателя. Предпочтения браузера могут влиять на вид, но сами не устанавливают этот контекст. При намеренном изменении входа отображения назовите его и отдельно сохраните наблюдаемый коммерческий контекст. Другую валюту или опцию нельзя переименовывать в движение цены. Различие необходимо, даже если все страницы загрузились без ошибок.

Эти правила не подразумевают сбор в реальном магазине Shopify или эксперимент с доступом. Документация устанавливает опубликованную область API; разрешённое наблюдение установило бы только собственный результат и контекст. Локальное отображение сохранённого образца может проверить вёрстку и обработку парсером, оставляя доступность, доступ и корректность реальных товаров непроверенными. Разделяйте эти выводы, чтобы локальный успех не стал обещанием поведения внешней витрины.

Выбрать достаточный документированный источник

Начните с конкретного вопроса и одобренного контракта источника. Для коммерческих полей оцените подходящую операцию Storefront и её модель доступа. Для JSON товара размещённой темы оцените Ajax Product и ограничения. Для видимого отображения используйте разрешённое браузерное наблюдение нужного состояния. Это выбор доказательств, а не правило перехода от API к браузеру при отсутствии данных.

До реализации сборщика объясните, почему источник удовлетворяет требованиям товара, варианта, валюты и полноты. Если не удовлетворяет, определите отсутствующие доказательства вместо заполнения из другого интерфейса без правила сопоставления. Изменение источника требует проверенного решения по схеме: похожие поля могут иметь разные контексты. Общий конвейер цен затем примет сопоставимую запись или сохранит явное ограничение, не скрывая смену источника за стабильной на вид суммой.

Политика доступа независима от технической читаемости. RFC 9309 прямо говорит, что robots не является разрешением доступа. Читаемая страница, функция без токена или разрешение роботу не устанавливают весь допустимый способ использования другим приложением. Подтвердите реальную интеграцию и область сбора. Если нужного доступа или данных нет, верните ограничение вместо смены идентичности клиента, аккаунта или маршрута.

Результат выбора должен назвать поддерживаемый интерфейс, ожидаемые доказательства полей и условия принятия. Укажите также неизвестное: пропущенные варианты, неустановленную валюту, непроверенный контекст покупателя или отказ. Это полезно и тогда, когда новое значение не опубликовано. Так от рендерера, парсера или настроек не требуют решения задачи авторизации или полноты вне их контракта.

Вопросы и ответы

Storefront API всегда требует токен?

Нет. Текущая документация разделяет подмножество без токена и функции с токеном. Проверяйте операцию и поля, не предполагая ни неограниченный доступ, ни универсальное требование токена.

Ajax доступен любому собственному интерфейсу Shopify?

Нет. Shopify документирует его для размещённых тем и исключает произвольные витрины. Перед использованием установите архитектуру.

Успешный ответ доказывает сбор всех вариантов?

Нет. Product документирует предел вариантов. Полнота зависит от области источника и требований приложения, не только от успеха HTTP.

Язык браузера устанавливает валюту суммы?

Нет. Нужны доказательства из контекста выбранного источника. Предпочтения описывают настройки и не заменяют коммерческий смысл.

Источники

Практический вывод

Выбирайте Storefront GraphQL для поддерживаемых коммерческих данных, Ajax размещённых тем для документированных операций JSON, браузер для разрешённых доказательств отображения. Сохраняйте модель доступа, товар и вариант, смысл валюты и ограничения полноты. BotBrowser предоставляет браузерные входы; источник должен предоставить факты товара и применимый контракт доступа. Примите сопоставимое наблюдение или верните конкретные недостающие доказательства до публикации изменения цены или наличия.

#веб-скрейпинг#Browser Automation#приватность

Эта статья входит в руководство: Развёртывание и выпуск браузера: операционная карта

Выполните ту же проверку в BotBrowser

Загрузите профиль, сохраните внутри браузера те сигналы, о которых только что прочитали, и подтвердите результат на своей машине до раскатки.