Recommended approach
Use thesync block — not legacy webhook.ecommerce.
Full reference: Sync guide.
Typical flow
- Tenant installs your MiniApp from Marketplace.
- OAuth or API key stores credentials on the tenant install.
- Provider webhooks hit
POST /miniapps/{ns}/webhooks. - Handlers map payloads into Karzoun commerce records.
- Automations use triggers (e.g.
order.created) for workflows.
What to include in your definition
- Auth that matches the platform — OAuth 2.0 with
auto_refresh: truewhen refresh tokens exist; HTTP Basic (Basic [[key]]:[[secret]]) for WooCommerce-style REST keys; custom headers for Shopify Admin tokens — see Authentication webhook.verification— HMAC or token strategy from your providerwebhook.customerExtraction— Map buyer fields into Karzoun customerssync.resources— Products, customers, orders as neededsync.webhooks.handlers— Create/update mappings per eventtriggers— One per automation-visible event
Legacy webhook.ecommerce
webhook.ecommerce is deprecated. New submissions must use sync. Karzoun may reject definitions that rely solely on the legacy block.
If you are maintaining an older integration, contact Karzoun support for a migration review.
Partners
Commerce partners (Salla, Zid, Matjrah, WooCommerce) should also read the Partners program for whitelabel and embedded onboarding flows.Shopify
Shopify connects with Shop Domain + Admin API Access Token + API Secret Key.- Auth header:
X-Shopify-Access-Token - Webhook HMAC:
X-Shopify-Hmac-Sha256withencoding: 'base64' - Topics normalized from
orders/create→order.created(etc.) - Bulk catalog sync is disabled by default (Shopify uses cursor/
Linkpagination); realtime webhook upserts are enabled - Find-by-SKU uses Admin GraphQL
productVariants
WooCommerce
WooCommerce connects with Consumer Key + Consumer Secret + Store URL (REST API keys). Includes find-by-email/SKU/order-number actions, webhook HMAC (encoding: 'base64'), and catalog sync.
- Auth: HTTP Basic via
Authorization: 'Basic [[consumerKey]]:[[consumerSecret]]'(runtime Base64-encodeskey:secret) — see Authentication → HTTP Basic Auth - Webhook HMAC:
X-WC-Webhook-Signaturewithencoding: 'base64'