Interactive pilot

See it, then simulate it

For Woo, Webflow, and custom stacks. Watch the flow, then simulate checkout + webhooks.

Book a 30-min fit check See pricing
See it in ChatGPT

Instant Checkout – UX demo

Short overview of the buyer flow inside ChatGPT.

Behind the scenes

Orders & refunds – 90s overview

How webhooks and idempotency fit your stack.

Acceptance checklist
  • Webhook verifies HMAC signature
  • Duplicate deliveries handled (idempotency)
  • Order + refund processed and persisted
  • Monitoring/alerts receive a status ping
Run the demo

Simulated checkout & webhooks

Click “Run demo” to see the step-by-step flow…

This is a simulation that runs entirely in your browser (no server). It shows the events your store would receive: order_created → order_updated (confirmed) → order_updated (refund).

What’s included
  • Canonical JSON + demo signature (Base64) — simulation
  • Idempotent retries — duplicate delivery shown
  • Basic monitoring hooks — status pings
  • Buyer-intent copy — example prompts
Next step

Like what you see? We’ll map your top SKUs and wire orders/refunds to your stack.

What you need
  • Store URL + stack (Woo/Webflow/custom)
  • Top 3–5 SKUs (variants, images, price)
  • Returns window & shipping policy
  • Webhook URLs (staging + production)
  • Tech contact for endpoint ownership
What we simulate
  • order_created with cart + totals
  • order_updated (confirmed) with payment_reference
  • order_updated (refund) with refund_reference
  • Demo signature (Base64) + idempotent retries
  • Basic health pings for monitoring
Resources
Verify signature (HMAC) — Node
const crypto = require('crypto');
function verifySig(rawBody, headerSig, secret){
  const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(headerSig));
}
Verify signature — Python
import hmac, hashlib
def verify_sig(raw_body: bytes, header_sig: str, secret: str) -> bool:
    expected = 'sha256=' + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, header_sig)
Retry & idempotency — pseudo
# if idem_key exists:
#   if stored_hash == sha256(raw_body): return 200 same response
#   else: return 409 conflict
# else:
#   process(), store {idem_key: sha256(raw_body), response}, return 200