Retour au Centre de connaissances
Déploiement

Scraping Shopify : Storefront API, Ajax ou navigateur ?

Comparez Storefront GraphQL, Ajax JSON des thèmes hébergés et pages rendues selon les accès, variantes, devises et preuves fournies par chaque surface.

BotBrowser Team

Documentation

Vous voulez la documentation structurée pour Déploiement ?

Cet article fait partie de la bibliothèque éditoriale. Pour les étapes de configuration, la référence et les mises à jour continues, passez directement à la section docs.

Le scraping Shopify commence par choisir la surface capable de répondre à la question sur les produits. Storefront GraphQL, l’API Ajax des thèmes hébergés par Shopify et une page rendue ont des contrats différents. Storefront autorise un sous-ensemble documenté sans jeton ; Ajax n’exige pas de jeton, mais ne constitue pas l’API des vitrines personnalisées. Un navigateur apporte des preuves de présentation lorsque la question autorisée le nécessite. BotBrowser fournit une configuration fondée sur des profils ; il ne fournit pas les données produit Shopify, ne crée pas de justificatifs API et n'accorde pas l’accès à une interface administrative. Choisissez la surface documentée et son périmètre d’accès avant l’outil d’automatisation.

Trois surfaces Shopify répondent à des questions différentes : Storefront GraphQL pour les données commerciales prises en charge, Ajax des thèmes hébergés pour les opérations JSON documentées et le navigateur pour la présentation rendue. Identité du produit, devise et exhaustivité restent liées à la source.

Résumé

  • Storefront GraphQL permet des accès avec ou sans jeton. Les champs disponibles et le modèle d’accès comptent davantage qu’une simple étiquette API.
  • Ajax est documentée pour les thèmes hébergés par Shopify, pas pour toute vitrine construite avec Shopify.
  • Le JSON produit comporte une limite documentée de variantes et utilise la devise de présentation du client. Conservez ces conditions avec l’observation.
  • Une requête résolue ne prouve ni succès HTTP, ni validité des données produit, ni exhaustivité.
  • Utilisez le rendu pour une question de présentation autorisée ; la configuration du navigateur n’établit ni permission API ni signification d’un prix.

Sommaire

Identifier la surface Shopify

La référence Storefront API décrit l’accès GraphQL aux fonctions commerciales, notamment produits, collections et paniers. Une requête nomme les champs nécessaires au lieu d’analyser la disposition d’un thème. Cela convient lorsque les données recherchées relèvent du schéma documenté et du modèle d’accès choisi. Cela ne rend pas tous les champs accessibles sans justificatif et n’autorise pas une intégration à utiliser les résultats à toute fin. Opération, périmètre pris en charge et usage autorisé sont des éléments distincts du choix de source.

La présentation Ajax API décrit une interface légère pour les thèmes hébergés par Shopify. Elle retourne du JSON sans jeton d’accès ni identifiant client, mais exclut explicitement les vitrines personnalisées. Un site avec une interface personnalisée sur un service commercial Shopify n’hérite pas de tous les comportements Ajax des thèmes hébergés. Confirmez l’architecture auprès de l’intégration approuvée ou du responsable avant de choisir cette interface. La présence d’un nom de plateforme connu ne prouve pas qu’une route documentée s’applique.

SurfaceQuestion adaptéeLimite à conserver
Storefront GraphQLQuels champs commerciaux demandés cette opération prend-elle en charge ?Périmètre sans jeton et fonctions avec jeton diffèrent
Ajax de thème hébergéQue retourne une opération JSON documentée dans ce contexte client ?Thèmes hébergés par Shopify uniquement ; limites propres à l’opération
Page rendueQue montre l’interface autorisée dans l’état observé ?L’état affiché ne constitue ni schéma API ni preuve de catalogue complet

Ce sont des règles de choix, pas un classement de vitesse mesuré. Les noms GraphQL, JSON et navigateur ne déterminent aucun coût fixe relatif. Une réponse API ciblée peut réduire le travail de page inutile ; une question sur le format visible exige toujours des preuves de présentation. L’architecture de suivi des prix sépare observations et publication ; le choix de surface Shopify appartient au contrat d’observation. Notez la surface ayant répondu pour qu’un passage de JSON au texte rendu ne ressemble pas à une mise à jour ordinaire du prix.

La page rendue nécessite aussi un périmètre défini. Elle peut montrer une option, un montant formaté ou une disponibilité localisée dans un état donné. Son chargement ne prouve pas que tous les produits ou variantes ont été retournés. Avant un collecteur avec navigateur, définissez la question de champ par les preuves nécessaires. Si une opération prise en charge les fournit déjà, rendre une autre représentation peut créer un désaccord sans résoudre un fait manquant. À l’inverse, une valeur API seule ne démontre pas un résultat d’affichage lorsque la question est visuelle.

Séparer les modèles d’accès

La documentation actuelle Storefront API prend explicitement en charge l’accès sans jeton et l’authentification avec jeton. Le périmètre sans jeton comprend produits et collections, plans de vente, recherche, pages et autres contenus, ainsi que des opérations de panier. Sa limite de complexité documentée est de 1,000. Elle décrit un mode particulier, pas une permission de collecte arbitraire ni une consigne pour découper les tâches jusqu’à satisfaire la limite. Vérifiez opération et champs actuels dans le périmètre de l’intégration.

La même référence énumère des fonctions nécessitant un jeton : étiquettes produit, métaobjets ou métachamps, menus et clients. Les jetons publics et privés obéissent aussi à des règles d’exposition différentes : un jeton public est destiné au client ; un jeton privé doit rester sur le serveur. Ne copiez pas un justificatif serveur dans un script de navigateur parce qu’une requête GraphQL paraît reproductible. Visibilité publique, authentification réussie et usage approuvé sont distincts ; aucun ne se déduit des deux autres.

La présentation de l’authentification API distingue accès Storefront, identité d’application Admin API et authentification du client Customer Account. Une observation produit ne doit pas les confondre. Une réponse Storefront ne prouve pas un accès administratif, et une session client ne remplace pas les accès exigés d’une application. Notez famille API et mode pris en charge sans conserver de justificatifs réutilisables dans l’observation. Excluez les secrets des échantillons, captures et rapports d’incident.

La présentation Ajax distingue également absence d’authentification et usage illimité. Elle indique l’absence de limites strictes de fréquence tout en maintenant les protections contre les abus. Cela ne justifie ni volume promis ni recette pour éviter les restrictions. Ajax comprend des opérations de panier ; l’API entière n’est donc pas en lecture seule. Pour lire des produits, choisissez l’opération documentée correspondante sans modifier le panier du client. Conservez un refus comme résultat d’accès, sans changer de compte ou de route.

Conserver le contexte produit et devise

La référence Ajax Product décrit la récupération d’un produit par une URL adaptée à la langue et un identifiant de produit. Celui-ci identifie le produit dans ce contexte, pas universellement entre boutiques ou surfaces. Conservez boutique, référence produit et variante sélectionnée si elle est pertinente. Pour joindre page rendue et API, définissez la correspondance de produit et de variante. Un titre partagé ne suffit pas à prouver qu’il s’agit de la même option achetable.

La référence limite le tableau à un maximum de 250 variantes. Une réponse produit réussie ne prouve donc pas l’observation exhaustive des variantes d’un produit arbitrairement grand. Notez la limite documentée avec l’exigence d’exhaustivité de l’application. Si la tâche exige un inventaire complet que la réponse ne peut établir, retournez un résultat incomplet ou choisissez une autre source approuvée au contrat adapté. Une variante absente d’une réponse limitée n’est pas nécessairement indisponible.

La même documentation Product précise que les valeurs monétaires utilisent la devise de présentation du client. Conservez montant et contexte monétaire établi ensemble, sans supposer que la devise par défaut de la boutique ou la langue du navigateur les détermine. Une étiquette de pays, un symbole monétaire et une région configurée sont des preuves différentes. Si la source n’établit pas la devise nécessaire, conservez l’incertitude plutôt que d’affecter la préférence régionale du navigateur comme fait commercial.

La comparaison des sources Amazon et du navigateur sépare paramètres de présentation et conditions de l’offre. Cela reste vrai si API et page sont observées dans une même session. Préservez séparément leurs types de source et heures d’observation, avec la sélection produit et le contexte client pertinents. En cas de différence entre montant visible et champ JSON, établissez d’abord si variante et devise sont identiques. Le succès du rendu ne détermine pas quelle observation répond à la question du champ.

Séparez aussi exhaustivité et fraîcheur. Une observation récente peut omettre une variante nécessaire ; un échantillon sauvegardé complet peut ne pas convenir à un prix actuel. Conservez résultat, heure de source disponible et heure d’observation du collecteur avec leurs significations réelles. L’heure de fin d’une exécution n’est pas celle de chaque produit. Ces distinctions appartiennent à l’application, pas aux propriétés supplémentaires promises par Shopify Product. Elles permettent d’évaluer le résultat sans inventer des preuves absentes.

Vérifier la réponse avant d’accepter les données

La référence Fetch API de MDN indique que la promesse se résout à l’arrivée des en-têtes, même pour une erreur HTTP. Une requête terminée n’est donc qu’une observation du transport. Vérifiez l’issue HTTP avant d’interpréter des données produit, en distinguant refus et résultat vide. Une navigation achevée ou une promesse résolue ne prouve pas la réception de la représentation commerciale attendue.

VérificationPreuve requiseRésultat en son absence
Issue HTTPStatut réel et source finaleConserver échec ou refus, pas un catalogue vide
ReprésentationCorps conforme au contrat API ou de pageClasser le contenu inattendu avant d’extraire les champs
Sens du produitContexte produit, variante et devise requisExclure les résultats incomplets ou non comparables des changements de prix
ExhaustivitéPérimètre requis compatible avec les limites documentéesNe pas publier une couverture partielle comme exhaustive

La représentation dépend de la surface choisie. Le JSON d’une opération Ajax documentée et le HTML d’une vitrine rendue ne sont pas des entrées interchangeables. Un statut HTTP réussi peut encore violer le contrat de champs de l’application. Conservez un exemple minimal autorisé du contenu inattendu pour expliquer la modification du parseur. Ne gardez pas une session authentifiée entière ou des informations client étrangères à la question pour prouver l’absence d’un champ.

Fetch respecte également les règles de requête du navigateur, dont CORS, comme l’explique MDN. N’attribuez pas automatiquement un échec côté navigateur à des données manquantes ou de mauvais justificatifs. Notez l’échec et le contexte d’appel avant de choisir une explication. Modifier la configuration ne crée pas une permission serveur, et changer de contexte client ne prouve pas l’autorisation de l’intégration. Diagnostiquez le chemin applicatif pris en charge plutôt que de traiter tout échec comme un obstacle d’extraction.

Sur un échantillon maîtrisé, exercez les décisions avec des entrées distinctes : erreur HTTP, format inattendu, variante sans correspondance et résultat limité par la source. Les résultats attendus suivent le tableau, sans affirmer un comportement de boutique réelle. Un échec reste un échec ; un mauvais format n’est pas un prix absent ; une option non appariée est non comparable ; une couverture partielle reste incomplète. Séparez le précédent résultat accepté de l’actualisation échouée afin d’éviter un faux événement de prix ou de stock.

Utiliser le rendu comme preuve de présentation

Un navigateur convient lorsque la question approuvée concerne l’affichage réel : options sélectionnées, texte localisé, format ou résultat d’une interaction permise. La référence Storefront documente une API de données, pas le comportement de chaque interface marchande. Récupérer un objet produit ne prouve ni l’option choisie par le thème ni le format du montant. Inversement, le texte visible observe un état particulier et ne constitue pas l’objet API complet.

La documentation de démarrage BotBrowser couvre configuration fondée sur les profils, connexions d’automatisation, contextes avec proxy, vérification et nettoyage. Elle permet à un environnement autorisé de déclarer et inspecter ses paramètres de navigateur. Elle n’authentifie pas une application Admin API, ne produit pas de justificatifs Shopify et ne fournit pas le catalogue marchand. Séparez configuration prévue et preuves du chargement réel du profil et de l’état attendu de la page. Un fichier exprime une intention ; l’observation doit établir le résultat exigé.

Dans un échantillon de présentation autorisé, liez sélection produit, état de page et configuration pertinente à la valeur capturée. Comparez texte ou format uniquement à une question que cet échantillon peut résoudre. Une capture montre ce qui y était visible, pas le stock mondial ni le prix pour chaque client. Les preuves minimales doivent expliquer le champ sans révéler un état de compte réutilisable. Si le champ ne peut être attribué à l’option visée, arrêtez avant de l’accepter dans une comparaison.

La référence Ajax Product fournit une raison concrète de conserver la sémantique : le contexte de devise appartient à la réponse destinée au client. Les préférences du navigateur peuvent influencer la présentation sans établir ce contexte à elles seules. Si une comparaison change volontairement un paramètre de présentation, nommez-le et conservez séparément le contexte commercial observé. Une autre devise ou option n’est pas une variation de prix. Cette distinction reste nécessaire même si toutes les pages chargent sans erreur.

Ces règles n’impliquent aucune collecte sur une boutique Shopify réelle ni expérience d’accès. Les API documentées établissent leur portée publiée ; une observation autorisée n’établirait que son résultat et son contexte. Le rendu local d’un échantillon sauvegardé peut vérifier disposition et traitement par le parseur, tout en laissant disponibilité, accès et exactitude des produits réels non testés. Séparez ces acceptations pour qu’un succès local ne promette pas un comportement externe.

Choisir la source documentée suffisante

Partez d’une question précise et d’un contrat de source approuvé. Pour les champs commerciaux, évaluez l’opération Storefront pertinente et son modèle d’accès. Pour le JSON produit d’un thème hébergé, évaluez Ajax Product et ses limites. Pour l’affichage, observez au navigateur l’état pertinent avec autorisation. C’est un choix de preuves, pas une règle d’escalade de l’API vers le navigateur quand les données manquent.

Avant de développer le collecteur, expliquez pourquoi la source satisfait les conditions de produit, variante, devise et exhaustivité. Sinon, identifiez les preuves manquantes au lieu de les compléter ailleurs sans règle de correspondance. Changer de source exige une décision de schéma examinée, car des champs similaires peuvent avoir des contextes différents. Le système commun de prix pourra accepter une observation comparable ou conserver une limite explicite, sans masquer un changement de source derrière un montant apparemment stable.

La politique d’accès reste indépendante de la lisibilité technique. RFC 9309 précise que les règles robots ne sont pas une autorisation d’accès. Page lisible, fonction sans jeton ou permission de robot n’établissent pas l’usage complet autorisé pour une autre application. Confirmez l’intégration et le périmètre réels. Si accès ou données nécessaires manquent, retournez cette limite au lieu de changer d’identité client, de compte ou de route.

La décision doit nommer une surface prise en charge, les preuves de champs attendues et les conditions d’acceptation. Elle doit aussi indiquer les inconnues : variantes omises, devise non résolue, contexte client non vérifié ou refus. Elle reste utile sans nouveau prix publié. Elle évite de demander au moteur de rendu, au parseur ou à la configuration de résoudre un problème d’autorisation ou d’exhaustivité hors de leur contrat.

Questions fréquentes

Storefront API exige-t-elle toujours un jeton ?

Non. La documentation actuelle distingue un sous-ensemble sans jeton des fonctions avec jeton. Vérifiez opération et champs sans supposer un accès illimité ni une exigence universelle.

Ajax fonctionne-t-elle sur chaque interface Shopify personnalisée ?

Non. Shopify la documente pour ses thèmes hébergés et exclut les vitrines personnalisées. Confirmez l’architecture avant de dépendre de cette interface.

Une réponse réussie prouve-t-elle la collecte de toutes les variantes ?

Non. Product documente une limite de variantes. L’exhaustivité dépend du périmètre de source et des besoins de l’application, pas du seul succès HTTP.

La langue du navigateur établit-elle la devise d’un montant ?

Non. La devise nécessite des preuves du contexte de source choisi. Les préférences décrivent une configuration sans remplacer le sens commercial.

Sources

Conclusion pratique

Choisissez Storefront GraphQL pour les données commerciales prises en charge, Ajax des thèmes hébergés pour ses opérations JSON documentées et un navigateur pour la présentation autorisée. Conservez modèle d’accès, produit et variante, sens de la devise et limites d’exhaustivité. BotBrowser fournit les paramètres du navigateur ; la source doit fournir les faits produit et le contrat d’accès. Acceptez une observation comparable ou retournez les preuves manquantes avant de publier un changement de prix ou de disponibilité.

#scraping web#Browser Automation#confidentialité

Cet article fait partie du guide : Déploiement et livraison du navigateur : carte opérationnelle

Exécutez la même vérification dans BotBrowser

Chargez un profil, gardez dans le navigateur les signaux que vous venez de lire, puis confirmez le résultat sur votre propre machine avant le déploiement.