Platform Webhooks
Configure your e-commerce platform to send order and customer data to edrone automatically via webhooks.
Webhooks let your platform push data to edrone in real-time. This is essential for order tracking, especially when JavaScript tracking isn't available (e.g., headless checkout, external payment processors).
Overview
When a customer completes an order on your store, the platform can send a webhook to edrone with the order details. edrone processes this data and forwards it to the Trace API.
Your Platform → Webhook → api.edrone.me → Trace API
Shopify
Webhook URL
https://api.edrone.me/shopifywebhook?app_id=YOUR_APP_ID
Setup in Shopify Admin
- Go to Settings → Notifications → Webhooks
- Click Create webhook
- Configure:
- Event:
Order creation(orders/create) - Format: JSON
- URL:
https://api.edrone.me/shopifywebhook?app_id=YOUR_APP_ID
- Event:
- Click Save
For order cancellations, create another webhook:
- Event:
Order cancellation(orders/cancelled) - URL: Same as above
Supported events
| Event | Action in edrone |
|---|---|
orders/create | Creates order event with products, customer data, totals |
orders/cancelled | Creates order_cancel event |
Payload mapping
edrone extracts the following from Shopify's webhook payload:
| Shopify field | edrone field |
|---|---|
email | email |
billing_address.first_name | first_name |
billing_address.last_name | last_name |
billing_address.country | country |
billing_address.city | city |
billing_address.phone | phone |
order_number | order_id |
total_price | order_payment_value, base_payment_value |
currency | order_currency, base_currency |
created_at | utc_time |
line_items[].product_id | product_ids (pipe-separated) |
line_items[].name | product_titles (pipe-separated) |
line_items[].sku | product_skus (pipe-separated) |
buyer_accepts_marketing | subscriber_status (1 if true) |
cancel_reason | Triggers order_cancel action |
Marketing consent
If buyer_accepts_marketing is true in the Shopify payload:
subscriber_statusis set to1customer_tagsis set to"From PopUp"
This automatically subscribes the customer to your newsletter.
Shoper
Webhook URL
https://api.edrone.me/shoperwebhook?app_id=YOUR_APP_ID
Setup in Shoper Admin
- Go to Integrations → Webhooks (or Ustawienia → Webhooki)
- Click Add webhook
- Configure:
- Event:
order.create - URL:
https://api.edrone.me/shoperwebhook?app_id=YOUR_APP_ID - Format: JSON
- Event:
- Save
Supported events
| Event | Description |
|---|---|
order.create | New order placed |
order.edit | Order modified |
order.paid | Payment confirmed |
order.status | Order status changed |
Expected payload format
Shoper should send JSON with this structure:
{
"email": "customer@example.com",
"order_id": "12345",
"sum": "199.99",
"currency_name": "PLN",
"date": "2024-01-15T10:30:00Z",
"promo_code": "WINTER20",
"origin": "web",
"billingAddress": {
"firstname": "Jan",
"lastname": "Kowalski",
"country": "Poland",
"city": "Warsaw",
"phone": "+48123456789"
},
"products": [
{
"product_id": "SKU123",
"name": "Product Name",
"quantity": 2
}
]
}
Payload mapping
| Shoper field | edrone field |
|---|---|
email | email |
billingAddress.firstname | first_name |
billingAddress.lastname | last_name |
billingAddress.country | country |
billingAddress.city | city |
billingAddress.phone | phone |
order_id | order_id |
sum | order_payment_value, base_payment_value |
currency_name | order_currency, base_currency |
date | utc_time |
promo_code | coupon |
origin | order_origin |
products[].product_id | product_ids (pipe-separated) |
products[].name | product_titles (pipe-separated) |
products[].quantity | product_counts (pipe-separated) |
Shoper Newsletter Subscription
For tracking newsletter subscriptions from Shoper:
Webhook URL
https://api.edrone.me/shoper-subscribe-webhook?app_id=YOUR_APP_ID
Setup
- In Shoper Admin, create webhook for
subscriber.createevent - Point to the URL above
This tracks when customers subscribe to your newsletter directly in Shoper.
Testing webhooks
Using cURL
Test your Shopify webhook setup:
curl -X POST "https://api.edrone.me/shopifywebhook?app_id=YOUR_APP_ID" \
-H "Content-Type: application/json" \
-d '{
"email": "test@example.com",
"order_number": "TEST-001",
"total_price": "99.99",
"currency": "USD",
"created_at": "2024-01-15T10:30:00Z",
"billing_address": {
"first_name": "Test",
"last_name": "User",
"country": "United States",
"city": "New York"
},
"line_items": [
{
"product_id": "123",
"name": "Test Product",
"sku": "SKU123"
}
]
}'
Test your Shoper webhook setup:
curl -X POST "https://api.edrone.me/shoperwebhook?app_id=YOUR_APP_ID" \
-H "Content-Type: application/json" \
-d '{
"email": "test@example.com",
"order_id": "TEST-001",
"sum": "199.99",
"currency_name": "PLN",
"date": "2024-01-15T10:30:00Z",
"billingAddress": {
"firstname": "Test",
"lastname": "User",
"country": "Poland",
"city": "Warsaw"
},
"products": [
{
"product_id": "123",
"name": "Test Product",
"quantity": 1
}
]
}'
Troubleshooting
Webhook not received
- Check App ID - Ensure
app_idparameter is correct in the URL - Check URL - Verify the full webhook URL is correct
- Check payload - Ensure JSON is valid and contains required fields
- Check platform logs - Most platforms show webhook delivery status
Order not appearing in edrone
- Missing email - Order must have customer email
- Invalid JSON - Payload must be valid JSON
- Missing app_id - Query parameter
app_idis required
Duplicate orders
Webhook may be called multiple times. edrone handles duplicates automatically - orders with the same order_id update the existing record.
Custom platform integration
If your platform isn't Shopify or Shoper, you can send webhooks directly to the Trace API:
curl -X POST "https://api.edrone.me/trace" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "app_id=YOUR_APP_ID&\
sender_type=server&\
action_type=order&\
email=customer@example.com&\
first_name=John&\
last_name=Doe&\
order_id=ORD-12345&\
order_payment_value=199.99&\
base_payment_value=199.99&\
order_currency=USD&\
base_currency=USD&\
product_ids=SKU1|SKU2&\
product_titles=Product 1|Product 2&\
product_counts=1|2&\
country=United States&\
city=New York"
See Trace API Reference for all available fields.
Related resources
- Backend Integration - Server-side event tracking
- Trace API Reference - Complete API documentation
- Subscription Sync Webhook - Receive subscription updates from edrone