Compare commits

...
5 Commits
Author SHA1 Message Date
Unchained 4d428b3ff0 Merge branch 'dev'
Build and Deploy / build (push) Has been cancelled
2026-03-25 19:58:36 +02:00
Unchained 646d057970 Merge branch 'feature/saleor-emails' into dev 2026-03-25 19:58:17 +02:00
Unchained a0fa0f5401 fix(analytics): add OpenPanel revenue tracking to webhooks
Add OpenPanel import and initialization that was missing from webhook route.
Add order_received and revenue tracking when orders are confirmed.
Revenue tracking uses op.revenue() method with amount, currency,
order_id, and order_number properties.
2026-03-25 19:57:43 +02:00
Unchained aa7a0ed3c8 fix(webhook): remove incorrect /100 division from formatPrice
Saleor stores amounts as actual currency values (e.g., 5479 RSD),
not as cents (e.g., 547900). The formatPrice function was incorrectly
dividing by 100, causing prices like 5479 RSD to display as 55 RSD.
2026-03-25 19:53:08 +02:00
Unchained 15a65758d7 fix(webhook): remove incorrect /100 division from formatPrice
Saleor stores amounts as actual currency values (e.g., 5479 RSD),
not as cents (e.g., 547900). The formatPrice function was incorrectly
dividing by 100, causing prices like 5479 RSD to display as 55 RSD.
2026-03-25 19:51:27 +02:00
+18
View File
@@ -320,6 +320,24 @@ async function handleOrderConfirmed(order: SaleorOrder, eventType: string) {
eventType: "ORDER_CONFIRMED", eventType: "ORDER_CONFIRMED",
orderId: order.id, orderId: order.id,
}); });
// Track order in OpenPanel
op.track("order_received", {
order_id: order.id,
order_number: order.number,
total: order.total.gross.amount,
currency: order.total.gross.currency,
item_count: order.lines.reduce((sum, line) => sum + line.quantity, 0),
customer_email: customerEmail,
event_type: eventType,
});
// Track revenue using OpenPanel's revenue method
op.revenue(order.total.gross.amount, {
currency: order.total.gross.currency,
order_id: order.id,
order_number: order.number,
});
} }
async function handleOrderFulfilled(order: SaleorOrder) { async function handleOrderFulfilled(order: SaleorOrder) {