rest api woocommerce

Configurazione iniziale delle rest api di woocommerce

Quando gestisci un negozio online strutturato, arriva sempre il momento in cui le operazioni manuali diventano un ostacolo per la crescita. Inserire prodotti uno ad uno, aggiornare le giacenze di magazzino a mano o esportare gli ordini per il corriere sono attività che rubano tempo prezioso. È qui che entra in gioco la tecnologia. Se vuoi capire come far dialogare il tuo e-commerce con software esterni, gestionali ERP o piattaforme come Make.com, devi assolutamente padroneggiare questo strumento. Per avere una panoramica completa su come iniziare, ti consigliamo di leggere la nostra introduzione alle API di WooCommerce, che rappresenta il punto di partenza ideale.

Le rest api di woocommerce sono un’interfaccia di programmazione che permette ad applicazioni esterne di leggere, creare, modificare o eliminare i dati presenti all’interno del tuo negozio WordPress. Funzionano attraverso richieste HTTP standard e restituiscono i dati in formato JSON, un linguaggio universale compreso da quasi tutti i software moderni. Configurare correttamente questo ambiente è il primo passo fondamentale per costruire un ecosistema digitale automatizzato e privo di errori.

Come generare le chiavi per le rest api di woocommerce

Il processo per abilitare la comunicazione esterna inizia direttamente dalla bacheca del tuo sito WordPress. Non è necessario installare plugin aggiuntivi, poiché questa funzionalità è nativa e integrata nel core della piattaforma. La generazione delle chiavi di accesso è un’operazione delicata, in quanto queste credenziali rappresentano a tutti gli effetti le “chiavi di casa” del tuo negozio.

Per creare le tue credenziali, segui questi passaggi in modo preciso:

  • Accedi al pannello di amministrazione di WordPress con un account che abbia i privilegi di Amministratore.
  • Naviga nel menu laterale e clicca su WooCommerce, poi seleziona la voce Impostazioni.
  • Spostati sulla scheda intitolata Avanzate.
  • Nel sottomenu che compare, clicca su API REST.
  • Premi il pulsante Aggiungi chiave per iniziare la configurazione.

A questo punto, il sistema ti chiederà di inserire una descrizione. È una buona pratica utilizzare un nome che identifichi chiaramente quale applicazione utilizzerà queste chiavi. Ad esempio, se stai collegando il tuo gestionale aziendale, potresti chiamarla “Integrazione Gestionale ERP”. Seleziona poi l’utente a cui associare le azioni compiute tramite questa connessione. Una volta confermato, il sistema genererà due stringhe alfanumeriche: la Consumer Key e la Consumer Secret. Copiale immediatamente e conservale in un luogo sicuro, come un password manager, perché la Consumer Secret non sarà più visibile per intero una volta chiusa la pagina.

Impostare i permessi corretti per lettura e scrittura

Durante la fase di creazione delle chiavi, noterai un menu a tendina dedicato ai permessi. Questo è un aspetto cruciale per la sicurezza del tuo sistema. Le woocommerce rest api offrono tre livelli di autorizzazione: Lettura, Scrittura, e Lettura/Scrittura.

Scegliere il permesso corretto significa applicare il principio del privilegio minimo. Se stai collegando un software di reportistica che deve solo analizzare le vendite mensili, il permesso di sola Lettura è l’unica scelta logica. In questo modo, anche se le chiavi venissero compromesse, nessuno potrebbe cancellare i tuoi prodotti o modificare gli ordini.

Se invece stai configurando un’integrazione bidirezionale, ad esempio per un progetto di automazione per e-commerce dove il gestionale deve sia scaricare i nuovi ordini che aggiornare le quantità in magazzino, avrai necessariamente bisogno dei permessi di Lettura/Scrittura. Ricorda che puoi sempre modificare o revocare questi permessi in qualsiasi momento dalla stessa schermata di configurazione, garantendoti un controllo totale sugli accessi al tuo database.

Gestire l’autenticazione api woocommerce in sicurezza

Una volta generate le chiavi, il passo successivo è capire come farle accettare dal server in modo sicuro. L’autenticazione per le api di woocommerce è il meccanismo che verifica l’identità di chi sta effettuando la richiesta. Se questo passaggio fallisce, il server rifiuterà la connessione restituendo un errore. Comprendere i metodi di autenticazione ti eviterà ore di frustrazione durante la fase di sviluppo e integrazione.

Differenze tra protocollo HTTP di base e OAuth

WooCommerce supporta principalmente due metodi per autenticare le richieste, e la scelta dipende esclusivamente dal protocollo di sicurezza utilizzato dal tuo server web (HTTP o HTTPS).

Se il tuo sito web è protetto da un certificato SSL (e oggi dovrebbe assolutamente esserlo), le richieste viaggiano su protocollo HTTPS. In questo scenario, WooCommerce utilizza l’autenticazione Basic Auth. Questo metodo è molto semplice da implementare: la Consumer Key e la Consumer Secret vengono combinate, codificate in Base64 e inserite nell’intestazione (header) della richiesta HTTP. Poiché il canale HTTPS è crittografato, le credenziali viaggiano in modo sicuro e non possono essere intercettate da malintenzionati.

Se per qualche motivo stai lavorando in un ambiente di sviluppo locale senza certificato SSL (quindi su semplice HTTP), l’autenticazione Basic Auth verrebbe bloccata per motivi di sicurezza. In questo caso, WooCommerce richiede l’utilizzo del protocollo OAuth 1.0a. Questo metodo è molto più complesso da configurare manualmente, in quanto richiede la generazione di firme digitali basate sui parametri della richiesta, un timestamp e un nonce (un numero casuale usato una sola volta). Fortunatamente, la maggior parte delle librerie di programmazione moderne gestisce la firma OAuth in modo automatico.

Risolvere i problemi comuni di credenziali e nonce

Anche seguendo tutte le procedure alla lettera, potresti imbatterti in problemi di autenticazione. Uno dei problemi più frequenti riguarda i server che utilizzano FastCGI. In queste configurazioni, il server Apache potrebbe rimuovere l’intestazione di autorizzazione prima che questa raggiunga WordPress. Il risultato è che WooCommerce non riceve le credenziali e blocca la richiesta.

Per risolvere questo specifico problema, è spesso necessario modificare il file .htaccess del tuo sito aggiungendo una regola specifica:
SetEnvIf Authorization “(.*)” HTTP_AUTHORIZATION=$1
Questa riga di codice istruisce il server a passare correttamente l’intestazione di autorizzazione all’applicazione PHP.

Un altro problema comune quando si usa OAuth su HTTP riguarda l’errore di “Invalid Nonce” o “Invalid Timestamp”. Questo accade solitamente se l’orologio del server che effettua la richiesta non è perfettamente sincronizzato con l’orologio del server che ospita WooCommerce. Assicurati che entrambi i sistemi utilizzino il protocollo NTP per mantenere l’ora esatta.

Testare le chiamate con postman woocommerce api

Prima di scrivere una singola riga di codice nel tuo gestionale o di configurare scenari complessi su piattaforme di automazione, è fondamentale testare il funzionamento degli endpoint. Il modo migliore per farlo è utilizzare un client API. In questo contesto, l’uso di postman per le woocommerce api rappresenta lo standard del settore. Postman è un software gratuito che ti permette di simulare richieste HTTP in un’interfaccia grafica intuitiva, analizzando le risposte del server in tempo reale.

Creare il primo ambiente di test per le richieste

Per mantenere il tuo lavoro organizzato, la prima cosa da fare su Postman è creare un “Environment” (Ambiente). Questo ti permette di salvare le tue credenziali come variabili, evitando di doverle incollare manualmente in ogni singola richiesta.

Ecco come impostare il tuo ambiente di lavoro:

  • Apri Postman e clicca su “Environments” nella barra laterale sinistra.
  • Crea un nuovo ambiente e chiamalo, ad esempio, “WooCommerce Staging”.
  • Aggiungi una variabile chiamata url e inserisci l’indirizzo del tuo sito seguito dal percorso base delle API (es. https://tuosito.it/wp-json/wc/v3).
  • Aggiungi una variabile consumer_key e incolla la chiave generata in precedenza.
  • Aggiungi una variabile consumer_secret e incolla il relativo segreto.

Una volta salvato l’ambiente, selezionalo dal menu a tendina in alto a destra. Ora puoi creare una nuova richiesta. Vai nella scheda “Authorization”, seleziona il tipo “Basic Auth” e inserisci le variabili {{consumer_key}} come username e {{consumer_secret}} come password. In questo modo, Postman gestirà l’autenticazione in automatico per tutte le tue chiamate.

Esempi pratici di request e response per gli endpoint

Proviamo a effettuare la nostra prima chiamata per recuperare la lista dei prodotti. Imposta il metodo della richiesta su GET e inserisci l’URL {{url}}/products. Cliccando su “Send”, se tutto è configurato correttamente, riceverai una risposta con status 200 OK.

Il corpo della risposta (Response Body) sarà un array in formato JSON contenente i dati dei tuoi prodotti. Vedrai informazioni dettagliate come l’ID del prodotto, il nome, lo slug, il prezzo di listino, il prezzo in saldo e lo stato del magazzino.

Se gestisci un modello di business basato su pagamenti ricorrenti, potresti voler interrogare endpoint specifici. Ad esempio, se utilizzi estensioni dedicate, puoi testare le chiamate per verificare lo stato dei rinnovi. Per approfondire come gestire questo tipo di prodotti, ti suggeriamo di leggere la nostra guida su come ottimizzare i pagamenti ricorrenti su WooCommerce.

Postman ti permette anche di testare la creazione di dati. Cambiando il metodo in POST e puntando sempre a {{url}}/products, puoi inserire un payload JSON nella scheda “Body” (selezionando l’opzione “raw” e il formato JSON) per creare un nuovo articolo. Basterà fornire parametri base come “name” e “regular_price” per vedere il prodotto apparire istantaneamente nel backend del tuo sito.

Sincronizzare il catalogo tramite le woocommerce rest api

Il vero potenziale delle rest api di woocommerce si esprime quando devi gestire cataloghi di grandi dimensioni. Mantenere allineati i dati tra il tuo e-commerce e il software gestionale di magazzino è vitale per evitare di vendere prodotti non disponibili o mostrare prezzi obsoleti. L’automazione di questo processo elimina l’errore umano e garantisce che i tuoi clienti vedano sempre informazioni aggiornate.

Creazione e aggiornamento dei prodotti in blocco

Quando devi aggiornare centinaia di prodotti, effettuare una singola chiamata API per ogni articolo è inefficiente. Sovraccaricherebbe il tuo server e richiederebbe troppo tempo. Per risolvere questo problema, WooCommerce mette a disposizione un endpoint specifico per le operazioni in blocco (batch operations).

L’endpoint da utilizzare è una richiesta POST verso /wp-json/wc/v3/products/batch. Questo strumento potentissimo ti permette di creare, aggiornare ed eliminare fino a 100 prodotti con una singola chiamata HTTP.

Il payload JSON che invierai dovrà essere strutturato con tre array principali: “create”, “update” e “delete”.
Se vuoi aggiornare il prezzo di due prodotti esistenti, il tuo JSON avrà questa struttura:

Azione Parametri richiesti nel JSON Risultato atteso
Update ID del prodotto, nuovo regular_price Aggiornamento del prezzo a listino
Update ID del prodotto, manage_stock: true, stock_quantity Aggiornamento delle giacenze

Utilizzare l’endpoint batch riduce drasticamente i tempi di sincronizzazione. È la soluzione ideale per i processi notturni che allineano il database dell’e-commerce con le giacenze fisiche del magazzino centrale.

Gestione avanzata delle scorte e delle variazioni

I prodotti semplici sono facili da gestire, ma la situazione si complica quando si ha a che fare con prodotti variabili, come l’abbigliamento (dove un articolo ha diverse taglie e colori). Nelle woocommerce rest api, le variazioni sono trattate come entità figlie del prodotto principale.

Per aggiornare la giacenza di una specifica taglia, non devi puntare all’ID del prodotto padre, ma all’ID della singola variazione. L’endpoint corretto sarà quindi un PUT verso /wp-json/wc/v3/products/{id_padre}/variations/{id_variazione}. Nel corpo della richiesta, invierai il parametro “stock_quantity” con il nuovo valore numerico.

Questa precisione è fondamentale anche per chi offre servizi o noleggi. Se il tuo business prevede la prenotazione di appuntamenti o attrezzature, la disponibilità deve essere aggiornata in tempo reale. A questo proposito, l’integrazione tramite API è essenziale per far funzionare correttamente sistemi complessi come quelli descritti nel nostro articolo dedicato a WooCommerce Booking, garantendo che non ci siano mai sovrapposizioni di orari.

Automatizzare la gestione degli ordini e dei clienti

Oltre al catalogo, il flusso degli ordini è il cuore pulsante di ogni e-commerce. Quando un cliente completa un acquisto, l’ordine deve essere processato, fatturato, imballato e spedito. Gestire questi passaggi manualmente richiede un dispendio di energie enorme. Le API permettono di connettere WooCommerce al tuo CRM, al software di fatturazione elettronica o al sistema del tuo partner logistico.

Recuperare i dati delle transazioni in tempo reale

Per estrarre gli ordini dal sistema, si utilizza una richiesta GET verso l’endpoint /wp-json/wc/v3/orders. Tuttavia, scaricare tutti gli ordini ogni volta è inutile. Le API offrono numerosi parametri per filtrare i risultati. Puoi richiedere, ad esempio, solo gli ordini creati dopo una certa data e ora (parametro “after”), oppure solo quelli che si trovano nello stato “processing” (parametro “status”).

Un tipico flusso di automazione prevede che un software esterno interroghi questo endpoint ogni 15 o 30 minuti per cercare nuovi ordini da elaborare. Sebbene questo metodo (chiamato polling) sia molto diffuso, per avere una reattività immediata è spesso preferibile utilizzare una tecnologia complementare che invia i dati nel momento esatto in cui l’ordine viene creato. Se ti interessa questo approccio proattivo, scopri come configurare i webhook su WooCommerce per notifiche in tempo reale.

Quando recuperi un ordine tramite API, il JSON di risposta conterrà ogni singolo dettaglio: i dati di fatturazione e spedizione del cliente, l’elenco degli articoli acquistati con i relativi ID, i totali delle tasse, i costi di spedizione e i metadati aggiuntivi (come la partita IVA o il codice fiscale inseriti in fase di checkout).

Modificare lo stato dell’ordine tramite chiamate esterne

L’automazione non si ferma alla lettura dei dati. Una volta che il tuo magazzino ha preparato il pacco e generato la lettera di vettura, il sistema logistico può comunicare direttamente con WooCommerce per chiudere l’ordine.

Questo avviene tramite una richiesta PUT verso /wp-json/wc/v3/orders/{id_ordine}. Nel payload JSON, è sufficiente inviare il parametro “status” impostato su “completed”. Questa singola chiamata API innesca una serie di reazioni a catena all’interno di WordPress: lo stato dell’ordine cambia, le statistiche di vendita si aggiornano e, soprattutto, WooCommerce invia in automatico l’email di conferma spedizione al cliente finale.

Inoltre, se utilizzi plugin per il tracciamento delle spedizioni, puoi sfruttare la stessa chiamata API per iniettare il nome del corriere e il tracking number direttamente nei metadati dell’ordine, offrendo un servizio clienti eccellente e totalmente automatizzato.

Best practice e debug per le rest api di woocommerce

Lavorare con le integrazioni di sistema richiede metodo e attenzione. Quando due software comunicano tra loro, gli imprevisti sono sempre dietro l’angolo: un aggiornamento del server, un calo di connessione o un dato formattato male possono interrompere il flusso di lavoro. Conoscere le best practice di sviluppo e sapere come effettuare il debug ti salverà da situazioni critiche.

Come analizzare gli errori tipici come il codice 401

Durante lo sviluppo o l’utilizzo quotidiano, potresti ricevere dei codici di errore HTTP. Saperli interpretare è la chiave per risolvere i problemi rapidamente. Il codice di errore più temuto e frequente è il 401 Unauthorized. Questo errore significa che il server ha ricevuto la richiesta, ma ha rifiutato di elaborarla perché le credenziali fornite non sono valide o mancano del tutto.

Se ti imbatti in un errore 401, verifica immediatamente questi punti:

  • Controlla di aver copiato correttamente la Consumer Key e la Consumer Secret, senza spazi vuoti all’inizio o alla fine.
  • Assicurati che l’utente associato alle chiavi API abbia i permessi necessari (se l’utente è stato declassato da Amministratore a Cliente, le chiamate falliranno).
  • Verifica che il tuo server stia forzando l’utilizzo del protocollo HTTPS. Se la chiamata viene fatta su HTTP, l’autenticazione Basic Auth viene bloccata.
  • Controlla le impostazioni del firewall del tuo hosting o di servizi come Cloudflare, che potrebbero bloccare le richieste API in entrata scambiandole per attacchi bot.

Un altro errore comune è il 400 Bad Request. Questo indica che l’autenticazione è andata a buon fine, ma i dati che hai inviato (il payload JSON) sono formattati male o mancano di parametri obbligatori. In questo caso, leggi attentamente il messaggio di risposta del server, perché WooCommerce ti indicherà esattamente quale campo ha generato il problema.

L’importanza degli ambienti di staging e del logging

La regola d’oro quando si lavora con le API è: non testare mai le nuove integrazioni direttamente sul sito in produzione. Un errore in un ciclo (loop) di chiamate API potrebbe cancellare l’intero catalogo o creare migliaia di ordini fittizi in pochi minuti.

Crea sempre un ambiente di staging, ovvero una copia esatta del tuo sito web su un server separato. Genera delle chiavi API specifiche per lo staging e usa questo ambiente per testare le tue chiamate con Postman o per far girare i tuoi script di prova. Solo quando sei assolutamente certo che tutto funzioni come previsto, cambia le credenziali e punta l’integrazione verso il sito live.

Infine, sfrutta i log. WooCommerce dispone di un sistema di registrazione degli eventi integrato. Andando su WooCommerce > Stato > Log, puoi visualizzare i file di testo che registrano gli errori fatali (fatal-errors) e le chiamate API. Se un’integrazione smette improvvisamente di funzionare, i log sono il primo posto dove guardare. Ti mostreranno l’ora esatta in cui si è verificato il problema e, spesso, la riga di codice o il conflitto che lo ha generato, permettendoti di intervenire in modo chirurgico e ripristinare l’automazione del tuo business.

Come posso generare le chiavi per utilizzare le REST API di WooCommerce?
Per iniziare a usare le REST API di WooCommerce, devi accedere al pannello di amministrazione del tuo sito WordPress. Vai su WooCommerce > Impostazioni > Avanzate > API REST. Da questa sezione puoi aggiungere una nuova chiave, assegnare una descrizione, selezionare l'utente e impostare i permessi corretti (lettura, scrittura o entrambi) per generare la Consumer Key e la Consumer Secret necessarie per le integrazioni.
Come funziona l'autenticazione delle API di WooCommerce in modo sicuro?
L'autenticazione delle API di WooCommerce dipende dal protocollo utilizzato dal tuo sito. Se il sito è in HTTPS (fortemente consigliato), puoi utilizzare l'autenticazione di base (Basic Auth). Se invece utilizzi HTTP, è necessario implementare il protocollo OAuth 1.0a per garantire la sicurezza dei dati in transito. Gestire correttamente questi protocolli è fondamentale per evitare i comuni problemi di credenziali e blocchi di sicurezza.
Qual è il modo migliore per testare gli endpoint prima di creare un'automazione?
Il metodo più efficace è utilizzare Postman per le API di WooCommerce. Creando un ambiente di test dedicato su Postman, puoi inserire le tue chiavi API e simulare facilmente richieste GET, POST o PUT. Questo ti permette di analizzare le risposte (response) in tempo reale e verificare che i dati di prodotti o ordini vengano trasmessi correttamente prima di collegare strumenti di automazione come Make.com.
È possibile aggiornare i prodotti e le scorte in blocco tramite le WooCommerce REST API?
Assolutamente sì. Le WooCommerce REST API offrono endpoint specifici per le operazioni in blocco (batch). Questo ti permette di creare, aggiornare o eliminare decine di prodotti in una singola chiamata. È una funzione essenziale per sincronizzare cataloghi complessi, gestire le variazioni di prodotto e mantenere le scorte sempre allineate con il tuo gestionale ERP o CRM aziendale.
Cosa significa l'errore 401 e come posso risolverlo?
L'errore 401 (Unauthorized) indica un problema di autorizzazione durante la chiamata API. Solitamente si verifica quando le chiavi inserite sono errate, l'utente non ha i permessi di lettura/scrittura adeguati, oppure il server blocca le intestazioni di autorizzazione. Per risolvere, verifica le credenziali, controlla le impostazioni del server e utilizza sempre un ambiente di staging per fare debug in sicurezza analizzando i log.
Mostra altre 2 FAQ