Skip to content

Commit e95295f

Browse files
authored
Merge pull request #720 from Iterable/evan/MOB-8226-add-attribution-info-to-track-purchase
[MOB-8226] add attribution info to track purchase
2 parents 0341b1d + f925e44 commit e95295f

File tree

4 files changed

+25
-5
lines changed

4 files changed

+25
-5
lines changed

iterableapi/src/androidTest/java/com/iterable/iterableapi/IterableApiRequestsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public void testTrackPurchaseWithDataFields() throws Exception {
146146
JSONObject dataFields = new JSONObject();
147147
dataFields.put("field", "testValue");
148148

149-
IterableApi.sharedInstance.trackPurchase(100.0, items, dataFields);
149+
IterableApi.sharedInstance.trackPurchase(100.0, items, dataFields, null);
150150

151151
RecordedRequest request = server.takeRequest(1, TimeUnit.SECONDS);
152152
assertNotNull(request);

iterableapi/src/main/java/com/iterable/iterableapi/CommerceItem.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import java.util.List;
1111

1212
/**
13-
* Represents a product. These are used by the commerce API; see {@link IterableApi#trackPurchase(double, List, JSONObject)}
13+
* Represents a product. These are used by the commerce API; see {@link IterableApi#trackPurchase(double, List, JSONObject, IterableAttributionInfo)}
1414
*/
1515
public class CommerceItem {
1616

iterableapi/src/main/java/com/iterable/iterableapi/IterableApi.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,7 @@ public void updateCart(@NonNull List<CommerceItem> items) {
10261026
* @param items list of purchased items
10271027
*/
10281028
public void trackPurchase(double total, @NonNull List<CommerceItem> items) {
1029-
trackPurchase(total, items, null);
1029+
trackPurchase(total, items, null, null);
10301030
}
10311031

10321032
/**
@@ -1040,7 +1040,22 @@ public void trackPurchase(double total, @NonNull List<CommerceItem> items, @Null
10401040
return;
10411041
}
10421042

1043-
apiClient.trackPurchase(total, items, dataFields);
1043+
apiClient.trackPurchase(total, items, dataFields, null);
1044+
}
1045+
1046+
/**
1047+
* Tracks a purchase.
1048+
* @param total total purchase amount
1049+
* @param items list of purchased items
1050+
* @param dataFields a `JSONObject` containing any additional information to save along with the event
1051+
* @param attributionInfo a `JSONObject` containing information about what the purchase was attributed to
1052+
*/
1053+
public void trackPurchase(double total, @NonNull List<CommerceItem> items, @Nullable JSONObject dataFields, @Nullable IterableAttributionInfo attributionInfo) {
1054+
if (!checkSDKInitialization()) {
1055+
return;
1056+
}
1057+
1058+
apiClient.trackPurchase(total, items, dataFields, attributionInfo);
10441059
}
10451060

10461061
/**

iterableapi/src/main/java/com/iterable/iterableapi/IterableApiClient.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public void updateCart(@NonNull List<CommerceItem> items) {
118118
}
119119
}
120120

121-
public void trackPurchase(double total, @NonNull List<CommerceItem> items, @Nullable JSONObject dataFields) {
121+
public void trackPurchase(double total, @NonNull List<CommerceItem> items, @Nullable JSONObject dataFields, @Nullable IterableAttributionInfo attributionInfo) {
122122
JSONObject requestJSON = new JSONObject();
123123
try {
124124
JSONArray itemsArray = new JSONArray();
@@ -136,6 +136,11 @@ public void trackPurchase(double total, @NonNull List<CommerceItem> items, @Null
136136
requestJSON.put(IterableConstants.KEY_DATA_FIELDS, dataFields);
137137
}
138138

139+
if (attributionInfo != null) {
140+
requestJSON.putOpt(IterableConstants.KEY_CAMPAIGN_ID, attributionInfo.campaignId);
141+
requestJSON.putOpt(IterableConstants.KEY_TEMPLATE_ID, attributionInfo.templateId);
142+
}
143+
139144
sendPostRequest(IterableConstants.ENDPOINT_TRACK_PURCHASE, requestJSON);
140145
} catch (JSONException e) {
141146
e.printStackTrace();

0 commit comments

Comments
 (0)