Salta al contenuto principale
← Torna a CutOptim ConfiguratorPiattaforma personalizzata

Integrazione degli ordini di taglio su misura nel tuo negozio o ERP

Il CutOptim Configurator si collega a un negozio o a un ERP personalizzato con due verifiche sul tuo server: il preventivo firmato e il webhook firmato. Entrambi sono semplice HMAC-SHA256, verificabile in qualsiasi linguaggio, e gli esempi di riferimento in Node e PHP mostrano come.

Risposta rapida

Per ricevere gli ordini del configuratore in una piattaforma tua, il server fa due cose. Verifica il preventivo firmato prima che una riga entri nel carrello e verifica il webhook firmato prima di salvare un ordine. CutOptim non incassa pagamenti e non ospita negozi: carrello, pagamento e record dell’ordine restano a te.

Due verifiche, entrambe sul tuo server

Una piattaforma personalizzata non ha un plug-in su cui contare, quindi la fiducia poggia su due firme. Il browser può mostrare un prezzo, ma solo il tuo server decide se crederci.

MomentoChe cosa arrivaChe cosa verifica il tuo server
Il cliente ordina nella paginaL’evento cutoptim:order con l’ordine e il suo preventivo firmatoIl token del preventivo, con la tua chiave segreta su /cfg/v1/quote/verify
L’ordine viene effettuatoUn webhook firmato all’indirizzo che hai registratoLa firma, la finestra di cinque minuti e l’id dell’evento
Un nuovo tentativo o un reinvioLo stesso evento di nuovoNiente di nuovo: l’id dell’evento è già salvato

Verificare il preventivo prima del carrello

Il token del preventivo è la promessa di prezzo. Il tuo server chiede a CutOptim se è autentico, non scaduto e non ancora usato, poi confronta ciò che dichiara con la riga del carrello.

  1. Ricevere l’ordine

    La pagina passa al tuo script l’evento cutoptim:order con l’ordine e il suo token del preventivo.

  2. Chiedere a CutOptim

    Il tuo server invia il token a /cfg/v1/quote/verify con la tua chiave segreta. La risposta dice se è valido, se un ordine lo ha già usato e quali dichiarazioni porta.

  3. Confrontare le dichiarazioni

    Il tenant, la valuta, la scadenza e l’hash delle righe con prezzo devono corrispondere alla riga che stai per aggiungere. Tutto il resto viene rifiutato.

  4. Aggiungere o rifiutare

    Solo un token che supera la verifica arriva al carrello. Un prezzo modificato nel browser fallisce qui.

La chiave di firma non viene mai consegnata ai negozi. Controllare in locale la forma e la scadenza di un token risparmia una richiesta, ma solo /cfg/v1/quote/verify può confermare la firma.

Ricevere l’ordine con un webhook

Quando un ordine viene effettuato, CutOptim lo invia all’indirizzo che hai registrato, firmato perché tu possa riconoscere che arriva da noi.

  • — L’intestazione CutOptim-Signature porta un timestamp t e una firma v1: un HMAC-SHA256 del timestamp, di un punto e del corpo grezzo.
  • — Verifica i byte grezzi esattamente come ricevuti; un corpo interpretato e riscritto non corrisponde più.
  • — Rifiuta un timestamp che si discosta di più di cinque minuti, in avanti o indietro, e confronta le firme in tempo costante.
  • — Salva l’id dell’evento e rispondi con successo a un id già visto: un nuovo tentativo lo ripete.

Codice di riferimento in Node e PHP

Due piccoli esempi fanno esattamente questo, senza framework e senza dipendenze: un modulo Node e un solo file PHP. Copia quello adatto, sostituisci l’archivio in memoria con una tabella che ha una chiave univoca sull’id dell’evento e tieni i segreti nell’ambiente.

Codice di riferimento: verificare un webhook (Node)
import { createWebhookReceiver } from './cutoptim-verify.mjs';

const receive = createWebhookReceiver({
  secrets: [process.env.WEBHOOK_SECRET],          // whsec_... from the admin route, never in the repository
  async onEvent(event) { /* store event.data.order, keyed by event.id */ },
});

// in your HTTP handler - the RAW body, not parsed JSON:
const { status } = await receive({ rawBody, headers: req.headers });
res.writeHead(status).end();

Che cosa resta a te

Il configuratore calcola il prezzo e pianifica il taglio; la tua piattaforma tiene tutto ciò che viene dopo.

  • — Il carrello, la cassa e il pagamento: CutOptim non incassa pagamenti.
  • — Il record dell’ordine e la sua evasione, nel tuo database o ERP.
  • — I tuoi clienti e le pagine del tuo negozio: non esiste un negozio ospitato.

Avvia una sandbox gratuita nella console per ottenere le tue chiavi e il segreto del webhook. Gli esempi di riferimento si scaricano da questa pagina.

Dove si inserisce

Qualsiasi sistema in grado di ricevere una richiesta HTTPS e calcolare un HMAC può prendere questi ordini: un negozio sviluppato internamente, un frontend headless, uno strumento di preventivazione o un ERP. Se ti serve solo il motore di taglio e non la schermata d’ordine, ci pensa l’Engine API.

Domande frequenti

Serve un plug-in per collegare la mia piattaforma?
No. Una piattaforma personalizzata richiede due verifiche sul suo server, il preventivo firmato e il webhook firmato, e gli esempi Node e PHP le mostrano entrambe. Non c’è codice CutOptim da installare nel tuo negozio.
Come faccio a sapere che un prezzo non è stato modificato nel browser?
Il tuo server invia il token del preventivo a /cfg/v1/quote/verify con la tua chiave segreta e ne confronta le dichiarazioni con la riga del carrello. Un token alterato o scaduto viene segnalato come non valido. Un token già usato da un ordine resta valido ma torna con redeemed: true: controlla entrambi i campi e tieni un tuo registro dei token usati.
Che succede se il mio endpoint non è raggiungibile quando arriva un ordine?
CutOptim ritenta la consegna con intervalli crescenti, fino a sei tentativi nell’arco di diverse ore. Ogni nuovo tentativo porta lo stesso id evento, quindi un ricevitore che salva gli id elabora l’ordine una sola volta.
CutOptim incassa il pagamento o ospita il mio negozio?
No. Il configuratore calcola il prezzo e pianifica il taglio e consegna l’ordine firmato alla tua piattaforma. Carrello, pagamento ed evasione restano nel tuo sistema.
Quali linguaggi di programmazione coprono gli esempi?
Node e PHP. La firma è semplice HMAC-SHA256 sul corpo grezzo, quindi le stesse poche righe funzionano in Python, Java, C# o qualsiasi altro linguaggio con una libreria crittografica.

Calcolatori, guide e settori correlati

Altro sul configuratore

Ti serve solo il motore di taglio? Vedi la Engine API

Note legaliCondizioni del configuratore (EN) ·Accordo sul trattamento dei dati (EN) ·Informativa privacy per gli acquirenti ·Licenze di terze parti (EN)