Gestire un negozio online è costoso, e chi ne possiede uno deve spesso occuparsi di molti processi manuali. L’API REST di WooCommerce semplifica questo flusso di lavoro, consentendo di controllare le piattaforme di ecommerce e di gestire e scalare i negozi WooCommerce in modo programmatico.

Eseguire integrazioni, automatizzare ed estendere le funzionalità del proprio negozio online è un’operazione semplice con l’API REST di WooCommerce. Risparmierete risorse e tempo, che potrete utilizzare per ottimizzare ulteriormente i vostri processi. Ciò vi permetterà anche di personalizzare l’aspetto del negozio con applicazioni esterne flessibili.

Questo articolo offre un’analisi completa dell’API REST di WooCommerce, consentendo di automatizzare e migliorare in modo programmatico le operazioni di e-commerce. Fornisce approfondimenti pratici, casi d’uso ed esempi di codice per facilitare l’integrazione e la personalizzazione dei negozi WooCommerce.

Prerequisiti

Per iniziare a usare l’API REST di WooCommerce, è necessario avere:

  • WooCommerce versione 3.5 o superiore.
  • WordPress versione 4.4 o superiore.
  • Postman o Insomnia per testare e interagire con le API.

Come iniziare con l’API REST di WooCommerce

Per iniziare, dobbiamo creare un sito WordPress e poi generare le credenziali API all’interno di WooCommerce.

Creare un sito WordPress con Kinsta

Se non avete già un sito WordPress, potete crearne uno facilmente dalla dashboard MyKinsta.

  1. Accediamo all’account MyKinsta e clicchiamo su Siti WordPress nella barra laterale sinistra.
  2. Dal menu a tendina Aggiungi sito, selezioniamo l’opzione Crea un nuovo sito, quindi passiamo alla pagina successiva, dove potremo scegliere l’opzione Installa WordPress e cliccare su Continua.
  3. Inseriamo il nome del sito e la posizione del data center in Opzioni del sito e clicchiamo su Continua.
  4. Nella scheda successiva, inseriamo il titolo del sito e le credenziali di amministrazione. Selezioniamo una lingua e selezioniamo la casella Installa WooCommerce per installare il plugin WooCommerce.

    Creare un sito con MyKinsta e installare WooCommerce
    Creazione di un sito WordPress e installazione di WooCommerce.

  5. Clicchiamo su Continua. Questo avvia la creazione del sito e invia una notifica all’indirizzo e-mail dell’amministratore WordPress una volta completata l’operazione. Assicuriamoci di memorizzare il nome utente e la password dell’amministratore di WordPress in un luogo sicuro.

Generare le credenziali API in WooCommerce

Per generare le credenziali API di WooCommerce, seguiamo questi passaggi:

  1. Accediamo alla dashboard di WordPress, selezioniamo Plugin > Plugin installati dalla barra laterale e attiviamo il plugin WooCommerce.
  2. Dopo aver attivato il plugin, selezioniamo WooCommerce > Impostazioni. Poi clicchiamo sulla scheda Avanzate per accedere alla pagina delle impostazioni avanzate di WooCommerce.
  3. Successivamente, clicchiamo su REST API.

    La finestra delle impostazioni di WooCommerce
    Pagina delle credenziali della chiave API.

  4. Clicchiamo su Crea una chiave API o Aggiungi chiave per generare una chiave API.
  5. Successivamente, verrà richiesto di inserire i dettagli della chiave. Si tratta di descrizione, utente e permessi. Inseriamo la descrizione della chiave, modifichiamo l’utente se necessario e selezioniamo Lettura/Scrittura per i permessi.

    La finestra dei dettagli della chiave. Vengono aggiunti la descrizione, l'utente e le autorizzazioni
    Generare le credenziali della chiave API.

  6. Clicchiamo su Genera chiave API. Con le chiavi API generate, potremo accedere e gestire i dati del negozio in modo programmatico. Prendiamo nota della chiave e del segreto del consumatore, perché li utilizzeremo nella prossima sezione per effettuare le richieste API.

    La finestra dei dettagli della chiave visualizza un messaggio: Chiave API generata con successo. Assicurarsi di copiare le nuove chiavi ora, poiché la chiave segreta sarà nascosta una volta lasciata questa pagina.
    Credenziali della chiave API generata.

L’architettura dell’API REST di WooCommerce

L’API di WooCommerce si basa su un’architettura REST. Questo permette di leggere ed eseguire operazioni di scrittura sui dati di WooCommerce, come ordini, prodotti e clienti, inviando richieste tramite i metodi appropriati (GET, POST, PUT, DELETE) all’endpoint.

Un endpoint è composto dai metodi di richiesta e da un URL standard. Con un endpoint, possiamo utilizzare lo strumento che abbiamo scelto (Postman o Insomnia) per accedere a diversi dati memorizzati.

Recuperare un elenco di prodotti

Prima di recuperare l’elenco dei prodotti, assicuriamoci di averne aggiunti alcuni al negozio. Dobbiamo cambiare la struttura dei permalink in qualcosa di diverso da Semplice.

Clicchiamo su Impostazioni > Permalink dalla barra laterale e modifichiamo la struttura dei permalink. Se non effettuiamo questa modifica, l’endpoint URL standard non funzionerà come dovrebbe. Clicchiamo su Salva le modifiche.

Successivamente, apriamo Postman e aggiungiamo una nuova richiesta. Nella sezione URL, utilizziamo https://<yourdomain>/wp-json/wc/v3/products. Assicuriamoci di sostituire <yourdomain> con il dominio del sito WooCommerce.

Nella scheda Autorizzazione, selezioniamo Autorizzazione di base e inseriamo la chiave del consumatore come nome utente e il segreto del consumatore come password. Dovremo aggiungere questa autorizzazione a ogni richiesta che faremo all’API REST di WooCommerce. Inviamo la richiesta e riceveremo un elenco di tutti i prodotti del negozio.

Inviare una richiesta GET su postman con l'autenticazione di base evidenziata
Recupero di un elenco di prodotti in Postman.

Gestire i prodotti tramite l’API REST

L’oggetto prodotto ha un elenco di attributi che rendono semplice il raggruppamento dei prodotti, la gestione delle giacenze e l’impostazione dei prezzi, il tutto in modo programmatico.

Supponiamo di voler aggiungere un nuovo prodotto a un gruppo di prodotti che abbiamo creato: tutto ciò che serve è l’ID del gruppo di prodotti nell’attributo grouped_products.

Per gestire le giacenze, usiamo gli attributi manage_stock e stock_status, che sono impostati rispettivamente su true o false e instock, onbackorder e outofstock.

Vediamo come aggiungere e aggiornare i dettagli di un prodotto esistente.

Aggiungere un prodotto con l’API di WooCommerce

  1. In Postman, aggiungiamo una nuova richiesta e cambiamo il metodo di richiesta in POST. Riutilizziamo l’URL dell’endpoint utilizzato nella sezione precedente. Clicchiamo sulla scheda Body, selezioniamo raw e scegliamo JSON come formato del body. Il payload JSON contiene il nome del prodotto, il tipo (semplice, variabile o raggruppato), la descrizione e la descrizione breve. Inoltre contiene categorie, tag e immagini che possiamo aggiungere se necessario.
    {
     "name": "iPhone 15 Pro Max",
     "type": "simple",
     "description": "",
     "short_description": "",
     "categories": [
     ],
     "tags": [],
     "images": []
    }
  2. Eseguiamo la richiesta. Se il prodotto viene creato con successo, dovremmo ricevere un oggetto prodotto come risposta. Prendiamo nota dell’ID del prodotto, perché ci servirà nella prossima sezione.

    Inviare una richiesta POST su postman per creare un nuovo prodotto
    Creare un prodotto.

Modificare un prodotto con WooCommerce API

Modifichiamo il record appena creato.

  1. Nella scheda Body, aggiungiamo questo body JSON:
    {
      "name": "iPhone 15 Pro"
    }

    Poiché stiamo aggiornando solo il campo name, non è necessario includere altri attributi. In questo caso, cambiamolo in “iPhone 15 Pro”. L’URL dell’endpoint dovrebbe essere https://yourdomain/wp-json/wc/v3/products/<id>.

  2. Sostituiamo id con l’ID del prodotto creato nella sezione precedente. Non dimentichiamo di cambiare il metodo di richiesta in PUT. Eseguiamo la richiesta e dovremmo ricevere un oggetto prodotto come risposta. Possiamo controllare il nome del prodotto nella risposta per confermare l’avvenuto aggiornamento.

    Invio di una richiesta PUT per modificare le informazioni di un prodotto
    Modifica di un prodotto.

Gestione degli ordini con l’API REST

L’API REST di WooCommerce facilita l’automatizzazione dell’elaborazione degli ordini, consentendo di recuperare senza problemi gli ordini e di aggiornarne lo stato. Permette di recuperare programmaticamente gli ordini, di filtrarli in base a vari criteri come la data, lo stato o il cliente e di elaborarli in modo efficiente.

Questo include l’aggiornamento degli stati degli ordini per riflettere le varie fasi di evasione o di elaborazione. L’API REST di WooCommerce garantisce poi un’accurata tracciabilità e comunicazione con i clienti. Inoltre, è possibile gestire i rimborsi tramite l’API, tra cui la gestione delle richieste di rimborso, l’elaborazione automatica dei rimborsi e l’aggiornamento dello stato degli ordini (dopo i rimborsi).

Vediamo come recuperare gli ordini recenti e aggiornare lo stato di un ordine a “completato”.

Recuperare gli ordini recenti con l’API di WooCommerce

  1. In Postman, aggiungiamo una nuova richiesta per recuperare gli ordini utilizzando una richiesta GET. L’URL dell’endpoint deve essere il seguente:
    https:///wp-json/wc/v3/orders
  2. Nella scheda Params, inseriamo la chiave after e il valore della data di creazione degli ordini. In questo caso, usiamo 2024-03-08T00:00:00. Possiamo modificare questa data in base alle nostre esigenze. In questo modo potremo filtrare gli ordini solo per quelli successivi a una determinata data. Lasciamo le altre impostazioni di Postman come predefinite.
  3. Assicuriamoci di aver effettuato qualche ordine nel negozio WooCommerce per evitare di ricevere un elenco vuoto. Eseguiamo la richiesta e otterremo un elenco di tutti gli ordini effettuati nel negozio che corrispondono ai criteri specificati.

    La finestra di Postman mostra la richiesta GET. In evidenza è GET con l'endpoint URL. Sotto c'è la scheda Params attiva con gli input after e 2024-03-08T00:00:00 selezionati ed evidenziati. Sotto c'è la scheda Body attiva che restituisce un array di JSON.
    Recuperare gli ordini recenti dopo una certa data.

Aggiornare lo stato dell’ordine

Per aggiornare lo stato dell’ordine, prendiamo l’ID di un ordine che abbiamo già effettuato. Aggiungiamo una nuova richiesta in Postman e cambiamo la richiesta in PUT. Usiamo questo endpoint per l’aggiornamento: https://yourdomain/wp-json/wc/v3/orders/<existing-order-id>. Nella scheda Body, aggiungiamo questo body JSON:

{
  "status": "completed"
}

Eseguiamo la richiesta e dovremmo ricevere una risposta con l’ordine contrassegnato come completato.

La finestra di Postman mostra la richiesta PUT. È evidenziata una PUT con l'endpoint URL. Sotto c'è la scheda Body attiva con l'opzione raw selezionata e il menu a tendina JSON selezionato.
Aggiornare lo stato dell’ordine.

Gestione ed engagement dei clienti

Attraverso l’API REST di WooCommerce, le aziende possono creare in modo efficiente nuovi profili di clienti, modificare i dettagli dei clienti esistenti e recuperare informazioni complete come la cronologia degli acquisti e le preferenze.

Analizzando queste informazioni, possono personalizzare le strategie di marketing, offrendo promozioni mirate, consigli sui prodotti e premi fedeltà in base ai comportamenti di acquisto individuali.

Questo livello di gestione dei dati dei clienti consente alle aziende di costruire relazioni più solide con i clienti, di aumentarne la soddisfazione e di incentivare gli acquisti ripetuti.

Aggiungere un cliente con WooCommerce API

  1. Inviamo una richiesta POST a questo URL endpoint: https://<yourdomain>/wp-json/wc/v3/customers. Non dimentichiamo di includere l’autorizzazione come abbiamo fatto in precedenza.
  2. Nella scheda Body, utilizziamo questo oggetto JSON per creare un cliente:
    {
      "email": "[email protected]",
      "first_name": "Brian",
      "last_name": "Abraham",
      "role": "customer",
      "username": "briann.abraham",
      "billing": {
        "first_name": "Brian",
        "last_name": "Abraham",
        "company": "",
        "address_1": "969 Market",
        "address_2": "",
        "city": "San Francisco",
        "state": "CA",
        "postcode": "94103",
        "country": "US",
        "email": "[email protected]",
        "phone": "(555) 555-5555"
      },
      "shipping": {
        "first_name": "Brian",
        "last_name": "Abraham",
        "company": "",
        "address_1": "969 Market",
        "address_2": "",
        "city": "San Francisco",
        "state": "CA",
        "postcode": "94103",
        "country": "US"
      }
    }

    L’oggetto JSON contiene i dati di base del cliente, come l’email, il nome, il ruolo e il nome utente. Inoltre, fornisce informazioni sulla fatturazione e sulla spedizione, tra cui l’indirizzo, la posizione e il numero di telefono del cliente.

  3. Eseguiamo la richiesta e riceveremo una risposta contenente l’oggetto cliente. Mettiamo da parte l’ID del cliente, che useremo nella prossima sezione per recuperare un cliente.

Recuperare un cliente per ID con WooCommerce API

Recuperiamo l’utente appena creato tramite il suo ID.

  1. Creiamo una nuova richiesta con il metodo di richiesta GET.
  2. Usiamo lo stesso URL endpoint, https://<yourdomain>/wp-json/wc/v3/customers/<existing-customer-id> e aggiungiamo l’ID del cliente che vogliamo recuperare.

Casi d’uso avanzati dell’API REST di WooCommerce

Oltre alla gestione delle risorse del negozio, possiamo utilizzare l’API REST di WooCommerce per altre attività complesse, come l’integrazione con il CRM, l’automazione della gestione dell’inventario e le statistiche e i report personalizzati.

L’integrazione del negozio WooCommerce nel CRM di nostra scelta tramite l’API REST fa sì che ogni volta che viene aggiunto un cliente, questo venga immediatamente visualizzato nel cruscotto del CRM come lead. In questo modo è facile gestire la sincronizzazione delle informazioni sui clienti e lo storico degli ordini.

Le API REST consentono anche la gestione automatizzata dell’inventario. Integrando la gestione dell’inventario esterno, possiamo ottenere una visibilità in tempo reale delle giacenze e della disponibilità dei prodotti. Questo vale anche per i report e le statistiche personalizzate.

Con le API REST di WooCommerce possiamo creare funzioni di reportistica che permettono di avere una visione d’insieme, aiutandoci a prendere decisioni, identificare tendenze e fare previsioni.

Ecco un frammento di codice per sincronizzare i dati dei clienti di WooCommerce con una piattaforma CRM:

<?php
require __DIR__ . '/vendor/autoload.php';

use Automattic\WooCommerce\Client;

$woocommerce = new Client(
  'https://', // Your store URL
  'consumer_key', // Your consumer key
  'consumer_secret', // Your consumer secret
    [
      'version' => 'wc/v3' // WooCommerce WP REST API version
    ]
);

// CRM API endpoint and key
$crm_api_url = 'https://your-crm-api-url/api';
$crm_api_key = 'YOUR_CRM_API_KEY';

try {
// fetch customers from woocommerce store
  $customers = $woocommerce->get('customers');

  // Initialize cURL
  $ch = curl_init();

  // Check if cURL initialization succeeded
  if ($ch === false) {
    throw new Exception('Failed to initialize cURL');
  }

  foreach ($customers as $customer) {
    $crm_customer_data = array(
      'first_name' => $customer->first_name,
      'last_name' => $customer->last_name,
      'email' => $customer->email,
      // Other fields
    );

    // cURL options
    curl_setopt($ch, CURLOPT_URL, $crm_api_url . '/customers');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($crm_customer_data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Authorization: Bearer ' . $crm_api_key,
      'Content-Type: application/json',
    ));

    // Execute cURL request
    $crm_response = curl_exec($ch);

    // Check for cURL errors
    if ($crm_response === false) {
      throw new Exception('cURL error: ' . curl_error($ch));
    }

    // Check HTTP status code
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($http_code !== 200) {
      throw new Exception('Failed to sync customer data with CRM: ' . $http_code);
    }

    echo 'Customer data synced with CRM successfully.';
  }

  curl_close($ch);

} catch (Exception $e) {
  echo 'Error: ' . $e->getMessage();
}

Si tratta di uno snippet di codice PHP che prima stabilisce una connessione all’API REST di WooCommerce e poi recupera i clienti dal negozio WooCommerce. Infine, li invia al CRM utilizzando cURL. Il codice incorpora una gestione degli errori per gestire i fallimenti del flusso. Utilizza una libreria PHP chiamata automattic/woocommerce, che possiamo installare con Composer.

Il CRM utilizzato è a scopo dimostrativo per mostrare un approccio generale alla sincronizzazione dei dati dei clienti con qualsiasi CRM.

Riepilogo

L’API REST di WooCommerce permette di gestire in modo programmatico i dati del negozio, di migliorare l’esperienza dell’e-commerce e di estendere le funzionalità del negozio online. Questo potente strumento trasforma una configurazione di base di WordPress in una piattaforma più sofisticata.

Per iniziare, installate il plugin WooCommerce nella vostra applicazione WordPress e cominciate a familiarizzare con l’API REST utilizzando gli esempi forniti in questo tutorial. Questi serviranno come base per le vostre soluzioni personalizzate.

La velocità è fondamentale per i siti di e-commerce; tempi di caricamento più rapidi migliorano l’esperienza di acquisto. L’API di WooCommerce consente di effettuare richieste multiple dal front-end al back-end di WordPress, evidenziando l’importanza di prestazioni ottimali del back-end.

Scegliere un provider di hosting WooCommerce di alta qualità, come Kinsta, è fondamentale per le prestazioni del sito web. Scoprite come migliorare la velocità del negozio WooCommerce con la nostra guida completa.

Cosa ne pensate dell’API di WooCommerce? L’avete già utilizzata? Condividetelo con noi nella sezione commenti qui sotto.

Jeremy Holcombe Kinsta

Content & Marketing Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems ;).