Hai bisogno di un E-Commerce che funziona davvero?
Contattami Ora!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:
- Nel file
functions.php
del tuo tema (o meglio, tema child). - 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.