Labs — Application Shopify

B2B Triage : inscription et approbation des grossistes pour Shopify B2B

Les demandes en gros deviennent de vraies entreprises Shopify.

B2B Triage est une application Shopify de Human After All qui transforme les demandes de compte en gros en comptes B2B Shopify natifs. Un acheteur fait une demande sur votre vitrine, une personne la révise, et l’approbation écrit de vrais objets Shopify — entreprise, emplacement, contact, affectation de catalogue, conditions de paiement, exonération de taxes. Pas une étiquette. Pas une note. Les fiches sur lesquelles roule le moteur B2B de Shopify.

Bientôt sur le Shopify App Store · Fonctionne sur tous les forfaits payants de Shopify

Dernière mise à jour :

01 — Le graphe d’objets

Que crée B2B Triage quand vous approuvez un acheteur ?

Approuver une demande écrit six objets Shopify natifs : une entreprise, un emplacement, un contact, une affectation de catalogue, des conditions de paiement et une exonération de taxes. La plupart des applications d’inscription s’arrêtent à une fiche client — les réponses collées dans le champ Notes, quelques étiquettes, un mot de passe. B2B Triage aboutit au graphe d’objets que le moteur B2B de Shopify lit vraiment. L’entreprise est créée avec un identifiant externe stable, dérivé au moment de la demande : un double-clic sur Approuver ne crée pas de doublon en silence. L’emplacement est affecté à un de vos catalogues ; l’application n’en crée jamais — les vôtres restent les vôtres. Les conditions de paiement sont résolues depuis le modèle de Shopify vers un entier typé. L’exonération de taxes est la valeur juste pour la juridiction, parmi les 75 de Shopify — le Canada seul en compte six types. Chaque étape s’inscrit dans l’historique de la demande. Quand Shopify refuse une étape, vous lisez ses mots — pas un code d’erreur inventé.

Une approbation. Six objets natifs.

01

Entreprise

Créée avec un identifiant externe stable, dérivé au moment de la demande. Shopify n’impose aucune unicité sur les noms d’entreprise ; sans cet identifiant, un double-clic sur Approuver en crée deux, en silence.

02

Emplacement

Y compris le deuxième que Shopify crée automatiquement en arrière-plan — sans conditions, sans exonération, sans catalogue. C’est celui que les acheteurs choisissent, et il vend au prix de détail. L’application le détecte et le réconcilie.

03

Contact

L’acheteur, rattaché à l’emplacement via la mutation d’affectation qui fonctionne quand le client existe déjà — c’est-à-dire, en pratique, toujours.

04

Affectation de catalogue

L’emplacement de l’acheteur est affecté à un catalogue que vous avez déjà monté : plusieurs acheteurs partagent les mêmes catalogues à paliers. L’application ne crée jamais de catalogue — les vôtres restent les vôtres.

05

Conditions de paiement

Le net résolu depuis le modèle de Shopify vers un entier typé — jamais extrait d’un texte affiché, ce qui casse dès la première boutique en français.

06

Exonération de taxes

La valeur juste pour la juridiction, parmi les 75 exonérations de Shopify. Le Canada à lui seul en compte six types. Un booléen général n’est pas la même chose.

02 — Vos données

Pourquoi des objets Shopify natifs plutôt que des étiquettes et des notes ?

Parce qu’une note n’est pas une donnée et qu’une étiquette n’est pas un nombre. L’approche courante range les réponses d’inscription dans un bloc de texte délimité, à l’intérieur du champ Notes du client — hors de portée de tout rapport, segment ou requête. B2B Triage écrit plutôt des métachamps typés et nommés. net_terms_days = 30 est un entier : il permet « plus grand que 30 ». L’étiquette net30 est du texte : elle entre en collision avec net300 et ne permet rien. Les métachamps sont une dimension GROUP BY dans ShopifyQL — vous pouvez vraiment faire des rapports sur votre programme de gros. Les étiquettes n’ont aucune dimension analytique. Tout ce que l’application écrit atterrit sous b2b_triage ; les étiquettes partagent un espace plat avec toutes les applications de votre boutique. Nous écrivons aussi des étiquettes, comme pont de compatibilité pour les outils qui ne lisent qu’elles — la synchronisation native de Klaviyo, par exemple. Les métachamps sont la vérité ; les étiquettes, une politesse.

Propriété Pourquoi ça compte
Analysable Les métachamps sont une dimension GROUP BY dans ShopifyQL. Les étiquettes n’ont aucune dimension analytique — on ne peut pas faire de rapport sur une étiquette. (Shopify n’offre pas de filtrage sur les métachamps client dans la liste de l’admin : la réponse vient de l’analytique et de l’export, pas de la liste des clients.)
Typé net_terms_days = 30 permet « plus grand que 30 ». L’étiquette net30 entre en collision de texte avec net300 et ne permet rien.
Nommé Tout atterrit sous b2b_triage. Les étiquettes forment un espace de noms global et plat, partagé avec toutes les applications de votre boutique : deux applications qui écrivent « wholesale » se marchent dessus en silence.
Exportable CSV avec les GID Shopify comme clés de jointure : la ligne correspond à votre CRM au lieu de l’approcher. Les valeurs sont normalisées à la saisie.

03 — Propriété

Qu’arrive-t-il à vos entreprises si vous désinstallez ?

Elles restent. Shopify n’enregistre aucun lien de propriété applicative sur une entreprise, un emplacement, un contact, une affectation de catalogue, des conditions de paiement ou une exonération de taxes — il n’y a donc rien qu’une désinstallation puisse retirer. Les métachamps sont la seule exception : ils portent un espace de noms réservé $app:, qu’une désinstallation coupe réellement. Les entreprises n’ont pas ce champ. Les comptes que B2B Triage approuve sont des fiches Shopify ordinaires. Votre équipe peut les modifier. Vos autres applications peuvent les lire. Ils se comportent comme si votre équipe les avait créés à la main dans l’admin. Disons-le avec précision : ce qui est prouvé, c’est le mécanisme, et le mécanisme tient peu importe qui a créé les objets. Comparez avec les applications de gros qui gardent vos données et vos prix dans leur propre base — partez, et votre programme part avec elles. La philosophie tient en une phrase : nous possédons l’interface, Shopify possède le moteur.

04 — Numéros de taxe

Que se passe-t-il quand le registre de TVA de l’UE tombe en panne ?

Le 16 juillet 2026, nous avons interrogé VIES, le registre de TVA de l’UE, sur IE6388047V — le vrai numéro de TVA de Google Ireland. Pendant 21 minutes, la réponse : invalide. Le service irlandais était en panne. Puis, sans changement chez Google, il est redevenu valide.

Voilà le piège. VIES signale parfois ses propres pannes par « invalide » : techniquement, HTTP 200, isValid: false, la raison cachée dans un autre champ.

Heure (UTC) isValid userError La lecture naïve
05 h 14 false MS_UNAVAILABLE « Invalide » — signalé comme fraude
05 h 35 true VALID GOOGLE IRELAND LIMITED

B2B Triage ne lit jamais isValid. Il lit le code d’erreur, comme une liste blanche : une seule valeur signifie « non enregistré ». Tout le reste — même les codes que la Commission ajoutera l’an prochain — signifie « impossible de vérifier maintenant », un autre mot à l’écran.

L’application ne rejette jamais un demandeur parce qu’un registre a cligné des yeux. Aucune branche du code ne transforme la mauvaise journée d’un registre en refus — pas une politique promise, une branche qui n’existe pas. « Jamais vérifié », « vérifié sans résultat » et « la vérification a échoué » sont trois faits différents ; un booléen les écraserait en un mensonge.

05 — Performance

Est-ce que B2B Triage ralentit votre vitrine ?

Non, et les chiffres sont mesurés plutôt que promis. Le formulaire d’inscription est livré comme bloc de thème, pas comme app embed. Il se charge uniquement sur les pages où vous le placez ; un embed s’exécute sur toutes les pages de votre boutique, y compris celles sans formulaire. Le bloc ne fait aucune requête tierce — pas de traqueur, pas de police depuis un CDN, pas de pixel d’analyse. Il pèse moins de 13 Ko compressés, une limite imposée par une étape de build qui échoue s’il grossit. Le formulaire fonctionne avec JavaScript complètement désactivé ; toute vérification auprès d’un registre de taxes passe par notre serveur, jamais par le navigateur de votre acheteur. La saisie suit la même discipline. Les codes postaux se normalisent par pays — h9b2g9 devient H9B 2G9. Les téléphones s’enregistrent en E.164. Et 244 pays ont des listes de provinces et d’États bâties sur les données de zones de Shopify — qui ne sont pas l’ISO 3166-2.

06 — Labs

Comment B2B Triage s’arrime-t-il à B2B Protocol et à nos autres projets B2B ?

B2B Triage est le premier produit de nos Labs que nous amenons sur le Shopify App Store — libre-service, installable, et volontairement limité à un seul mandat : l’inscription et l’approbation des grossistes sur le B2B natif de Shopify. Le reste de nos projets Labs est réservé aux clients. B2B Protocol est l’accélérateur B2B Shopify Plus que nous déployons pour les fabricants et distributeurs — middleware ERP, routage par segment d’acheteurs, contrôle des dépenses corporatives. Son module POS a amené la tarification contractuelle B2B sur Shopify POS pour la première fois. La philosophie est la même partout : ne jamais bâtir un système parallèle à côté de Shopify. Créer et affecter les objets de la plateforme, pour que les marchands gardent tout s’ils partent un jour. Si votre programme de gros demande plus qu’un flux d’approbation — tarification connectée à l’ERP, routage multi-segments ou une implémentation Shopify Plus complète — c’est notre pratique d’agence, et le formulaire de contact en est la porte.

Les demandes en gros, triées.

B2B Triage arrive bientôt sur le Shopify App Store. L’histoire complète du produit vit sur cette page, et chaque affirmation y est vérifiée dans le code, pas récitée. Si une question survit à la FAQ, parlez-nous directement de votre flux d’inscription en gros.

Questions fréquentes

Qu’est-ce que B2B Triage et comment ça fonctionne ?
B2B Triage est une application Shopify de Human After All qui gère l’inscription et l’approbation des grossistes par-dessus le B2B natif de Shopify. Vous montez un formulaire d’inscription — multi-étapes, avec une logique conditionnelle ET/OU imbriquée — et vous le placez sur votre vitrine comme bloc de thème. Les acheteurs en gros font leur demande. Chaque demande aboutit dans une file de triage où une personne la lit — la file qui donne son nom à l’application. Rien ne devient un compte avant qu’un humain le décide. À l’approbation, l’application écrit des objets Shopify natifs : une entreprise, un emplacement, un contact, une affectation de catalogue, des conditions de paiement et une exonération de taxes juste pour la juridiction, plus des métachamps typés et des étiquettes de compatibilité sur le client. Le résultat : un compte de gros que le moteur B2B de Shopify fait rouler directement, visible dans votre admin. B2B Triage arrive bientôt sur le Shopify App Store et fonctionne sur tous les forfaits payants de Shopify.
Est-ce qu’il me faut Shopify Plus pour utiliser B2B Triage ?
Non. Le B2B natif de Shopify n’est plus réservé à Plus depuis avril 2026. Il est maintenant inclus dans tous les forfaits payants de Shopify, et c’est précisément ce changement qui justifie B2B Triage. Pendant des années, les applications de vente en gros sur les boutiques hors Plus n’avaient d’autre choix que les étiquettes et les contournements, parce que les vrais objets B2B étaient verrouillés derrière Plus. Cette contrainte est tombée : l’application écrit les vrais objets sur Basic, Grow et Advanced aussi. Trois capacités restent réservées à Plus par Shopify, pas par nous : affecter un catalogue directement à une entreprise, dépasser trois catalogues (les forfaits hors Plus plafonnent à trois), et les paiements partiels ou acomptes. Quand Shopify refuse une étape pour une raison de forfait, B2B Triage affiche l’erreur de Shopify et marque l’étape comme sautée au lieu de faire échouer l’approbation. Pour l’ensemble complet des fonctions Plus, il y a notre pratique Shopify Plus.
Qu’arrive-t-il à mes entreprises si je désinstalle B2B Triage ?
Elles restent. Shopify n’enregistre aucun lien de propriété applicative sur une entreprise, un emplacement, un contact, une affectation de catalogue, des conditions de paiement ou une exonération de taxes. Les métachamps sont différents : ils vivent sous un espace de noms réservé $app:, qu’une désinstallation coupe réellement. Les entreprises n’ont pas ce champ : il n’y a rien que notre départ puisse retirer. Chaque compte approuvé par B2B Triage est une fiche Shopify ordinaire : votre équipe peut la modifier, vos autres applications peuvent la lire, et le moteur B2B de Shopify continue de la faire rouler, que nous soyons installés ou non. Disons-le avec précision, parce qu’une affirmation comme celle-là le mérite : ce qui est prouvé, c’est le mécanisme, et il tient peu importe qui a créé les objets. Comparez avec les applications qui gardent les réponses d’inscription et les prix négociés dans leur propre base de données — résiliez, et votre programme part avec elles.
Comment B2B Triage valide-t-il les numéros de taxe et de TVA ?
En deux étapes distinctes, et l’application vous dit laquelle a été exécutée. D’abord, la validation hors ligne : les formats de TVA européenne, TVA britannique, ABN australien, GST indien et EIN américain sont vérifiés avec une vraie arithmétique de clé de contrôle, pas une expression régulière — une faute de frappe évidente n’atteint jamais un registre gouvernemental. Ensuite, la vérification en direct : les numéros de TVA européens sont confirmés auprès de VIES, le registre de la Commission européenne — et c’est toute la liste. VIES signale parfois ses propres pannes par « invalide » — techniquement, un HTTP 200 avec isValid: false — et une intégration naïve accuse alors de fraude des entreprises légitimes dès qu’un État membre cligne des yeux. Nous l’avons vu déclarer invalide le vrai numéro de TVA de Google Ireland pendant 21 minutes. B2B Triage lit plutôt le code d’erreur. Il distingue « non enregistré » de « impossible de vérifier », et ne rejette jamais automatiquement un demandeur parce qu’un registre a passé une mauvaise journée. Le marchand décide ; l’application informe.
Quelle est la différence entre B2B Triage et B2B Protocol ?
Ils règlent des problèmes différents, à des échelles différentes. B2B Triage est une application libre-service du Shopify App Store avec un mandat volontairement étroit : l’inscription et l’approbation des grossistes dans les objets B2B natifs de Shopify. Vous l’installez, montez un formulaire et approuvez des demandes — sans mandat d’agence, sur n’importe quel forfait payant de Shopify. B2B Protocol est la forme inverse : un accélérateur Shopify Plus réservé aux clients, que Human After All déploie et configure — tarification connectée à l’ERP, routage par segment d’acheteurs, flux d’approbation, contrôle des dépenses corporatives, et le module qui a amené la tarification contractuelle B2B sur Shopify POS. Les deux reposent sur la même conviction : créer et affecter les objets de Shopify plutôt que de bâtir un système parallèle à côté de la boutique. Si votre question est « comment mes acheteurs s’inscrivent-ils ? », c’est B2B Triage. Si c’est « comment mon ERP fixe-t-il les prix partout ? », c’est B2B Protocol.