Il problema
UpGreens è un negozio di Napoli che vende bici elettriche, fat bike e accessori con WooCommerce. Il negozio era online con ordini veri, quindi niente poteva rompersi. Ma aveva problemi concreti: le pagine prodotto mostravano i prezzi IVA inclusa e il carrello senza IVA, così lo stesso prodotto aveva due prezzi diversi. Il carrello era mezzo in inglese, a ogni caricamento di pagina scattava un warning PHP e la home page sembrava datata.
Cosa ho costruito
Ho sistemato il negozio e rifatto il front end, con un’unica piccola correzione protetta dentro il tema.
- Prezzi coerenti: negozio, carrello e checkout ora mostrano tutti i prezzi IVA inclusa, così il cliente vede un solo prezzo dalla pagina prodotto al pagamento.
- Carrello e checkout in italiano: un piccolo plugin must-use traduce le stringhe inglesi rimaste tramite i filtri di WordPress, e così sopravvive agli aggiornamenti del tema.
- Home page dai dati reali: hero, categorie, vetrina dei prodotti, vantaggi, notizie e fascia della community sono generati dal catalogo. Il bollino “fino al X% di sconto” è calcolato sugli sconti reali, e la soglia per la spedizione gratuita (150 €) è letta dalle impostazioni del negozio.
- Nuovi header e footer: un’unica barra bianca con logo, menu, ricerca, account e contatore del carrello, e un footer che elenca solo i metodi di pagamento davvero disponibili al checkout.
- Pagamenti a rate: Klarna e HeyLight, che permettono ai clienti di dividere l’importo fino a 12 rate senza interessi.
- Fatturazione italiana: campi per partita IVA e codice fiscale al checkout, e fatture in PDF.
- Layout verificati: la griglia dei prodotti ne mostra 4 per riga su desktop, 2 su tablet e 1 sul telefono.
Con cosa è fatto
WordPress e WooCommerce con il tema Bikeway e WPBakery, i gateway Klarna e HeyLight, spedizioni a tabella e in base al carrello, fatture PDF e Wordfence. Le parti nuove sono plugin must-use su misura in PHP per home page, header, footer, griglia dei prodotti e traduzione del carrello. Il catalogo ha 28 prodotti pubblicati.
Perché è fatto così
Il tema non ha un child theme, quindi qualsiasi modifica ai suoi file andrebbe persa al prossimo aggiornamento. Ho messo invece ogni modifica in plugin must-use separati. Ognuno si può disattivare cancellando un solo file, e prima di ogni intervento sul negozio live ho fatto un backup del database.


