Wo WooCommerce Principiante

DataFirefly Inflation Pricing per WooCommerce

Aumentare in massa i prezzi WooCommerce mantenendo prezzi psicologici come 59, 89 o 569.

Aggiornato Versione del modulo 1.0.0

Cosa fa il plugin

DataFirefly Inflation Pricing applica una percentuale a tutto il catalogo WooCommerce o a una sua parte, poi riporta ogni prezzo ottenuto su una scala di prezzi psicologici che definisci tu. Un aumento del 3 % su un prodotto da 59 non dà 60,77 ma 60,90, oppure 69 se preferisci numeri interi che finiscono con 9.

Il percorso completo si svolge in tre tempi: descrivi l’ambito e la percentuale, il plugin calcola tutti i nuovi prezzi e te li presenta in una tabella, poi confermi. Nulla viene scritto nel database prima di questa conferma, e ogni prezzo precedente viene conservato per permettere l’annullamento.

Installazione

  1. Scarica l’archivio ZIP dal tuo account cliente DataFirefly.
  2. Nell’amministrazione WordPress vai su Plugin, poi Aggiungi nuovo plugin, e clicca su Carica plugin.
  3. Seleziona il file ZIP, installalo e attivalo.
  4. Un nuovo menu compare sotto WooCommerce, Inflation Pricing.

L’attivazione crea due tabelle: wp_df_inflation_campaigns per le campagne e wp_df_inflation_items per le righe di prezzo. Il prefisso segue quello della tua installazione.

Requisiti: WordPress 5.8 o superiore, WooCommerce 6.0 o superiore, PHP 7.4 o superiore. Il plugin dichiara la compatibilità con HPOS e con i blocchi carrello e checkout all’avvio.

Le tre schermate

Nuova campagna

È la schermata di lavoro principale. Raccoglie tre schede: Aumento, Ambito e Arrotondamento. Qui costruisci la campagna e avvii l’anteprima.

Storico

L’elenco di tutte le campagne con il loro stato. Da questa pagina consulti il dettaglio riga per riga di una campagna, applichi una campagna rimasta in attesa, annulli una campagna applicata o elimini una campagna non più utile.

Regole di arrotondamento

Le impostazioni globali: fasce di arrotondamento, verso, garanzia di aumento, base di calcolo IVA inclusa o esclusa, dimensione dei lotti, comportamento alla disinstallazione. Un simulatore in fondo alla pagina mostra il risultato su prezzi di esempio.

Capire le fasce di arrotondamento

Una fascia si definisce con tre valori:

  • Si applica fino a: il limite superiore della fascia di prezzo interessata. Il valore 0 significa nessun limite, e indica quindi la fascia che tratta tutti i prezzi al di sopra delle altre.
  • Passo: la distanza tra due prezzi possibili.
  • Terminazione: lo scostamento applicato a questa distanza.

Il prezzo finale equivale sempre al passo moltiplicato per un intero, più la terminazione. Alcuni esempi:

  • Passo 10, terminazione 9 dà 9, 19, 29, 59, 89, 569, 899
  • Passo 1, terminazione 0,90 dà 9,90, 14,90, 60,90, 99,90
  • Passo 5, terminazione 4 dà 24, 29, 124, 129, 134
  • Passo 0,50, terminazione 0,40 dà 4,40, 4,90, 9,40, 9,90
  • Passo 100, terminazione 99 dà 599, 1299, 2499

La terminazione deve restare inferiore al passo, altrimenti non ha più effetto visibile. Un passo di 1 con terminazione 9 produce semplicemente tutti gli interi.

La fascia viene scelta sul prezzo di partenza

Per evitare che un prodotto appena sotto un limite finisca in una fascia molto più grossolana, la fascia usata è quella del prezzo attuale del prodotto, non quella del prezzo calcolato. Un articolo da 19,90 resta quindi trattato dalla fascia dei prezzi bassi anche se l’aumento lo porta sopra 20.

Il compromesso tra leggibilità e precisione

È il punto più importante da capire prima di lanciare una campagna. Più la scala di arrotondamento è grossolana, più la variazione reale si allontana dalla percentuale richiesta.

Prendiamo un aumento del 3 % su un prodotto da 59. Il prezzo grezzo calcolato è 60,77. A seconda della scala scelta:

  • Passo 1, terminazione 0,90 dà 60,90, cioè +3,2 %
  • Passo 5, terminazione 4 dà 64, cioè +8,5 %
  • Passo 10, terminazione 9 dà 69, cioè +16,9 %

Nessun plugin può aggirare questa aritmetica: se pretendi prezzi interi che finiscono con 9, la distanza minima tra due prezzi è 10, che a 59 rappresenta il 17 %. Il plugin non nasconde questo fatto, lo rende visibile prima della scrittura grazie al simulatore, alla colonna Variazione dell’anteprima e al tetto per campagna.

Una regola semplice: il passo deve restare piccolo rispetto ai prezzi della fascia. Un passo di 1 su prezzi tra 20 e 100 produce scarti dall’1 al 5 %, coerenti con un’inflazione annuale. Un passo di 10 sulla stessa fascia no.

Le preimpostazioni

Cinque preimpostazioni riempiono la tabella delle fasce con un clic dalla scheda Regole di arrotondamento.

  • Equilibrata: l’impostazione predefinita. Fino a 10 passo 0,50 terminazione 0,40, fino a 100 passo 1 terminazione 0,90, fino a 300 passo 5 terminazione 4, oltre passo 10 terminazione 9. La variazione reale resta tra il 2 e il 5 % per un obiettivo del 3 %.
  • Interi che finiscono con 9: fino a 100 e oltre, passo 10 terminazione 9. Ottieni esattamente 59, 89, 569, 899. Gli scarti sui prezzi bassi sono importanti.
  • Interi che finiscono con 4 o 9: passo 5 terminazione 4 sotto 100, passo 10 terminazione 9 oltre. Un compromesso diffuso nel retail.
  • Decimali che finiscono con ,90: passo 1 terminazione 0,90 sotto 100, passo 10 terminazione 9,90 oltre.
  • Nessun arrotondamento psicologico: passo 0,01 terminazione 0. La percentuale viene applicata al centesimo.

Le preimpostazioni sono solo un punto di partenza. Puoi aggiungere, togliere o modificare le fasce liberamente e poi salvare.

Verso dell’arrotondamento e garanzia di aumento

Verso

  • Prezzo psicologico più vicino: il comportamento consigliato. Il prezzo calcolato si sposta sul valore più vicino della sua fascia, sopra o sotto.
  • Sempre verso l’alto: il prezzo sale sistematicamente al valore successivo. I margini sono protetti ma gli aumenti reali superano spesso l’obiettivo.
  • Sempre verso il basso: il prezzo scende al valore inferiore. Da riservare alle riduzioni di prezzo.

Garanzia di aumento

Con il verso al più vicino, una percentuale piccola può essere interamente assorbita dall’arrotondamento. Un aumento del 3 % su 59 dà 60,77, e il prezzo più vicino su una scala con passo 10 resta 59: il prezzo non si muove.

L’opzione Non lasciare mai che l’arrotondamento annulli l’aumento corregge questo caso spingendo al valore successivo finché il risultato resta uguale o inferiore al prezzo di partenza. Agisce solo sulle percentuali positive. Per una riduzione di prezzo, disattivala.

Arrotondamento sul prezzo IVA inclusa o sul prezzo memorizzato

WooCommerce memorizza i prezzi al netto o IVA inclusa a seconda dell’impostazione Inserisci i prezzi con le tasse. Se il tuo negozio memorizza prezzi netti e mostra prezzi IVA inclusa, arrotondare il valore memorizzato non produce nulla di leggibile per il cliente: 49,17 netto con IVA al 20 % dà 59,00 IVA inclusa, mentre 49,00 dà 58,80.

L’impostazione Arrotonda su propone due comportamenti:

  • Il prezzo visto dal cliente, IVA inclusa: il plugin converte il prezzo memorizzato secondo la classe fiscale del prodotto, applica l’arrotondamento su quel valore, poi riconverte con quattro decimali prima di salvare. È l’impostazione predefinita.
  • Il prezzo memorizzato: l’arrotondamento si applica direttamente al valore salvato nel database, senza conversione.

Se il tuo negozio memorizza già prezzi IVA inclusa, o se le tasse sono disattivate, le due impostazioni danno lo stesso risultato. I prodotti contrassegnati come non imponibili non subiscono alcuna conversione.

Costruire una campagna

Scheda Aumento

  • Nome della campagna: facoltativo, se lo lasci vuoto viene generato un nome con data e ora.
  • Percentuale: positiva per un aumento, negativa per una riduzione. Sono accettati due decimali.
  • Prezzi in offerta: vedi la sezione dedicata più avanti.
  • Ignora un prodotto se la variazione reale supera X %: la protezione principale. Con un obiettivo del 3 % e un tetto del 6 %, ogni prodotto il cui arrotondamento produrrebbe un aumento superiore al 6 % viene escluso dalla campagna, con il motivo indicato nell’anteprima. Lascia il campo vuoto per disattivare questo controllo.

Scheda Ambito

  • Categorie da includere: lascia vuoto per trattare tutto il catalogo. Le sottocategorie delle categorie scelte sono incluse automaticamente.
  • Categorie da escludere: prioritaria sull’inclusione, sottocategorie comprese.
  • Tag: limita ai prodotti che portano uno dei tag selezionati.
  • Tipi di prodotto: semplice, variabile, esterno, raggruppato. Selezionare variabile tratta le variazioni, non il prodotto padre che non ha un prezzo proprio.
  • Stato dei prodotti: pubblicato, bozza, privato, in attesa. Per le variazioni viene valutato lo stato del prodotto padre.
  • Prezzo di listino compreso tra: due limiti facoltativi valutati sul prezzo di listino salvato.
  • Ignora i prodotti attualmente in offerta: esclude i prodotti con un prezzo in offerta impostato.
  • Escludi questi ID o SKU e Limita a questi ID o SKU: elenchi liberi separati da virgole, spazi o a capo. Gli SKU vengono risolti in identificativi al momento della selezione. Su un prodotto variabile, indicare l’ID del padre copre tutte le sue variazioni.

Scheda Arrotondamento

Per impostazione predefinita la campagna usa le regole globali, richiamate in cima alla scheda. Seleziona Sostituisci le regole globali per questa campagna per modificare il verso, la garanzia di aumento e la base di calcolo solo per questa campagna. Le fasce restano quelle delle impostazioni globali.

La casella Durante l’annullamento, ignora i prodotti modificati dopo l’applicazione determina il comportamento del rollback. Lasciala selezionata nella stragrande maggioranza dei casi.

I prezzi in offerta

Sono proposti quattro modi. Si applicano solo ai prodotti che hanno realmente un prezzo in offerta impostato.

  • Ricalcolare mantenendo lo stesso tasso di sconto: il modo predefinito. Un prodotto da 100 mostrato a 80 conserva il suo sconto del 20 % dopo l’aumento. Anche il nuovo prezzo in offerta passa dall’arrotondamento.
  • Applicare la stessa percentuale: il prezzo in offerta riceve esattamente lo stesso trattamento del prezzo di listino.
  • Non toccare: il prezzo in offerta resta rigorosamente invariato. Lo sconto mostrato aumenta quindi meccanicamente.
  • Rimuovere il prezzo in offerta: l’offerta viene tolta, insieme alle sue date di inizio e fine.

In ogni caso, se il nuovo prezzo in offerta raggiungesse o superasse il nuovo prezzo di listino, viene rimosso automaticamente per evitare un’incoerenza nel negozio.

Anteprima e applicazione

Il pulsante Anteprima dei nuovi prezzi avvia tre operazioni successive, con barra di avanzamento:

  1. Selezione dei prodotti corrispondenti all’ambito e registrazione della coda.
  2. Calcolo del nuovo prezzo di ogni riga, a lotti.
  3. Visualizzazione della tabella e delle statistiche.

La tabella mostra, per ogni riga, il prodotto con un collegamento alla sua scheda, lo SKU, il prezzo attuale, il nuovo prezzo, la variazione reale in percentuale, il prezzo in offerta prima e dopo, e lo stato. Le righe escluse portano lo stato skipped e un motivo: prodotto gratuito, nessun prezzo di listino, prezzo già al valore obiettivo, oppure variazione superiore al limite consentito.

Il pulsante Carica altre 50 righe impagina la tabella. Scarica il CSV esporta l’intera campagna, righe escluse comprese, il che consente una rilettura offline o una validazione da parte di terzi.

Finché non hai cliccato su Applica al catalogo, nessun prezzo è stato modificato. La campagna resta consultabile nello storico con lo stato Pronta da applicare e può essere applicata più tardi.

L’applicazione avviene a lotti tramite l’API prodotto di WooCommerce, il che garantisce l’aggiornamento del prezzo mostrato, della tabella di ricerca interna e delle cache. Dopo ogni lotto i prodotti variabili interessati vengono risincronizzati affinché i prezzi minimo e massimo mostrati nel negozio restino corretti.

Annullare una campagna

Dalla schermata Storico, una campagna con stato Applicata propone un pulsante Annulla. Il ripristino avviene a lotti e riporta ogni prodotto al suo prezzo di listino e al suo prezzo in offerta originali.

Se l’opzione di sicurezza era attiva alla creazione della campagna, ogni prodotto viene verificato prima del ripristino: se il suo prezzo attuale non corrisponde più al prezzo applicato dalla campagna, la riga viene lasciata da parte con un messaggio esplicito. Questo evita di sovrascrivere una modifica manuale fatta nel frattempo.

Eliminare una campagna cancella anche i suoi dati di ripristino. Una campagna applicata e poi eliminata non può più essere annullata.

Comandi WP-CLI

Quattro comandi coprono lo stesso percorso senza passare dal browser, il che si adatta ai cataloghi molto grandi e agli script di deploy.

wp df-inflation preview --percent=3 --categories=15,22
wp df-inflation apply --campaign=12 --yes
wp df-inflation apply --percent=4.5 --types=simple,variable --sale=ratio --yes
wp df-inflation revert --campaign=12 --yes
wp df-inflation campaigns

Opzioni disponibili: --percent, --name, --categories, --types, --sale (keep, percent, ratio o remove), --campaign e --yes. Il comando preview costruisce la campagna e mostra le statistiche senza scrivere nulla, e restituisce l’identificativo da riutilizzare con apply.

Impostazioni globali

  • Fasce di prezzo: la tabella descritta sopra, con i pulsanti di aggiunta e rimozione e le preimpostazioni.
  • Verso e Garantisci l’aumento: valori predefiniti proposti a ogni nuova campagna.
  • Arrotonda su: base di calcolo IVA inclusa o prezzo memorizzato.
  • Dimensione dei lotti: numero di prodotti trattati per richiesta, da 1 a 200. Il valore predefinito di 25 va bene per la maggior parte degli hosting. Scendi a 10 in caso di tempo di esecuzione superato, sali a 50 o 100 su un server dedicato.
  • Disinstallazione: se la casella è selezionata, la rimozione del plugin cancella le due tabelle e le opzioni. Non selezionata, i dati delle campagne sopravvivono a una reinstallazione.

Personalizzazione per gli sviluppatori

Due filtri permettono di intervenire sul comportamento del motore.

// Modificare un prezzo arrotondato.
add_filter( 'df_inflation_rounded_price', function ( $result, $raw_price, $tier ) {
    return $result;
}, 10, 3 );

// Modificare l'elenco dei prodotti selezionati da una campagna.
add_filter( 'df_inflation_scope_rows', function ( $rows, $filters ) {
    return $rows;
}, 10, 2 );

Tutte le azioni di amministrazione richiedono la capacità manage_woocommerce. Le richieste AJAX sono protette da un nonce e verificano questa capacità lato server.

Risoluzione dei problemi

Nessun prodotto corrisponde all’ambito

Verifica che i tipi di prodotto selezionati corrispondano al tuo catalogo e che i prodotti mirati abbiano un prezzo di listino impostato. Un prodotto variabile in cui solo le variazioni hanno un prezzo richiede di selezionare il tipo variabile, non il tipo semplice.

La barra di avanzamento si blocca

Riduci la dimensione dei lotti nelle impostazioni e rilancia. Un lotto di 10 prodotti basta sugli hosting più limitati. La console del browser mostra il dettaglio della richiesta fallita.

I nuovi prezzi non compaiono nel negozio

Svuota la cache del tuo plugin di caching e la cache del server. Il plugin ripulisce i transient WooCommerce dei prodotti modificati, ma non controlla una cache di pagina di terze parti.

I prezzi dei prodotti variabili sono incoerenti

I prezzi minimo e massimo mostrati sulla scheda padre provengono da una sincronizzazione WooCommerce. Il plugin la avvia dopo ogni lotto. Se resta uno scarto, lo strumento WooCommerce, Stato, Strumenti, Svuota i transient dei prodotti forza un ricalcolo completo.

Una variazione reale molto superiore all’obiettivo

È il comportamento atteso su una scala grossolana. Compila il tetto per campagna per escludere quei prodotti, oppure aggiungi una fascia più fine sulla fascia di prezzo interessata.

Disinstallazione

Disattivare il plugin non cancella nulla: le campagne e i dati di ripristino restano nel database. L’eliminazione completa dall’elenco dei plugin avvia la pulizia solo se l’opzione corrispondente era stata selezionata nelle impostazioni prima dell’eliminazione.

Questa pagina ti è stata utile?

Ancora bloccato? Contatta l'assistenza