Salta al contenuto principale
In questa pagina▾

Un ordine nasce quando il tuo cliente conferma un preventivo nel configuratore. Da quel momento è un record memorizzato e firmato, e CutOptim te ne dà notizia in due modi.

Che cos’è un ordine

Un documento d’ordine contiene l’elenco dei tagli, le lastre intere usate, la ferramenta, i pannelli incollati, il piano di taglio e il preventivo con le sue righe e i totali in unità minori intere della valuta. È firmato, quindi non può essere modificato in seguito. Inviare due volte la stessa richiesta d’ordine restituisce lo stesso ordine, mai un secondo.

Poiché il prezzo proviene sul server dalle tue regole pubblicate, il tuo negozio non si fida del browser per esso. Prima che il tuo carrello accetti una riga, il tuo server chiede a CutOptim di verificare il preventivo con la tua chiave segreta. Il modo già pronto è il plug-in WooCommerce; per gli altri negozi vedi le piattaforme personalizzate.

Consegna tramite webhook

Aggiungi un webhook all’elenco channels.webhooks della tua configurazione (categoria Advanced, editor JSON) e pubblica. Ogni voce ha un id, un url e gli events che vuoi. L’URL deve essere un indirizzo HTTPS pubblico; gli indirizzi privati, locali e interni vengono rifiutati al salvataggio e di nuovo all’invio. Vengono inviati due eventi:

  • order.created quando un cliente effettua un ordine.
  • order.status_changed quando porti un ordine a un nuovo stato.

Ogni consegna è una POST con un corpo JSON canonico e queste intestazioni: CutOptim-Signature, CutOptim-Event-Id, CutOptim-Event-Type, CutOptim-Delivery-Attempt e CutOptim-Delivery-Id. La firma è t=<unix seconds>,v1=<hex>, un HMAC-SHA256 di <t>.<raw body> con il segreto del ricevente. Il tuo ricevente dovrebbe:

  1. leggere il corpo grezzo prima di analizzarlo;
  2. verificare che il timestamp rientri in pochi minuti e confrontare la firma in tempo costante;
  3. accettare uno qualsiasi tra più valori v1, che compaiono mentre un segreto viene ruotato;
  4. rispondere rapidamente con uno stato 2xx e gestire un id evento una sola volta.

Il segreto del ricevente viene rivelato al tuo server da POST /cfg/v1/admin/webhooks/<id>/secret sul servizio, con la tua chiave segreta. Non viene mostrato nella console.

Una risposta non 2xx, un timeout o un reindirizzamento contano come un fallimento. I tentativi successivi attendono 1, 5, 25 e 125 minuti, poi 6 ore, e il sesto tentativo fallito contrassegna la consegna come morta. Una riconsegna ripete lo stesso id evento, così il tuo ricevente può riconoscerla. Gli altri tipi di evento presenti nella configurazione, come gli eventi di preventivo o di progetto, sono accettati ma non vengono mai inviati.

E-mail

Nella sezione channels.email della tua configurazione elenchi gli indirizzi dei destinatari del negozio (tenantRecipients) e puoi attivare una copia al cliente (sendCustomerCopy). L’e-mail del negozio contiene una scheda di lavoro e un PDF di etichette; la copia al cliente parte solo se l’hai abilitata e l’ordine porta un riferimento cliente con un indirizzo registrato, e rispondere a essa raggiunge il tuo primo destinatario. L’e-mail di stato parte solo quando lo chiedi mentre cambi uno stato. Un errore di invio non blocca mai l’ordine. Una sandbox scrive solo all’indirizzo confermato del titolare e mai a un cliente.

La console degli ordini

L’area Orders della console elenca gli ordini per stato e data, e apre un ordine per mostrarne elenco dei tagli, righe di prezzo, totali e cronologia. Owner e admin vedono anche i registri di consegna di webhook ed e-mail, con un pulsante Redeliver che mette in coda una copia di una consegna conclusa, fallita o morta. Una consegna ancora in attesa o in corso non può essere riconsegnata.

Per cambiare uno stato scegli lo stato successivo, aggiungi una nota facoltativa e decidi se inviare un’e-mail al cliente. I passaggi consentiti sono:

Da A
ricevuto (received) confermato (confirmed), annullato (cancelled)
confermato (confirmed) in produzione (in production), annullato (cancelled)
in produzione (in production) spedito (shipped), annullato (cancelled)
spedito (shipped) completato (completed)

Gli ordini completati e annullati non si spostano più. Gli ordini non vengono mai eliminati dalla console; sono documenti aziendali.

La pagina di tracking

Il link di tracking del cliente mostra il numero d’ordine, il nome del tuo negozio, i passaggi di stato con l’ora di ciascuno, il numero di pezzi e il totale, in una delle dieci lingue. Non mostra indirizzo né e-mail, né l’elenco dei tagli, né mai le tue note, e non contiene script. Il link non è indovinabile, appartiene a un solo ordine e scade 365 giorni dopo l’ordine. Se ti serve il link per una telefonata, il tuo server può richiederlo con la chiave segreta; la console non lo mostra.

File di produzione

Ogni ordine può essere scaricato come sette file dal dettaglio dell’ordine:

File Uso
Part list (CSV) i pezzi con misure e quantità
Placements (CSV) dove si trova ogni pezzo su ogni lastra
Drawing (SVG) il piano, da visualizzare o stampare
CNC drawing (DXF) per il software CNC
Labels (PDF) etichette dei pezzi
Worksheet (PDF) una scheda per il laboratorio
ERP extract (JSON) per il tuo sistema ERP

I PDF vengono ricostruiti dall’ordine e rifiutati quando il piano non può essere riprodotto esattamente; in tal caso gli altri file restano disponibili. I PDF sono in inglese. Non esiste un’esportazione Excel per un ordine, e gli ordini 1D o di legname non esistono ancora, quindi per essi non viene esportato nulla.

Cosa non è coperto

  • Il configuratore non incassa pagamenti; pagamento ed evasione restano nel tuo negozio.
  • Non esiste un cambio di stato in blocco.
  • Un link di tracking non può essere revocato singolarmente; scade da solo.

FAQ

Come ricevo un ordine?
In due modi contemporaneamente, secondo la tua configurazione: un webhook firmato verso il tuo server e un'e-mail agli indirizzi che elenchi. L'e-mail contiene una scheda di lavoro e le etichette come file PDF. Ogni ordine è inoltre memorizzato e visibile nella console, quindi un webhook perso non fa mai perdere un ordine.
Come so che un webhook proviene davvero da CutOptim?
Ogni consegna porta un'intestazione CutOptim-Signature, un HMAC-SHA256 sui byte esatti del corpo con un timestamp. Il tuo server la ricalcola con il segreto del ricevente, che il tuo server richiede a CutOptim con la sua chiave segreta, e rifiuta una firma errata o un timestamp vecchio. Verifica il corpo grezzo prima di analizzarlo e ignora un id evento già gestito, perché la consegna avviene almeno una volta.
Cosa succede se il mio server è fermo quando arriva un ordine?
L'ordine viene prima memorizzato e la consegna viene ritentata: dopo 1, 5, 25 e 125 minuti e poi 6 ore. Dopo il sesto tentativo fallito la consegna viene contrassegnata come morta (dead). Owner e admin possono vedere il registro delle consegne nella console e mettere in coda una riconsegna dello stesso evento con un clic.
Quali sono gli stati dell'ordine?
Ricevuto (received), confermato (confirmed), in produzione (in production), spedito (shipped) e completato (completed), più annullato (cancelled). Un ordine avanza di un passo alla volta e può essere annullato finché non è stato spedito; completato e annullato sono definitivi. Lo impone il database, quindi nessun percorso può riportare un ordine indietro. Ogni cambiamento viene registrato con chi lo ha effettuato.
Il mio cliente può seguire l'ordine?
Sì. Quando cambi uno stato puoi spuntare una casella per inviare un'e-mail al cliente, e quella e-mail contiene un link di tracking. La pagina mostra il numero d'ordine, il nome del tuo negozio, i passaggi di stato con il momento di ciascuno, il numero di pezzi e il totale. Non mostra indirizzo, elenco dei tagli né le tue note. Il link smette di funzionare 365 giorni dopo l'ordine.
Quali file di produzione posso scaricare?
Sette, per ordine: l'elenco dei pezzi (CSV), i posizionamenti (CSV), un disegno del piano (SVG), un disegno CNC (DXF), un PDF di etichette, un PDF di scheda di lavoro e un estratto ERP (JSON). I file SVG, DXF e dei posizionamenti sono gli stessi che l'Engine API produce per lo stesso piano.

Aggiornato: 19 ottobre 2026