replyk.io
Help Center
Store Connections

Store Connections

Connect your e-commerce store so orders flow into Replyk automatically.

General Setup

  1. Go to Business Settings → Store Connections.
  2. Click + Add Connection and select your platform.
  3. Enter the required credentials.
  4. Click Validate to test, then Save.
  5. Copy the webhook URL and configure it in your store.
  6. Optionally click Sync Products to import your catalog.

Shopify

Credentials: Access Token, API Secret, Store URL (mystore.myshopify.com)

Features: Product sync, HMAC-SHA256 webhook verification, COD support, order tracking.

WooCommerce

Credentials: Consumer Key, Consumer Secret, Webhook Secret, Store URL

Features: Product sync via REST API, HMAC-SHA256 verification, COD support.

YouCan

Credentials: Access Token, Store URL

Features: Product sync, HMAC-SHA256 verification. Popular in Morocco.

LightFunnels

Credentials: Access Token, Client Secret, Store URL

Features: GraphQL product sync, HMAC-SHA256 verification. Popular in MENA.

Abandoned Cart Recovery

When a shopper starts a checkout in your store but never finishes it, the Agent can message them on WhatsApp to bring them back. Turn it on under Business Settings → Templates → Abandoned Cart.

Which platforms support it

Shopify, supported automatically. Nothing to configure in your store.

WooCommerce, YouCan, LightFunnels, these platforms do not send abandoned checkout data at all, so recovery cannot work on its own. Use the Custom Webhook bridge below.

No store platform reports a cart as "abandoned". Replyk decides: it watches the checkout, and if the shopper goes quiet for the wait period you choose (15 minutes to 24 hours), the cart counts as abandoned. If they come back and keep going, the timer restarts, and if they complete the purchase no message is ever sent.

What the customer receives

One WhatsApp template listing what they left behind. It is capped at one recovery message per customer per 24 hours no matter how many carts they abandon, is never sent to a number you blocked, and counts toward your plan's template message limit.

Bridging another platform

Create a Manual/Custom connection (below), then have your cart-abandonment plugin, Zapier, or Make POST the cart to the same webhook URL with an extra header:

http
POST /api/store-webhook/MANUAL/{connectionId}
Content-Type: application/json
x-webhook-secret: YOUR_WEBHOOK_SECRET
x-webhook-event: abandoned_cart

{
 "external_checkout_id": "CART-98765",
 "customer_name": "Jane Doe",
 "customer_phone": "+14155550123",
 "customer_city": "Springfield",
 "total_amount": 350.00,
 "currency_code": "USD",
 "recovery_url": "https://yourstore.com/cart/recover/98765",
 "items": [
 { "sku": "ARG-100", "quantity": 2, "price": 150.00 }
 ]
}

Send the same cart again on every update, keeping external_checkout_id the same, and the wait period restarts each time. The fields match an order payload; recovery_url is the link back into the customer's cart.

Manual / Custom Store (Webhook API)

For custom platforms. You receive a webhook endpoint and secret to send orders from any system.

1

Create a Manual Connection

Go to Store Connections, click + Add Connection, select Manual/Custom, name it, and save.

Save the webhook secret immediately. It won't be shown again.
2

Authenticate Your Requests

Include your webhook secret in the x-webhook-secret header.

http
POST /api/store-webhook/MANUAL/{connectionId}
Content-Type: application/json
x-webhook-secret: YOUR_WEBHOOK_SECRET
3

Send Order Payloads

Required fields: external_order_id, customer_name, customer_phone, total_amount, items (array with sku, quantity, price).

json
{
 "external_order_id": "ORD-12345",
 "external_order_number": "INV-2026-001",
 "customer_name": "Jane Doe",
 "customer_phone": "+14155550123",
 "customer_email": "[email protected]",
 "customer_address": "123 Main St",
 "customer_city": "Springfield",
 "customer_country": "US",
 "total_amount": 350.00,
 "subtotal": 300.00,
 "shipping_cost": 50.00,
 "discount": 0,
 "currency_code": "USD",
 "payment_method": "COD",
 "notes": "Please deliver in the morning",
 "items": [
 {
 "sku": "ARG-100",
 "quantity": 2,
 "price": 150.00
 }
 ]
}
4

Test with cURL

bash
curl -X POST \
 https://replyk.io/api/store-webhook/MANUAL/{connectionId} \
 -H "Content-Type: application/json" \
 -H "x-webhook-secret: YOUR_WEBHOOK_SECRET" \
 -d '{
 "external_order_id": "ORD-12345",
 "customer_name": "Jane Doe",
 "customer_phone": "+14155550123",
 "total_amount": 350,
 "currency_code": "USD",
 "items": [
 { "sku": "PROD-001", "quantity": 1, "price": 350 }
 ]
 }'
5

Response Codes

Success (200):

json
{
 "success": true,
 "orderId": "clx1abc...",
 "orderNumber": "ORD-26-001-01-A1"
}

Error (400):

json
{
 "statusCode": 400,
 "message": "Validation failed",
 "errors": [
 "customer_phone must be a string",
 "items must contain at least 1 element"
 ]
}

Other codes: 401 (invalid secret), 404 (connection not found), 409 (duplicate order).

Still need help?

Our team replies within one business day. Tell us what you're stuck on and we'll guide you through it.

Contact support

Browse all help topics