Scenario · E-commerce per pezzi unici · Artigianato artistico

Pezzi unici online,
senza vendere due volte lo stesso.

Una bottega che crea opere uniche e le vende in negozio, a mano e via messaggio. Un negozio online pensato per i pezzi unici, le commissioni su misura e le spedizioni di oggetti fragili, anche all’estero.

Tipo di progettoE-commerce per pezzi unici
SettoreArtigianato artistico
Tempi tipici8–10 settimane
●Scenario
e-commerce · scultura in terracotta
Bottega
Catalogo
Commissioni
Bottega
🛒 0
Pezzo unico
Scultura · Serie Alba
Alba in Terracotta #07
€ 480
IVA inclusa · spedizione calcolata al checkout
Dimensioni
h 34 cm · Ø base 12 cm · peso 1,8 kg
Terracotta smaltata a mano · cottura 1220°C
Disponibile ora
ACQUISTA — PEZZO UNICO
Vuoi un pezzo su commissione?
Richiedi un preventivo → 3–6 settimane

Scenario e-commerce — sculture e ceramiche artigianali

Una bottega storica.
Zero presenza digitale.

Immagina una bottega di ceramica a Deruta — la capitale italiana della maiolica — attiva da generazioni. Produce sculture e oggetti decorativi in terracotta smaltata a mano, con tecniche che vanno dalla maiolica rinascimentale alle forme contemporanee richieste da collezionisti e interior designer europei.

Lo scenario: una bottega di ceramica che vende solo in negozio, alle fiere di artigianato e tramite un rivenditore all'estero. Il sito è una vetrina statica di molti anni fa: nessun e-commerce, nessuna richiesta di commissioni online, nessuna versione in inglese o tedesco, anche se gran parte dei visitatori in bottega viene dall'estero.

Il problema di fondo: ogni pezzo è diverso dall'altro. Vendere ceramica artigianale online non è come vendere magliette in tre taglie. Il catalogo deve mostrare in tempo reale cosa è ancora disponibile, cosa è già partito, e cosa si può commissionare da zero con tempi e costi propri.

«I clienti stranieri ci chiedono se possono comprare online. Rispondiamo sempre di no. Perdere una vendita perché non hai un sito, a un certo punto, non è più accettabile.»

— Quello che sento dire spesso dalle botteghe artigiane
Scenario E-commerce + catalogo dal vivo + commissioni (esempio)
Piattaforma WooCommerce + PHP 8
Plugin custom Gestione pezzi unici, generatore di commissioni, calcolo spedizioni fragili
Lingue IT · EN · DE (WPML)
Durata tipica 8–9 settimane
Tag
WooCommerce PHP custom WPML pezzi unici commissioni spedizioni fragili Stripe

Sfide WooCommerce pezzi unici artigianali

Cinque problemi da risolvere,
nessuno standard.

Catalogo "vivo" — ogni pezzo unico e irripetibile

Quando un'opera viene acquistata deve sparire dal catalogo in tempo reale, senza che altri possano metterla nel carrello. Quantità sempre = 1 per ogni articolo, con un blocco atomico durante il checkout.

Modulo commissioni su misura con preventivo

Il cliente deve poter chiedere un pezzo su misura: dimensioni, tecnica, soggetto, colori. Il modulo genera un preventivo automatico da parametri configurabili (ore di lavoro × complessità × materiali) che l'artigiano può approvare o modificare.

Spedizioni ceramiche fragili: calcolo intelligente dell'imballaggio

Le sculture richiedono imballi su misura (doppia schiuma, cassa di legno per i pezzi sopra i 30 cm). Il costo dipende da peso, dimensioni, zona di consegna e fragilità. Un plugin su misura calcola il preventivo in tempo reale con le API dei corrieri (es. DHL e GLS).

Sito trilingue IT / EN / DE senza duplicazione di contenuto

Ogni scheda prodotto esiste in tre lingue. Le traduzioni si gestiscono con WPML e una prima bozza automatica (es. DeepL), con revisione a mano dei testi tecnici sulle smaltature. URL separati per lingua con hreflang corretto.

Pannello per l'artigiano: catalogo gestibile senza competenze tecniche

Chi lavora in bottega deve poter caricare un pezzo nuovo in un paio di minuti: foto, titolo, tecnica, prezzo, dimensioni — il resto è automatico. Niente editor complicati: un modulo dedicato con ACF Pro, pensato per il loro modo di lavorare.

Plugin custom WooCommerce pezzi unici

Il diavolo è nei dettagli.
Soprattutto con WooCommerce.

WooCommerce nasce per cataloghi con SKU multipli e scorte variabili. Adattarlo a un modello "ogni prodotto esiste una sola volta" richiede interventi chirurgici sul core del carrello, sull'experience di checkout e sull'intero sistema di sincronizzazione del catalogo multilingua.

01

Race condition sul pezzo unico

Due persone aggiungono lo stesso pezzo al carrello nello stesso momento. WooCommerce da solo non lo impedisce: arrivano entrambe al checkout e una paga un'opera già venduta. Soluzione: blocco transazionale MySQL su wc_reserved_stock e rilascio automatico se il pagamento non arriva entro 15 minuti.

02

Calcolo spedizioni fragili in real-time

I corrieri non hanno API standard per "pezzo fragile in cassa di legno". Serve un calcolatore su misura che stimi il volume dell'imballo (+40% per il doppio strato), calcoli il peso volumetrico, scelga il corriere migliore per destinazione e mostri il prezzo nel carrello via AJAX, con una cache di un'ora per ridurre le chiamate.

03

Preventivo commissioni: logica tariffaria non lineare

Il prezzo di una commissione dipende da dimensioni, tecnica (maiolica, invetriata, raku), numero di colori, soggetto (geometrico o figurativo) e urgenza. Nessuna formula lineare: una matrice di coefficienti configurabile dal pannello, con un risultato in forma di intervallo (€ min–max) per non vincolare il cliente a una cifra prima del contatto.

04

WPML + WooCommerce: sincronizzazione stock trilingue

WPML duplica i prodotti per ogni lingua, ma WooCommerce gestisce il magazzino sulla versione principale. Il rischio: un acquisto dalla versione inglese non aggiorna la disponibilità in quella tedesca. Soluzione: un hook su woocommerce_reduce_order_stock che propaga l'aggiornamento a tutte le traduzioni tramite le API di WPML.

05

SEO per opere d'arte: dati strutturati + immagini ad alta risoluzione

Le ceramiche vanno indicizzate con Schema.org VisualArtwork (non Product) per descrivere ogni opera in modo preciso ai motori di ricerca, a vantaggio della visibilità su Google Immagini. Ogni opera ha artista, tecnica, materiale, dimensioni e anno di produzione nei metadati. Le immagini ad alta risoluzione (5–10 MB) vengono servite tramite WebP progressivo con lazy loading per non impattare il LCP.

Processo di sviluppo per un e-commerce di ceramiche

8–9 settimane da zero
al catalogo online.

Settimane 1–2
Audit, architettura e modello dati

Si parte dal modo di lavorare reale della bottega: come nascono i pezzi, come vengono fotografati, quali informazioni servono a un collezionista europeo prima di comprare. Da lì il modello dei dati (tecnica, cottura, dimensioni, serie, anno) e un'architettura a tre plugin su misura, indipendenti tra loro.

→ Consegna: architettura tecnica + struttura dei contenuti + wireframe del pannello
Settimane 3–4
Gestore dei pezzi unici + blocco transazionale

Il cuore del sistema: ogni prodotto ha quantità forzata a 1 tramite hook su woocommerce_product_get_stock_quantity. Il blocco transazionale su MySQL impedisce acquisti doppi: un record su wc_reserved_stock si crea in modo atomico quando il pezzo entra nel carrello e si libera dopo 15 minuti se il pagamento non arriva. Test di carico con decine di sessioni contemporanee sullo stesso articolo.

→ Plugin PHP con test PHPUnit
Settimane 5–6
Calcolo spedizioni fragili + generatore di commissioni

Il calcolatore integra le API REST dei corrieri: prende peso, dimensioni e fragilità, calcola il volume dell'imballo con i coefficienti di sicurezza (×1,4 per la doppia schiuma, cassa di legno sopra i 30 cm) e restituisce il costo via AJAX con una cache di 60 minuti. Il generatore di commissioni crea preventivi a intervallo (min–max) da una matrice a 4 variabili configurabile senza codice.

→ API corrieri · matrice di coefficienti · AJAX + cache
Settimana 7
WPML trilingue + schema VisualArtwork + dashboard ACF

WPML con bozze automatiche IT→EN→DE e revisione a mano dei termini tecnici (maiolica, invetriatura raku, impasto refrattario). Hook su woocommerce_reduce_order_stock per allineare il magazzino in tutte le lingue. Dati strutturati VisualArtwork in JSON-LD su ogni scheda. Pannello con ACF Pro: un pezzo nuovo si carica in 4 campi, il resto è automatico.

→ hreflang su 3 lingue · JSON-LD VisualArtwork · ACF Pro form custom
Settimane 8–9
Performance, SEO, test e lancio

Ottimizzazione delle immagini (5–10 MB in partenza → WebP progressivo con caricamento differito e placeholder sfocato). Stripe con metodi di pagamento locali per Germania (SEPA) e Regno Unito (Bacs). Test automatici con Playwright, compreso "acquisto contemporaneo dello stesso pezzo da due sessioni". Lancio graduale con una prima piccola collezione.

→ Obiettivo Lighthouse 90+ · test automatici · lancio con una prima collezione

Soluzione tecnica WooCommerce artigianato

Tre plugin custom.
Un'unica logica artigiana.

Nessun plugin pronto copre questo caso. La soluzione sono tre moduli PHP separati, ognuno con un compito chiaro, agganciati a WooCommerce con gli hook ufficiali senza mai toccare il core.

Soluzione 01 / 03

Gestore dei pezzi unici — un catalogo che si aggiorna da solo

Ogni prodotto è segnato come "pezzo unico" con un campo ACF. Il plugin intercetta l'aggiunta al carrello e la blocca se un altro carrello ha già riservato il pezzo. A ordine completato, il prodotto diventa privato (non più in catalogo) invece di "esaurito" — l'URL resta attivo per la SEO e mostra una pagina "quest'opera ha trovato casa" con opere simili disponibili.

// unique-piece-manager.php — lock atomico al momento dell'aggiunta add_filter( 'woocommerce_add_to_cart_validation', 'tc_lock_unique_piece', 10, 3 ); function tc_lock_unique_piece( $passed, $product_id, $qty ) { if ( ! get_post_meta( $product_id, '_tc_unique_piece', true ) ) { return $passed; // non è un pezzo unico, nessun lock } // lock transazionale: INSERT ... ON DUPLICATE KEY UPDATE global $wpdb; $reserved = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}wc_reserved_stock WHERE product_id = %d AND timestamp > %s AND order_id != %d", $product_id, date( 'Y-m-d H:i:s', time() - 900 ), // 15 min 0 ) ); if ( $reserved > 0 ) { wc_add_notice( 'Questo pezzo è già nel carrello di un altro cliente. Esplora le opere disponibili.', 'error' ); return false; } return $passed; }
Soluzione 02 / 03

Calcolo spedizioni fragili — imballo su misura

Il calcolatore riceve dal carrello peso netto, dimensioni (h × l × p in cm) e livello di fragilità (1 normale, 2 alta, 3 massima per pezzi sopra i 30 cm o smaltature a freddo). Applica i coefficienti di imballo, calcola il peso volumetrico secondo le formule dei corrieri (L×W×H / 5000 o / 4000) e interroga le loro API. Nel carrello arriva via AJAX il prezzo più basso compatibile con la fragilità, con cache di 60 minuti per destinazione e peso.

Per le spedizioni fuori UE (Regno Unito, Svizzera, Stati Uniti) il plugin prepara in automatico il modulo doganale CN23 con la voce corretta per "opere d'arte in ceramica" (codice HS 6913.90).

Calcolo spedizione
Riepilogo spedizione
DHL Express (2–3 gg) € 38,50
GLS Premium Fragile ✓ € 24,90
Ritiro in bottega Gratuito
Imballo fragile doppio strato · cassa legno inclusa · assicurazione €500
Soluzione 03 / 03

Generatore di commissioni — preventivo automatico, nessuna email persa

Senza un sistema, le richieste di commissione arrivano per email, spesso incomplete: niente dimensioni, niente budget, nessuna idea della tecnica. Tante si perdono nei botta e risposta. Il generatore guida il cliente in 4 passaggi (tecnica → dimensioni → soggetto → urgenza), mostra un intervallo di prezzo in tempo reale (calcolato sul server, non nel JavaScript) e manda all'artigiano una notifica con tutti i dati per rispondere con un preventivo definitivo in un clic. Le commissioni accettate diventano un ordine WooCommerce con pagamento in due rate (50% subito con Stripe, 50% al ritiro).

Obiettivo: quasi tutte le richieste di commissione complete al primo invio, e risposte in giornata invece che dopo giorni.

Stack tecnologico WooCommerce PHP

Ogni strumento ha
un motivo preciso.

WooCommerce
PHP 8
WPML
DeepL API
Stripe (SEPA + Card)
API corrieri (es. DHL)
API corrieri (es. GLS)
ACF Pro
Rank Math SEO
Playwright E2E
3 plugin su misura
WP Rocket + WebP

Perché WooCommerce e non Shopify?

Shopify non permette di forzare logiche di stock a livello server senza appoggiarsi a webhook asincroni — troppo lenti per prevenire race condition su pezzi unici. WooCommerce, con accesso diretto al database MySQL, consente lock transazionali sincroni. Inoltre, la gestione WPML su un WordPress self-hosted è molto più flessibile per il modello a tre lingue con URL separati e hreflang su domini regionali futuri.

Perché tre plugin e non uno?

Separare i compiti (pezzi unici, spedizioni, commissioni) permette di aggiornare o sostituire un componente senza toccare gli altri. Il calcolatore delle spedizioni, per esempio, si può disattivare quando la bottega sospende gli invii internazionali — senza toccare né il catalogo né le commissioni.

Obiettivi di esempio — e-commerce artigianale

Da zero a vendite online
in tutta Europa.

Numeri di esempio, non risultati di un cliente: obiettivi realistici per uno scenario come questo, da misurare nei primi sei mesi online rispetto ai soli canali fisici.

↑
Vendite online vs fisico
un nuovo canale di vendita, prima inesistente
✓
Sell-out prima collezione
obiettivo per la prima collezione online
+3
Mercati esteri attivati
obiettivo: nuovi paesi raggiunti
90%+
Commissioni completate
obiettivo di richieste complete
€ 680
AOV medio
valore medio di un pezzo unico (esempio)
90+
Lighthouse Score
obiettivo anche con immagini pesanti

«Una cliente dall'estero compra la scultura finita la settimana prima, mentre la bottega è chiusa.» È lo scenario a cui puntare: la bottega che vende anche quando non c'è nessuno al banco.

— L'obiettivo concreto del progetto

Learnings WooCommerce prodotti artigianali

Cosa porto
in ogni progetto così.

→

I pezzi unici hanno bisogno di un modello di dati diverso dai prodotti normali. La tentazione è usare WooCommerce "come viene" con stock = 1. Ma senza lock transazionale il rischio di vendita doppia è reale e difficile da gestire a posteriori — soprattutto con ceramiche che non si possono "sostituire con il magazzino".

→

La pagina dell'"opera venduta" è oro per la SEO. Invece di un 404, mostrare l'opera venduta con un messaggio evocativo ("quest'opera ha trovato casa") e un collegamento a opere simili riduce le uscite immediate e porta a visitare altre opere.

→

Per le commissioni, un intervallo di prezzo funziona meglio di un prezzo fisso. Mostrare "€ 800–1.200" invece di bloccare il cliente su una cifra prima della conversazione porta più richieste complete. Il cliente arriva già allineato sul budget e l'artigiano non deve gestire aspettative impossibili.

→

SEPA apre il mercato tedesco. In Germania molti non usano la carta di credito come in Italia: senza un addebito bancario locale tanti abbandonano al checkout. Attivare SEPA è un dettaglio banale che fa una grande differenza — ed è un errore che si ripete spesso.

→

I dati VisualArtwork portano traffico che Product non vede. Le ricerche su Google Immagini per opere d'arte portano visite qualificate: chi cerca "scultura in maiolica contemporanea" ha un'intenzione d'acquisto molto più alta di chi arriva da ricerche generiche.

Hai un catalogo fuori dall'ordinario?

Pezzi unici, edizioni limitate, commissioni su misura — se il tuo prodotto non entra in nessun template, parliamone.

Hai un progetto simile in mente?

Raccontamelo: partiamo da obiettivi e priorità, la prima call è gratuita.