Aller au contenu

Pour les agences Shopify

Comment évaluer une application Shopify B2B : les questions des agences et des architectes de solution

Par Jahangir Alam · 20 septembre 2026 · 15 minutes de lecture

Dernière vérification
API Shopify
2026-07
Public
Agences Shopify, développeurs et architectes de solution qui évaluent une application B2B pour un client
Périmètre
Toute application Shopify de B2B, de devis, de prix ou de portail acheteur ; les mécanismes Shopify contre lesquels vérifier une réponse

Une application Shopify B2B peut être proposée à un client sans risque quand elle utilise les objets propres de Shopify - entreprises, sites, catalogues, commandes provisoires - plutôt que des objets parallèles ; étend la boutique et le compte client par des extensions plutôt que par du code injecté ; ne conserve que les données dont elle a besoin et les efface sur les webhooks obligatoires de Shopify ; cible une version prise en charge de l'API GraphQL et gère la limitation de débit et les nouvelles tentatives de webhook ; et peut prouver chacune de ces réponses plutôt que l'affirmer.

Les 53 questions ci-dessous sont regroupées pour qu'une agence puisse les parcourir en un après-midi, et chacune vient avec le moyen de vérifier la réponse vous-même, parce qu'une page fournisseur dit oui à tout.

Cette check-list est neutre vis-à-vis des fournisseurs. Elle s'applique à une application de demande de devis, de prix de gros, de portail acheteur ou à un développement sur mesure (savoir s'il faut en acheter une est le rôle du guide de décision), et elle a été écrite par un fournisseur dont les propres réponses sont publiées à part, en lien à la fin. Utilisez-la avant l'essai, pas après : la plupart des questions trouvent leur réponse dans la documentation, une boutique de développement et l'onglet réseau d'un navigateur, et celles qui n'en trouvent pas sont celles à poser par écrit.

Comment mener l'évaluation

  1. Répondez d'abord à partir de la documentation. Une application qui a documenté sa conservation des données, sa version d'API et son comportement à la désinstallation y a réfléchi ; celle qui ne l'a pas fait répondra de mémoire en rendez-vous commercial.
  2. Installez sur une boutique de développement. Les boutiques de développement sont gratuites et compatibles B2B, et les abonnements d'application y sont des facturations de test, si bien que chaque question « le fait-elle vraiment ? » ci-dessous peut être vérifiée sans la boutique du client. Créez deux entreprises, trois sites, deux catalogues avec un produit en commun, un site à 30 jours nets et un site en paiement par commande provisoire uniquement.
  3. Posez les questions restantes par écrit et conservez les réponses avec le projet. La réponse à « qu'est-ce qui est effacé à la désinstallation » fait partie du registre de traitement du client, pas d'une conversation. Une fois l'application choisie, le plan de 50 tests est ce qu'il faut exécuter avant la mise en ligne.

A. Adéquation native

L'erreur la plus coûteuse est une application qui recrée quelque chose que Shopify possède déjà. Ce qui reste dans Shopify et ce qui revient à la couche de devis en donne le raisonnement ; voici les questions.

Question Pourquoi cela compte Comment vérifier
Utilise-t-elle les entreprises, sites d'entreprise et contacts d'entreprise de Shopify comme modèle client, ou ses propres « comptes » ? Catalogues, conditions de paiement, exonérations fiscales et réglages de paiement sont tous accrochés au site Shopify ; un modèle de compte parallèle les duplique tous Créez une entreprise dans l'administration Shopify et vérifiez que l'application l'affiche sans ressaisie ; cherchez des identifiants d'entreprise et de site dans les enregistrements ou exports de l'application
Lit-elle le prix de catalogue du site plutôt que de tenir une liste de prix ? Un site peut avoir plusieurs catalogues et Shopify affiche le plus bas ; les prix par volume fixent un prix et retirent l'ajustement en pourcentage du catalogue. Une copie ne peut savoir ni l'un ni l'autre Donnez à un produit test deux prix de catalogue pour un site, puis regardez le prix d'où part l'application ; demandez si la tarification est résolue via contextualPricing au moment de la demande
Un devis accepté devient-il une commande provisoire native pour l'entreprise, avec le site et le contact de l'acheteur dessus ? Une commande provisoire créée avec une purchasingEntity reprend les conditions et les réglages de paiement du site ; une commande créée pour la personne, non Convertissez un devis test et ouvrez la commande provisoire dans l'administration : entreprise, site et contact doivent y figurer, pas seulement un client
Le prix convenu atteint-il la ligne de commande provisoire, ou l'application le simule-t-elle avec une remise ? Un prix unitaire négocié a sa place dans priceOverride sur la ligne ; un code de remise change le reporting et peut être retiré Convertissez un devis avec un prix négocié et lisez la commande provisoire : prix de ligne contre remises appliquées
Applique-t-elle les conditions de paiement Shopify du site, ou gère-t-elle les siennes ? Les conditions sont encaissées par Shopify ; des « conditions » propres à l'application sont un second système de créances Comparez les conditions de paiement de la commande provisoire convertie au réglage du site
Fonctionne-t-elle sur Basic, Grow et Advanced, ou vérifie-t-elle la présence de Plus ? Le B2B est sur tous les forfaits depuis le 2 avril 2026 ; une application qui filtre sur le nom du forfait plutôt que sur la capacité est dépassée Installez sur une boutique de développement hors Plus avec le B2B activé et essayez les fonctions par entreprise
Ne propose-t-elle les acomptes que là où Shopify le fait ? Les acomptes sont une fonctionnalité Plus (DraftOrderInput.deposit) ; une application qui promet des acomptes sur une boutique Basic promet ce que Shopify ne peut pas encaisser Demandez où l'acompte est encaissé ; la seule réponse correcte est le paiement Shopify sur la commande provisoire, et seulement sur Plus
L'éligibilité produit - quels produits peuvent être demandés, en quelle quantité - est-elle appliquée côté serveur, ou seulement masquée dans la boutique ? Un bouton masqué n'est pas une règle ; un acheteur avec une URL peut tout soumettre Soumettez une demande pour un produit exclu en modifiant la requête du formulaire dans l'onglet réseau du navigateur ; le serveur doit refuser
Une ligne qui n'est pas une variante - une dimension sur mesure, un service, des frais de mise en route - peut-elle être ajoutée avec son propre prix, son indicateur de taxe et d'expédition, et atteint-elle la commande provisoire comme ligne personnalisée ? Les vrais devis ont des lignes que le catalogue n'a pas ; une commande provisoire prend en charge les lignes personnalisées avec exactement ces indicateurs Ajoutez-en une dans une proposition test et convertissez ; vérifiez que la ligne de commande provisoire n'a pas de variante et porte les indicateurs

B. Boutique

Question Pourquoi cela compte Comment vérifier
L'intégration à la boutique est-elle une extension d'application de thème - blocs d'application dans les sections, blocs intégrés pour les superpositions - ou du code injecté dans les fichiers du thème ? Les extensions sont ajoutées et retirées par le marchand dans l'éditeur de thème et ne laissent rien derrière elles ; le code injecté doit être nettoyé à la main et casse aux changements de thème Dans l'éditeur de thème, regardez sous Applications dans une section et sous Paramètres du thème > Intégrations d'applications ; puis cherchez le nom de l'application dans les fichiers Liquid du thème
L'intégration d'application est-elle activée après l'installation, et le marchand le sait-il ? Les blocs d'intégration d'application sont « désactivés après l'installation d'une application » et doivent être activés dans l'éditeur de thème ; une application qui semble cassée le premier jour, c'est généralement cela Installez et vérifiez Paramètres du thème > Intégrations d'applications avant de toucher à quoi que ce soit
Que charge-t-elle sur chaque page, et à quel poids ? Les limites suggérées par Shopify pour une extension de thème sont 10 Ko de JavaScript compressé et 100 Ko de CSS ; Built for Shopify exige qu'une application « ne réduise pas le score de performance Lighthouse de la boutique de plus de dix points » Ouvrez une page produit avec l'onglet réseau filtré sur le domaine de l'application ; lancez Lighthouse avec l'intégration activée puis désactivée
Survit-elle à une mise à jour du thème ou au passage à un nouveau thème ? Les blocs d'application sont placés par section, donc un nouveau thème démarre sans eux ; les intégrations d'application s'activent par thème dans l'éditeur. Ce qui a été injecté dans les fichiers du thème ne suit pas du tout Dupliquez le thème, publiez la copie et vérifiez ce qui fonctionne encore ; puis essayez un thème neuf
Que se passe-t-il sur une vitrine headless ? Les extensions de thème sont du Liquid rendu par la boutique en ligne ; une vitrine Hydrogen ou sur mesure n'en rend aucune. Le B2B headless passe par la Storefront API contextualisée avec le jeton de l'acheteur et companyLocationId, donc l'application a besoin d'un chemin API ou composant à elle Demandez le guide d'intégration headless ; si la réponse est « notre bloc d'application », il n'y en a pas
Le parcours de demande fonctionne-t-il sans JavaScript, et est-il accessible ? Une demande de devis est un formulaire ; un formulaire qui n'existe qu'en JavaScript échoue pour les technologies d'assistance et quand un script est bloqué Soumettez une demande avec JavaScript désactivé ; passez un contrôle d'accessibilité sur le formulaire
Si elle masque les prix, à quel niveau ? Un masquage visuel remplace l'élément de prix par un bouton et laisse le nombre dans le code source, les balises meta et les données structurées ; un masquage sûr pour les moteurs le tient hors du HTML reçu par un visiteur non connecté, et cela exige une modification ponctuelle du thème parce qu'une application ne peut pas retirer le balisage propre du thème Affichez le code source d'une page produit en visiteur non connecté et cherchez le prix ; demandez comment l'application vérifie le masquage

C. Comptes clients et l'acheteur

Question Pourquoi cela compte Comment vérifier
Exige-t-elle les comptes clients actuels, et que fait-elle sur une boutique qui ne les a pas activés ? Les anciens comptes clients ont été dépréciés le 26 février 2026 et n'ont jamais pris en charge le B2B ; l'expérience acheteur vit désormais dans les comptes actuels ou sur une page hébergée fournie par l'application Demandez ce qu'obtient une boutique sans comptes clients activés ; les réponses honnêtes sont « un portail hébergé » ou « rien »
L'expérience dans le compte est-elle une extension d'interface de compte client ? Les extensions tournent à l'intérieur du compte Shopify (liste des commandes, statut de commande, profil, pleine page) sous la connexion de Shopify, avec une limite de 64 Ko par bundle (128 Ko en pleine page) ; tout le reste est un lien vers l'extérieur Connectez-vous comme acheteur test et regardez si la page de l'application est dans le compte ou sur un autre domaine
Qu'obtient un invité ? Le B2B natif n'affiche les prix qu'à un contact rattaché à un site ; les acheteurs qui demandent avant d'avoir un compte sont le haut de l'entonnoir Demandez un devis sans être connecté ; vérifiez comment l'acheteur est joint et si le devis se rattache à un client une fois qu'il existe
Comprend-elle un acheteur rattaché à plusieurs sites ? Un contact avec trois sites en choisit un avant le paiement ; un devis doit appartenir à un site, pas à la personne Donnez deux sites à un contact test et demandez un devis depuis chacun
L'acheteur peut-il voir son historique de devis et de commandes au même endroit ? Les acheteurs recommandent depuis l'historique ; une application qui range l'historique là où l'acheteur ne va jamais est invisible Vérifiez la page de compte de l'acheteur après conversion : le devis et la commande qui en résulte

D. Données, confidentialité et cycle de vie

Question Pourquoi cela compte Comment vérifier
Quelles données stocke-t-elle, et dans quelle région ? Nom, adresse, e-mail et téléphone sont des données clients protégées ; leur localisation est une question contractuelle pour le client Lisez la politique de confidentialité et la liste des sous-traitants ; demandez la région
A-t-elle été approuvée pour les données clients protégées, et à quel niveau ? Shopify examine les applications publiques avant d'accorder l'accès ; le niveau 2 (nom, adresse, téléphone, e-mail) exige des sauvegardes chiffrées, des environnements séparés, une journalisation des accès et une politique de réponse aux incidents Demandez le statut d'accès dans le Partner Dashboard et le niveau ; une application qui ne sait pas ne l'a pas fait
Quelle est la politique de conservation, et le marchand peut-il la changer ? Les pièces jointes et documents générés s'accumulent ; une durée de conservation est un contrôle de protection des données, pas un coût de stockage Lisez la documentation de conservation ; vérifiez que les fichiers sont supprimés selon un calendrier
Le marchand peut-il tout exporter ? Le client partira un jour ; devis, versions et approbations doivent partir avec lui Lancez l'export sur la boutique de développement et ouvrez-le
Qu'est-ce qui est effacé quand shop/redact arrive, et quand ? Shopify envoie shop/redact 48 heures après la désinstallation et l'application doit effacer les données de la boutique ; certaines applications gardent d'abord une fenêtre de récupération Demandez le comportement exact et la fenêtre ; ils doivent correspondre à la documentation
Comment gère-t-elle customers/redact et customers/data_request ? Le webhook de suppression arrive 10 jours après une demande, ou une fois six mois écoulés depuis la dernière commande du client ; l'application a 30 jours pour agir. Toute application de l'App Store doit implémenter les trois Demandez ce qui est supprimé lors d'un effacement client et ce que renvoie une demande de données
Les fichiers téléversés sont-ils validés ? Une pièce jointe de devis est un envoi d'un acheteur non authentifié Demandez ce qui est vérifié ; la validation du type et du contenu actif est la réponse honnête, et une affirmation d'analyse antimalware doit venir avec le nom de l'outil
Existe-t-il un accord de traitement des données et une liste de sous-traitants ? La propre politique de confidentialité du client doit les nommer Demandez les deux avant le contrat

E. API et fiabilité

Question Pourquoi cela compte Comment vérifier
API GraphQL Admin, ou REST hérité ? L'API REST Admin « est une API héritée depuis le 1er octobre 2024 », et depuis le 1er avril 2025 les nouvelles applications publiques doivent être exclusivement GraphQL ; les nouveaux champs B2B arrivent d'abord en GraphQL Demandez quelle API l'application utilise aujourd'hui, pas celle qu'elle prévoit
À quelle version d'API est-elle fixée, et comment monte-t-elle de version ? Shopify publie une version chaque trimestre et prend en charge chacune au moins 12 mois ; une version non prise en charge « bascule vers l'avant » sans avertir. L'application doit nommer sa version et son rythme de mise à jour Demandez la version actuelle ; comparez-la à la liste prise en charge au 20 septembre 2026 : 2025-10, 2026-01, 2026-04, 2026-07
Comment se comporte-t-elle en cas de limitation de débit ? L'Admin API autorise 100 points par seconde sur Standard, 200 sur Advanced, 1 000 sur Plus et 2 000 sur Commerce Components, avec un plafond de 1 000 points par requête et un 429 quand le réservoir est vide ; une opération en masse qui ignore throttleStatus fait aussi échouer les autres applications de la boutique Demandez comment les actions en masse et les synchronisations reculent ; cherchez dans la réponse une reprise tenant compte de throttleStatus
De quels webhooks dépend-elle, et que se passe-t-il quand l'un est manqué ? Shopify réessaie une livraison échouée « 8 fois au cours des 4 heures suivantes » puis supprime l'abonnement ; la livraison « n'est pas toujours garantie ». Une application qui n'apprend les commandes payées que par orders/create en manquera une un jour Demandez s'il existe une tâche de réconciliation qui interroge périodiquement Shopify, comme le recommande Shopify lui-même
Les livraisons de webhook sont-elles vérifiées et dédupliquées ? La vérification HMAC et l'ignorance des doublons via X-Shopify-Webhook-Id sont le minimum ; un orders/create traité deux fois peut marquer un devis payé deux fois Demandez directement ; c'est un oui/non avec un nom d'en-tête dedans
La conversion devis-commande est-elle idempotente ? Une requête rejouée ou un second worker peut créer deux commandes provisoires pour une acceptation ; la solution est une clé d'idempotence par conversion et une réservation avant draftOrderCreate Déclenchez deux fois une conversion coup sur coup sur la boutique de développement et comptez les commandes provisoires
L'interface d'administration est-elle intégrée avec la dernière App Bridge et des jetons de session ? Shopify exige des jetons de session pour les applications intégrées et demande aux développeurs d'« éviter les cookies tiers ou le stockage local » ; Built for Shopify exige la dernière App Bridge Ouvrez l'application dans une fenêtre de navigation privée avec les cookies tiers bloqués
Quelles portées d'accès demande-t-elle, et pourquoi chacune ? L'exigence 3.2 de l'App Store est de ne demander que les portées nécessaires ; write_orders et read_all_orders demandent une raison Lisez la liste des portées sur l'écran d'installation et demandez la raison de chacune
Comment le client s'y intègre-t-il ? Déclencheurs et actions Shopify Flow, une API à elle, des webhooks sortants - et qu'expose exactement chacun ? Les questions ERP et CRM trouvent ici leur réponse ; « nous avons Flow » ne veut rien dire sans la liste des déclencheurs et de leurs champs Demandez la page de référence qui liste chaque déclencheur, action et champ
Si elle a des extensions de paiement ou de compte client, quelle est leur latence ? Built for Shopify exige que les requêtes de paiement aient un p95 de 500 ms ou moins Demandez le chiffre ; il se mesure, il ne s'estime pas

F. Exploitation

Question Pourquoi cela compte Comment vérifier
Un commercial peut-il envoyer un prix soumis à approbation sans l'obtenir ? Une « approbation requise » qui n'est qu'un rappel dans l'interface n'est pas un contrôle ; la vérification doit s'exécuter côté serveur dans le chemin d'envoi pour qu'une automatisation ne puisse pas non plus la sauter Configurez une politique sur la boutique de développement et essayez d'envoyer depuis un compte commercial ; puis essayez par toute automatisation offerte par l'application
Un commercial peut-il approuver son propre devis ? La séparation des tâches est la première chose que demande un auditeur Faites du commercial un approbateur et testez
Les limites par approbateur et l'escalade sont-elles exprimables ? « Jusqu'à 10 %, puis un responsable » est la politique courante Configurez-la ; si l'application ne peut pas, c'est la réponse
Le lien d'acceptation cesse-t-il de fonctionner à l'expiration du devis ? Une proposition expirée que l'on peut encore accepter est une faille de prix Réglez une expiration d'un jour sur la boutique de développement et essayez le lien le lendemain
Les propositions sont-elles versionnées et immuables une fois envoyées ? Le document reçu par l'acheteur est un enregistrement commercial ; une application qui modifie une proposition envoyée sur place ne peut pas dire ce qui a été convenu Envoyez, puis essayez de modifier ; l'application doit imposer une nouvelle version ou une contre-offre
Existe-t-il une trace d'audit avec acteur et horodatage pour chaque changement d'état ? « Qui a approuvé ce prix » un an plus tard Effectuez cinq actions avec deux utilisateurs et lisez le journal
Comment les rôles correspondent-ils au personnel Shopify ? Les permissions de l'équipe commerciale Shopify délimitent les fiches d'entreprise qu'un commercial voit ; les rôles de l'application décident ce qu'il peut faire d'un devis ; les deux doivent se composer, pas se contredire Restreignez un membre du personnel Shopify à un site et vérifiez ce que l'application lui montre
Que contiennent les documents ? Numéro de bon de commande, conditions, expiration, prix par ligne, numéro de version ; un bloc de signature si le client en a besoin Générez le PDF sur la boutique de développement et vérifiez les champs par rapport aux exigences du client
Un acheteur peut-il accepter certaines lignes et laisser le reste ouvert, et que contient alors la commande ? Les affaires à plusieurs lignes se concluent rarement en entier Acceptez deux lignes sur quatre dans un test et lisez la commande provisoire
Quel est le modèle de support ? Horaires, canal, objectif de réponse, une page de statut, et si le contact d'urgence du développeur est à jour Lisez la fiche et demandez

G. Commercial

Question Pourquoi cela compte Comment vérifier
Quelles fonctionnalités sont sur quel forfait, et le découpage suit-il la capacité Shopify ou le nom du forfait ? Le forfait du client et le forfait de l'application sont deux barrières distinctes ; les deux doivent être explicites Lisez la page de tarifs ; puis vérifiez sur une boutique de développement B2B hors Plus
Est-elle Built for Shopify, et savez-vous ce que cela prouve ? Le badge exige la règle de performance ci-dessus, des Web Vitals d'administration au p75 (LCP 2,5 s, CLS 0,1, INP 200 ms), un minimum de 50 installations nettes depuis des boutiques actives sur forfait payant, au moins cinq avis, et la dernière App Bridge. Il prouve une hygiène technique et une certaine adoption ; il n'évalue pas les fonctionnalités B2B Vérifiez le badge sur la fiche ; puis parcourez quand même le reste de cette liste
Tout le projet peut-il être prouvé sur une boutique de développement avant que le client paie ? Un projet d'agence dure plus longtemps qu'un essai en boutique réelle Demandez si les fonctionnalités payantes fonctionnent sur une boutique de développement
Que récupérez-vous en partant ? Format d'export, si les commandes provisoires et les commandes restent (elles le devraient - elles sont à Shopify), et ce que l'application garde Lancez l'export ; lisez la documentation de désinstallation

Questions fréquentes

Que garantit réellement Built for Shopify ?

Trois choses mesurables et un seuil d'adoption : l'application ne réduit pas le score Lighthouse de la boutique de plus de dix points, ses pages d'administration respectent les Web Vitals au 75e percentile, ses requêtes de paiement (s'il y en a) ont un p95 sous 500 ms, et elle compte au moins 50 installations nettes sur forfait payant et cinq avis. Il ne vérifie pas si l'application utilise les entreprises, lit les prix de catalogue, applique les approbations ou efface correctement les données. Considérez-le comme un filtre, pas comme un verdict.

Faut-il écarter une application qui injecte du code dans le thème ?

Pour un nouveau projet, oui, sauf raison précise pour laquelle le modèle d'extension ne peut pas faire le travail. Les extensions de thème sont ajoutées et retirées par le marchand dans l'éditeur de thème ; le code injecté doit être retrouvé et retiré à la main, casse quand le thème change, et c'est généralement la raison pour laquelle une application « ne fonctionne plus » après une mise à jour du thème.

L'application a-t-elle besoin de Shopify Plus ?

Seulement pour ce que Shopify lui-même réserve à Plus : catalogues illimités, attribution directe de catalogue, acomptes et paiements partiels. Entreprises, sites, catalogues, règles de quantité, prix par volume, conditions de paiement et commandes provisoires sont sur tous les forfaits depuis le 2 avril 2026, donc une application qui exige Plus pour les devis par entreprise vérifie le nom du forfait plutôt que la capacité. La matrice des forfaits en donne la liste complète.

Comment vérifier « appliqué côté serveur » sans lire le code ?

Essayez de faire ce que la règle interdit depuis un client qui n'est pas l'interface de l'application. Soumettez une demande pour un produit exclu en rejouant la requête du formulaire dans l'onglet réseau du navigateur avec un autre identifiant de produit ; envoyez une proposition soumise à approbation depuis un compte commercial ; acceptez le lien d'un devis expiré. Si le serveur refuse chacun, la règle est réelle. Le schéma se généralise à toutes les questions « X peut-il contourner Y » de cette liste.

Et l'API propre de l'application ?

Une application sans API à elle n'est pas disqualifiée ; la plupart des besoins d'intégration sont couverts par les déclencheurs et actions Shopify Flow plus la commande Shopify produite par la conversion. Ce qui compte, c'est que le fournisseur dise ce qu'il en est, liste ce qu'exposent les déclencheurs, et ne présente pas une feuille de route comme une fonctionnalité.

Où sont les réponses de QuotWay ?

Publiées plutôt qu'imprimées ici, pour que cette liste reste utilisable pour n'importe quelle application : ce que QuotWay peut faire ou non répond aux questions de fonctionnalités et d'application des règles forfait par forfait, et sécurité et protection des données répond à celles sur les données, la conservation et les webhooks ; la page de la fonctionnalité B2B et les tarifs couvrent les lignes d'adéquation native et de découpage par forfait. Parcourez la liste contre elles comme vous le feriez contre n'importe quelle autre application.

Sources

Pages Shopify, toutes lues le 20 septembre 2026 :

Articles liés

Découvrez comment QuotWay gère cela sur votre boutique.

Nous souhaitons déposer des cookies de mesure d'audience pour comprendre comment le site est utilisé. Ils ne sont pas nécessaires : refuser ne change rien au fonctionnement du site, et vous pouvez revenir sur votre choix à tout moment depuis notre page de confidentialité.