-
Notifications
You must be signed in to change notification settings - Fork 12
Braze/Appboy device-mode destination is ignoring the product_id field on the 'Order Completed' event. #25
Description
Copied from segmentio/analytics-react-native#277
Hello,
Upon sending the payload below, for the event 'Order Completed', I am getting the error The productId is empty, not logging in-app purchase to Appboy. in android's logcat. This is with verbose logging enabled on Appboy. It's not showing up on Braze's dashboard either.
Interestingly, if I added id alongside the product_id inside the products array, it will log the purchases properly, without the above error
Analytics.track('Order Completed', {
"app_mode": "Regular",
"categories": [
null,
null
],
"discount": 18.75,
"first_order": false,
"line_item_count": 2,
"order_number": "R270573084",
"payment_method": "cash on delivery",
"products": [
{
"id": "27", // if I remove this field, purchases don't logged, but the v2 spec said the field is called product_id, not id
"brand": null,
"category": null,
"image_url": "https://d34e5984yv831d.cloudfront.net/spree/images/attachments/000/000/007/product/open-uri20170530-4-16z7kba?1496181795",
"locale": "en",
"name": "Neutrogena Visibly Clear 2In1 Wash 150ml",
"price": 35.5,
"product_id": "27", // if I add id: "27" as well in the products array, the purchases would get logged.
"product_name": null,
"quantity": 1,
"url": "https://sandbox.danube.sa/en/products/27"
},
{
"id": "2621", // if I remove this field, purchases don't logged, but the v2 spec said the field is called product_id, not id
"brand": null,
"category": null,
"image_url": "https://d34e5984yv831d.cloudfront.net/spree/images/attachments/000/002/563/product/open-uri20170530-4-s76690?1496183783",
"locale": "en",
"name": "Nova Drinking Water 0.6 Ltr",
"price": 152,
"product_id": "2621", // if I add id: "2621" as well in the products array, the purchases would get logged.
"product_name": null,
"quantity": 1,
"url": "https://sandbox.danube.sa/en/products/2621"
}
],
"shipping": 19,
"shipping_method": "Home Delivery",
"status": "order placed",
"subtotal": 187.5,
"total": 187.75
})I created the above payload based on this document: https://segment.com/docs/connections/spec/ecommerce/v2/
Platform: react-native, Android
Android Appboy SDK version: +--- com.appboy:android-sdk-base:{strictly 12.0.0} -> 12.0.0 (c)
Android Segment Analytics version: +--- com.segment.analytics.android:analytics:{strictly 4.9.1-beta} -> 4.9.1-beta (c)
React Native react-native-appboy-sdk: 1.26.0
React Native @segment/analytics-react-native-appboy: 1.4.1
I've only tested this on Android. I'll update this issue once I've tested this on iOS.
Extra note: Niall Brennan from segment dropped a note from Segment support that the issue may be related to this line. https://github.com/Appboy/appboy-segment-android/blob/master/appboy-segment-integration/src/main/java/com/segment/analytics/android/integrations/appboy/AppboyIntegration.java#L263
EDIT: Worth noting that it's completely ignoring the quantity field, too - if quantity is 3, it shows up in the dashboard as 1, but I guess that means a ticket rename or a new ticket is needed? Leaving it here so that I remember.
EDIT2: We've decided to integrate directly for this event. See #25 (comment) for further info.