Recuperare i listini prezzi in Zoho CRM è semplice una volta che conosci le due operazioni API disponibili — una per elencare tutti i listini prezzi e una per recuperare un record specifico tramite ID.
Perché è importante
I listini prezzi in Zoho CRM ti consentono di gestire prezzi a livelli o specifici per cliente nell'intero catalogo prodotti. Se stai sviluppando integrazioni, automazioni o dashboard personalizzate, dovrai recuperare i dati dei listini prezzi in modo programmatico. Sapere quali endpoint chiamare — e come l'autenticazione si inserisce in quelle chiamate — consente di risparmiare molto tempo in fase di debug.
> Nota: Beam Help è un servizio di supporto esperto indipendente per Zoho e non è il supporto ufficiale di Zoho.
---
Procedura passo dopo passo
Passaggio 1. Assicurati che la connessione OAuth sia stabilita e che il token sia valido.
Prima di qualsiasi chiamata API, la tua integrazione deve disporre di un token di accesso valido per Zoho CRM. Il livello di connessione verifica la scadenza del token e lo aggiorna automaticamente utilizzando il refresh token memorizzato quando il token è entro 120 secondi dalla scadenza — assicurati quindi che il record zoho_connections sia aggiornato prima di procedere. [8]
Passaggio 2. Inizializza il client API CRM.
Chiama getzohoapi con il relativo userid e passa "crm" come apptype. Questo restituisce un'istanza API CRM autenticata supportata dalla logica di aggiornamento del token descritta sopra. Se non esiste alcuna connessione per l'utente, la funzione restituisce None — gestisci questo caso prima di continuare. [2]
Passaggio 3. Recupera tutti i listini prezzi.
Per recuperare l'elenco completo dei listini prezzi, invia una richiesta GET all'endpoint /PriceBooks. Nel codice, questo corrisponde all'operazione getprice_books, che accetta un dizionario di parametri opzionale (p):
def get_price_books(self, p: dict = None):
return self.c.request("GET", "/Price_Books", p or {})
Passa eventuali parametri di query supportati (come paginazione o filtri sui campi) nel dizionario p. Se non hai filtri, passa un dizionario vuoto o ometti del tutto l'argomento. [3]
Passaggio 4. Recupera un singolo listino prezzi tramite ID.
Quando conosci già l'ID del record del listino prezzi, utilizza invece l'operazione getpricebook. Questa invia una richiesta GET a /PriceBooks/{pbid}, sostituendo l'ID effettivo nel percorso:
def get_price_book(self, pb_id: str):
return self.c.request("GET", f"/Price_Books/{pb_id}")
Fornisci il pb_id come stringa. La risposta conterrà il record completo per quel listino prezzi specifico. [4]
Passaggio 5. Verifica che gli scope OAuth coprano i moduli CRM.
L'applicazione OAuth registrata deve includere gli scope Zoho CRM appropriati. La configurazione degli scope include ZohoCRM.org.ALL e un accesso ampio ai moduli CRM — verifica che gli scope concessi alla tua app non siano più restrittivi di quelli configurati, altrimenti le chiamate a /Price_Books restituiranno errori di autorizzazione. [5]
---
Errori comuni
- Token di accesso mancante o scaduto. Se
getzohoapirestituisceNone, il record di connessione è assente o l'aggiornamento non è riuscito. Verifica che ilrefreshtokenmemorizzato inzohoconnectionssia ancora valido e non sia stato revocato. [2] apptypeerrato. I listini prezzi si trovano in Zoho CRM, non in Zoho Desk. Passa sempreapptype="crm"quando inizializzi il client API — passare"desk"instraderà la richiesta al client sbagliato. [2]- Dizionario di parametri vuoto vs.
None. Il metodogetpricebooksgestisce un valoreNonesostituendolo con un dizionario vuoto (p or {}), ma se stai chiamando direttamente il livello di richiesta sottostante, passa sempre un dizionario per evitare errori di tipo. [3] - Mancata corrispondenza del data center. Gli URL CRM e i domini API variano in base al data center (ad es.
.com,.eu,.in). Assicurati che l'api_domainmemorizzato nel record di connessione corrisponda al data center in cui è ospitata la tua organizzazione Zoho CRM. [7]
---
Cosa verificare
- Validità del token: Conferma che il token di accesso sia stato aggiornato correttamente e che
tokenexpiresatsia nel futuro prima di effettuare richieste sui listini prezzi. [8] - Risposta corretta dell'endpoint: Una chiamata riuscita a
GET /PriceBooksdeve restituire un elenco di record di listini prezzi; una chiamata aGET /PriceBooks/{pb_id}deve restituire un singolo oggetto record — verifica che la struttura della risposta corrisponda alle tue aspettative. [^3, ^4] - Copertura degli scope: Verifica che gli scope OAuth concessi alla tua app connessa includano le autorizzazioni Zoho CRM necessarie, in modo che la lettura dei listini prezzi non venga bloccata a livello di autorizzazione. [5]