Zum Hauptinhalt springen
← Zurück zum CutOptim ConfiguratorEigene Plattform

Schnittstelle für Zuschnittbestellungen in Ihren eigenen Shop oder Ihr ERP

Der CutOptim Configurator wird über zwei Prüfungen auf Ihrem Server an einen eigenen Shop oder ein ERP angebunden: das signierte Angebot und den signierten Webhook. Beides ist schlichtes HMAC-SHA256, jede Sprache kann es prüfen, und Referenzbeispiele in Node und PHP zeigen, wie.

Kurz erklärt

Um Bestellungen des Konfigurators in einer eigenen Plattform anzunehmen, tut Ihr Server zwei Dinge. Er prüft das signierte Angebot, bevor eine Position in den Warenkorb kommt, und er prüft den signierten Webhook, bevor er eine Bestellung speichert. CutOptim zieht keine Zahlung ein und betreibt keinen Shop: Warenkorb, Zahlung und Bestelldatensatz bleiben bei Ihnen.

Zwei Prüfungen, beide auf Ihrem Server

Eine eigene Plattform hat kein Plug-in, auf das sie sich stützen kann, also liegt das Vertrauen in zwei Signaturen. Der Browser kann einen Preis anzeigen, aber nur Ihr Server entscheidet, ob er ihm glaubt.

ZeitpunktWas ankommtWas Ihr Server prüft
Der Kunde bestellt auf der SeiteDas Ereignis cutoptim:order mit Bestellung und signiertem AngebotDas Angebots-Token, mit Ihrem geheimen Schlüssel bei /cfg/v1/quote/verify
Die Bestellung wird aufgegebenEin signierter Webhook an die von Ihnen hinterlegte AdresseDie Signatur, das Fünf-Minuten-Fenster und die Ereignis-ID
Eine Wiederholung oder erneute ZustellungDasselbe Ereignis noch einmalNichts Neues: die Ereignis-ID ist bereits gespeichert

Das Angebot vor dem Warenkorb prüfen

Das Angebots-Token ist das Preisversprechen. Ihr Server fragt CutOptim, ob es echt, nicht abgelaufen und noch nicht eingelöst ist, und vergleicht dann seine Angaben mit der Warenkorbposition.

  1. Bestellung empfangen

    Die Seite übergibt Ihrem Skript das Ereignis cutoptim:order mit der Bestellung und ihrem Angebots-Token.

  2. CutOptim fragen

    Ihr Server sendet das Token mit Ihrem geheimen Schlüssel an /cfg/v1/quote/verify. Die Antwort sagt, ob es gültig ist, ob eine Bestellung es schon verbraucht hat und welche Angaben es trägt.

  3. Angaben vergleichen

    Mandant, Währung, Ablauf und der Hash der bepreisten Positionen müssen zur Position passen, die Sie hinzufügen wollen. Alles andere wird abgelehnt.

  4. Hinzufügen oder ablehnen

    Nur ein Token, das besteht, erreicht den Warenkorb. Ein im Browser geänderter Preis scheitert hier.

Der Signaturschlüssel wird nie an Shops ausgegeben. Form und Ablauf eines Tokens lokal zu prüfen spart eine Anfrage, aber nur /cfg/v1/quote/verify kann die Signatur bestätigen.

Die Bestellung per Webhook empfangen

Wird eine Bestellung aufgegeben, sendet CutOptim sie an die von Ihnen hinterlegte Adresse, signiert, damit Sie erkennen, dass sie von uns kommt.

  • — Der Header CutOptim-Signature trägt einen Zeitstempel t und eine Signatur v1: ein HMAC-SHA256 über Zeitstempel, Punkt und rohen Body.
  • — Prüfen Sie die rohen Bytes genau so, wie sie ankommen; ein Body, der geparst und wieder ausgegeben wurde, passt nicht mehr.
  • — Lehnen Sie einen Zeitstempel ab, der mehr als fünf Minuten alt oder neu ist, und vergleichen Sie Signaturen in konstanter Zeit.
  • — Speichern Sie die Ereignis-ID und antworten Sie mit Erfolg auf eine bekannte ID: eine Wiederholung sendet sie erneut.

Referenzcode in Node und PHP

Zwei kleine Beispiele leisten genau das, ohne Framework und ohne Abhängigkeit: ein Node-Modul und eine einzelne PHP-Datei. Kopieren Sie das passende, ersetzen Sie den Speicher im Arbeitsspeicher durch eine Tabelle mit eindeutigem Schlüssel auf der Ereignis-ID und halten Sie Ihre Geheimnisse in der Umgebung.

Referenzcode: Webhook prüfen (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();

Was bei Ihnen bleibt

Der Configurator berechnet Preis und Zuschnittplan; Ihre Plattform behält alles, was danach kommt.

  • — Warenkorb, Kasse und Zahlung: CutOptim zieht keine Zahlung ein.
  • — Der Bestelldatensatz und seine Abwicklung, in Ihrer Datenbank oder Ihrem ERP.
  • — Ihre Kunden und Ihre Shopseiten: es gibt keinen gehosteten Shop.

Starten Sie in der Konsole eine kostenlose Sandbox, um Ihre Schlüssel und Ihr Webhook-Geheimnis zu erhalten. Die Referenzbeispiele können Sie auf dieser Seite herunterladen.

Wo es passt

Jedes System, das eine HTTPS-Anfrage empfangen und einen HMAC berechnen kann, kann diese Bestellungen annehmen: ein selbst gebauter Shop, ein Headless-Frontend, ein Angebotswerkzeug oder ein ERP. Brauchen Sie nur die Zuschnitt-Engine und nicht die Bestelloberfläche, ist die Engine API dafür da.

Häufige Fragen

Brauche ich ein Plug-in, um meine eigene Plattform anzubinden?
Nein. Eine eigene Plattform braucht zwei Prüfungen auf ihrem Server, das signierte Angebot und den signierten Webhook, und die Beispiele in Node und PHP zeigen beide. Es gibt keinen CutOptim-Code, den Sie in Ihrem Shop installieren müssten.
Woher weiß ich, dass ein Preis im Browser nicht verändert wurde?
Ihr Server sendet das Angebots-Token mit Ihrem geheimen Schlüssel an /cfg/v1/quote/verify und vergleicht dessen Angaben mit der Warenkorbposition. Ein verändertes oder abgelaufenes Token wird als ungültig gemeldet. Ein Token, das eine Bestellung schon verbraucht hat, bleibt gültig, kommt aber mit redeemed: true zurück: prüfen Sie beide Felder und führen Sie selbst Buch über verbrauchte Tokens.
Was passiert, wenn mein Endpunkt bei einer Bestellung nicht erreichbar ist?
CutOptim wiederholt die Zustellung nach einem wachsenden Zeitplan, bis zu sechs Versuche über mehrere Stunden. Jede Wiederholung trägt dieselbe Ereignis-ID, ein Empfänger, der IDs speichert, verarbeitet die Bestellung also nur einmal.
Zieht CutOptim die Zahlung ein oder hostet es meinen Shop?
Nein. Der Configurator berechnet Preis und Zuschnittplan und übergibt die signierte Bestellung an Ihre Plattform. Warenkorb, Zahlung und Abwicklung bleiben in Ihrem eigenen System.
Welche Programmiersprachen decken die Beispiele ab?
Node und PHP. Die Signatur ist schlichtes HMAC-SHA256 über den rohen Body, dieselben wenigen Zeilen funktionieren also auch in Python, Java, C# oder jeder anderen Sprache mit einer Krypto-Bibliothek.

Passende Rechner, Ratgeber und Branchen

Mehr zum Konfigurator

Sie brauchen nur die Zuschnitt-Engine? Zur Engine API

RechtlichesKonfigurator-Bedingungen (EN) ·Auftragsverarbeitungsvertrag (EN) ·Datenschutzhinweis für Käufer ·Drittanbieter-Lizenzen (EN)