Integrations & migration

Shopify natively, everything else through the API — one engine either way — plus switching from another provider without losing a coin.

Shopify

Connect under Developers → Integrations. Live orders earn automatically; refunds claw back proportionally; cancellations, GDPR requests and missed webhooks heal via nightly reconciliation. Redemptions become native single-use discount codes. Theme blocks show balances on the storefront; admin blocks show a customer's loyalty card inside Shopify admin. Integration health (webhooks, scopes, last sync) lives on the same page.

Any other stack: the API

WooCommerce, Magento, a custom cart, POS — send commerce events to the /v1 API and the same engine applies the same rules, caps and timings. Keys, scopes and webhooks live under Developers; an isolated test mode (sandbox) ships with every program. Full reference, quickstart and webhook signing guides live in the developer documentation.

curl — one paid order, same engine as Shopify
curl -X POST https://stickytier.com/v1/events \
  -H "Authorization: Bearer cvos_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "type": "order.paid", "order_ref": "POS-1042", "email": "fan@vibe.club", "gross_cents": 99900 }'

Migrating from Smile / LoyaltyLion

Migration ingests their CSV exports: balances, tier names (mapped onto your tiers by name) and referred-by links. Dry-run first — row counts, errors, totals, nothing written. Commit credits every member in one idempotent batch. The kill switch is real: one click reverses the entire batch — balances, tier assignments and referral links — verified at 100,000 rows.

ExampleVibeClub imports 42,000 Smile members on Tuesday, spots a wrong point-value on Wednesday, reverses, re-imports at the right rate. Members keep every coin; the ledger keeps every step.
Good to knowImported balances arrive as audited adjustments tagged with the batch — your accounting export shows exactly which value came from migration.

Next: Back to Getting started