Fix/enhanced tracking (#127)

* fix: adds tracking of returns and cancellations

* fix: adds tracking of returns and cancellations
This commit is contained in:
Sebastian Rindom
2020-10-17 17:05:49 +02:00
committed by GitHub
parent 4f577a358f
commit a238fad7ea

View File

@@ -1,5 +1,49 @@
class OrderSubscriber {
constructor({ segmentService, eventBusService }) {
eventBusService.subscribe(
"order.items_returned",
async ({ order, return: ret }) => {
const shipping = []
if (ret.shipping_method && ret.shipping_method.price) {
shipping.push({
...ret.shipping_method,
price: -1 * ret.shipping_method.price,
})
}
const toBuildFrom = {
...order,
shipping_methods: shipping,
items: ret.items.map((i) =>
order.items.find((l) => l._id === i.item_id)
),
}
const orderData = await segmentService.buildOrder(toBuildFrom)
const orderEvent = {
event: "Order Refunded",
userId: order.customer_id,
properties: orderData,
timestamp: new Date(),
}
segmentService.track(orderEvent)
}
)
eventBusService.subscribe("order.canceled", async (order) => {
const date = new Date()
const orderData = await segmentService.buildOrder(order)
const orderEvent = {
event: "Order Cancelled",
userId: order.customer_id,
properties: orderData,
timestamp: date,
}
segmentService.track(orderEvent)
})
eventBusService.subscribe("order.placed", async (order) => {
const date = new Date(parseInt(order.created))
const orderData = await segmentService.buildOrder(order)