Come impostare un minimo d’ordine per categoria in WooCommerce
08/05/25
3 minuti

Come impostare un minimo d’ordine per categoria in WooCommerce

Hai mai voluto applicare un minimo d’ordine solo per certe categorie prodotto nel tuo e-commerce WooCommerce? Ad esempio: vuoi che i clienti possano acquistare vino o liquori solo se raggiungono almeno 100€ di spesa? Bene, sei nel posto giusto.

In questo articolo ti spiego come farlo con un semplice snippet PHP, pronto da copiare e incollare, senza bisogno di plugin esterni. Ti guiderò passo passo per capire come funziona e anche come personalizzarlo in base alle tue esigenze.

Perché limitare il minimo d’ordine per categoria in WooCommerce

In molti casi, applicare un minimo d’ordine generale a tutto il carrello può risultare troppo rigido o controproducente. Ma quando si parla di categorie specifiche come vino o liquori, un minimo può avere molto senso, soprattutto per questioni di margini di profitto, spese di spedizione o regolamentazioni particolari (come l’alcol).

Vantaggi per la gestione di prodotti specifici

  • Proteggi la redditività: alcuni prodotti a basso costo non sono convenienti da spedire in piccole quantità.
  • Eviti ordini poco sensati: un cliente che ordina solo una bottiglia da 5€ può costarti più in imballaggio e logistica di quanto ti fa guadagnare.
  • Migliori la gestione del magazzino: incentivando ordini più consistenti, riduci le spedizioni frammentate.

Quando è utile usare questa logica (esempi: vino e liquori)

Immagina uno shop che vende prodotti alimentari e alcolici. Ha senso applicare una soglia minima di 100€ solo quando nel carrello ci sono articoli delle categorie “vino” o “liquori”.
Se invece il cliente acquista solo pasta, olio o biscotti, allora nessun minimo viene imposto.

Snippet PHP per minimo d’ordine condizionato in WooCommerce

Ecco il cuore dell’articolo: lo snippet PHP che ti permette di applicare un minimo d’ordine solo quando nel carrello ci sono prodotti di certe categorie, come ad esempio vino o liquori.

add_action('woocommerce_checkout_process', 'minimo_ordine_condizionato_per_categoria');
add_action('woocommerce_before_cart', 'minimo_ordine_condizionato_per_categoria');

function minimo_ordine_condizionato_per_categoria() {
    $categorie_target = ['vino', 'liquori']; // Slug delle categorie, lo prendi dalle categorie di Woocommerce
    $trovata_categoria = false;

    // Verifica se nel carrello è presente una delle categorie nell'array $categorie_target
    foreach (WC()->cart->get_cart_contents() as $item) {
        $product = $item['data'];
        if (has_term($categorie_target, 'product_cat', $product->get_id())) {
            $trovata_categoria = true;
            break;
        }
    }

    // Se la categoria è presente, controlla il minimo d'ordine
    if ($trovata_categoria) {
        $minimo = 100;
        $totale = WC()->cart->get_displayed_subtotal(); // Totale visibile (tasse incluse se è stato configurato così)
        
        if ($totale < $minimo) {
            wc_add_notice(
                sprintf('Per acquistare prodotti della categoria selezionata è necessario un ordine minimo di €%s. Il tuo totale attuale è di €%s.', number_format($minimo, 2, ',', '.'), number_format($totale, 2, ',', '.')),
                'error'
            );
        }
    }
}

Dove inserire lo snippet nel tema WordPress

Hai due opzioni:

  1. Nel file functions.php del tuo tema (o meglio, tema child).
  2. Usa un plugin come “Code Snippets per gestire il codice in modo sicuro, senza modificare i file del tema.

🔒 Consiglio: lavora sempre su un tema child, così non perdi le modifiche con gli aggiornamenti del tema.

Come funziona lo snippet per minimo d’ordine per categoria

Vediamo nel dettaglio cosa succede “dietro le quinte”.

Controllo delle categorie nel carrello

Lo snippet scorre il carrello e verifica se uno o più prodotti appartengono a una delle categorie specificate (vino, liquori).
Se sì, attiva il controllo sul minimo d’ordine.

Verifica del totale e messaggio d’errore

Se nel carrello ci sono prodotti delle categorie target ma il totale è inferiore a 100€, WooCommerce mostra un messaggio di errore e blocca il checkout, fino al raggiungimento della soglia.

Personalizzazioni utili dello snippet

Lo snippet è pensato per essere semplice ma flessibile. Ecco come puoi modificarlo.

Modificare le categorie target

Basta cambiare gli slug:

$categorie_target = ['birra-artigianale', 'champagne'];

Cambiare l’importo minimo d’ordine

Modifica la riga:

$minimo = 100;

Puoi impostare qualsiasi valore, ad esempio 50, 200 o quello che preferisci.

💡 Vuoi soglie diverse per ogni categoria? Si può fare con un array e qualche riga in più di codice.


Conclusione: gestisci ordini in modo intelligente con WooCommerce

Come hai visto, bastano poche righe di codice per ottenere una funzionalità davvero utile: un minimo d’ordine condizionato solo per certe categorie.

Questa logica ti permette di:

✅ Aumentare la redditività
✅ Automatizzare regole commerciali
✅ Offrire un’esperienza utente chiara

Puoi personalizzare lo snippet in base al tuo shop, e tutto funziona senza plugin esterni.


Hai bisogno di un E-Commerce che funziona davvero?
Contattami Ora!