La récupération des tarifs dans Zoho CRM est simple dès lors que vous connaissez les deux opérations API disponibles — l'une pour lister tous les tarifs et l'autre pour récupérer un enregistrement spécifique par son ID.
Pourquoi c'est important
Les tarifs dans Zoho CRM vous permettent de gérer des prix échelonnés ou spécifiques à chaque client dans votre catalogue de produits. Si vous développez des intégrations, des automatisations ou des tableaux de bord personnalisés, vous aurez besoin de récupérer les données de tarifs par programmation. Savoir quels endpoints appeler — et comment l'authentification s'intègre dans ces appels — vous fera gagner un temps précieux lors du débogage.
> Remarque : Beam Help est un support expert indépendant pour Zoho et ne constitue pas le support officiel de Zoho.
---
Étape par étape
Étape 1. Assurez-vous que votre connexion OAuth est établie et que votre token est valide.
Avant tout appel API, votre intégration doit disposer d'un token d'accès valide pour Zoho CRM. La couche de connexion vérifie l'expiration du token et le renouvelle automatiquement à l'aide du refresh token stocké lorsque le token arrive à expiration dans moins de 120 secondes — veillez donc à ce que votre enregistrement zoho_connections soit à jour avant de continuer. [8]
Étape 2. Initialisez le client API CRM.
Appellez getzohoapi avec le userid concerné et passez "crm" comme apptype. Cela renvoie une instance API CRM authentifiée, s'appuyant sur la logique de renouvellement du token décrite ci-dessus. Si aucune connexion n'existe pour l'utilisateur, la fonction renvoie None — gérez ce cas avant de continuer. [2]
Étape 3. Récupérez tous les tarifs.
Pour obtenir la liste complète des tarifs, émettez une requête GET vers l'endpoint /PriceBooks. Dans le code, cela correspond à l'opération getprice_books, qui accepte un dictionnaire de paramètres optionnel (p) :
def get_price_books(self, p: dict = None):
return self.c.request("GET", "/Price_Books", p or {})
Passez les paramètres de requête pris en charge (tels que la pagination ou les filtres de champs) dans le dict p. Si vous n'avez aucun filtre, passez un dict vide ou omettez entièrement l'argument. [3]
Étape 4. Récupérez un tarif spécifique par son ID.
Lorsque vous connaissez déjà l'ID d'enregistrement du tarif, utilisez plutôt l'opération getpricebook. Celle-ci émet une requête GET vers /PriceBooks/{pbid}, en substituant l'ID réel dans le chemin :
def get_price_book(self, pb_id: str):
return self.c.request("GET", f"/Price_Books/{pb_id}")
Fournissez le pb_id sous forme de chaîne de caractères. La réponse contiendra l'enregistrement complet de ce tarif spécifique. [4]
Étape 5. Vérifiez que vos scopes OAuth couvrent les modules CRM.
Votre application OAuth enregistrée doit inclure les scopes Zoho CRM appropriés. La configuration des scopes inclut ZohoCRM.org.ALL et un accès étendu aux modules CRM — vérifiez que les scopes accordés à votre application ne sont pas plus restrictifs que ceux configurés, sinon les appels vers /Price_Books renverront des erreurs d'autorisation. [5]
---
Erreurs courantes
- Token d'accès manquant ou expiré. Si
getzohoapirenvoieNone, l'enregistrement de connexion est absent ou le renouvellement a échoué. Vérifiez que lerefreshtokenstocké danszohoconnectionsest toujours valide et n'a pas été révoqué. [2] apptypeincorrect. Les tarifs se trouvent dans Zoho CRM, pas dans Zoho Desk. Passez toujoursapptype="crm"lors de l'initialisation du client API — passer"desk"redirigera votre requête vers le mauvais client. [2]- Dict de paramètres vide vs.
None. La méthodegetpricebooksse protège contre une valeurNoneen substituant un dict vide (p or {}), mais si vous appelez directement la couche de requête sous-jacente, passez toujours un dict pour éviter les erreurs de type. [3] - Incompatibilité de centre de données. Les URL CRM et les domaines API varient selon le centre de données (par ex.,
.com,.eu,.in). Assurez-vous que l'api_domainstocké dans votre enregistrement de connexion correspond au centre de données où votre organisation Zoho CRM est hébergée. [7]
---
Points à vérifier
- Validité du token : Confirmez que le token d'accès a été renouvelé avec succès et que
tokenexpiresatest dans le futur avant d'effectuer des requêtes sur les tarifs. [8] - Réponse correcte de l'endpoint : Un appel réussi à
GET /PriceBooksdoit renvoyer une liste d'enregistrements de tarifs ; un appel àGET /PriceBooks/{pb_id}doit renvoyer un objet d'enregistrement unique — vérifiez que la structure de la réponse correspond à vos attentes. [^3, ^4] - Couverture des scopes : Vérifiez que les scopes OAuth accordés à votre application connectée incluent les permissions Zoho CRM nécessaires, afin que la lecture des tarifs ne soit pas bloquée au niveau de la couche d'autorisation. [5]