Skip to content

Commit a695f67

Browse files
authored
Merge pull request #36 from Relewise/feat/carttracking-data
feat: expose data property bag on cart trackings
2 parents af3daf4 + 6d50ded commit a695f67

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

lib/src/tracker.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { RelewiseClient, RelewiseClientOptions } from './relewise.client';
22
import {
33
TrackOrderRequest, TrackCartRequest, TrackProductViewRequest, TrackProductCategoryViewRequest, TrackContentViewRequest, TrackContentCategoryViewRequest,
4-
TrackBrandViewRequest, User, TrackSearchTermRequest, TrackUserUpdateRequest,
4+
TrackBrandViewRequest, User, TrackSearchTermRequest, TrackUserUpdateRequest, DataValue,
55
} from './models/data-contracts';
66

77
export class Tracker extends RelewiseClient {
@@ -16,7 +16,7 @@ export class Tracker extends RelewiseClient {
1616
orderNumber: string,
1717
/** @deprecated Use orderNumber instead. */
1818
trackingNumber?: string,
19-
lineItems: { productId: string, variantId?: string, lineTotal: number, quantity: number }[],
19+
lineItems: { productId: string, variantId?: string, lineTotal: number, quantity: number }[],
2020
cartName?: string
2121
}): Promise<void | undefined> {
2222
return this.request<TrackOrderRequest, void>('TrackOrderRequest', {
@@ -40,7 +40,13 @@ export class Tracker extends RelewiseClient {
4040
});
4141
}
4242

43-
public async trackCart({ user, subtotal, lineItems, cartName = 'default' }: { user?: User, subtotal: { currency: string, amount: number }, lineItems: { productId: string, variantId?: string, lineTotal: number, quantity: number }[], cartName?: string }): Promise<void | undefined> {
43+
public async trackCart({ user, subtotal, lineItems, data, cartName = 'default' }: {
44+
user?: User,
45+
subtotal: { currency: string, amount: number },
46+
lineItems: { productId: string, variantId?: string, lineTotal: number, quantity: number }[],
47+
data?: Record<string, DataValue>,
48+
cartName?: string
49+
}): Promise<void | undefined> {
4450
return this.request<TrackCartRequest, void>('TrackCartRequest', {
4551
$type: 'Relewise.Client.Requests.Tracking.TrackCartRequest, Relewise.Client',
4652
cart: {
@@ -56,6 +62,7 @@ export class Tracker extends RelewiseClient {
5662
subtotal: { amount: subtotal.amount, currency: { value: subtotal.currency }},
5763
name: cartName,
5864
user: user,
65+
data: data,
5966
},
6067
});
6168
}

lib/tests/integration-tests/tracker.integration.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Tracker, UserFactory } from '../../src';
1+
import { DataValueFactory, Tracker, UserFactory } from '../../src';
22
import { test, expect } from '@jest/globals'
33

44
const { npm_config_API_KEY: API_KEY, npm_config_DATASET_ID: DATASET_ID, npm_config_SERVER_URL: SERVER_URL } = process.env;
@@ -53,6 +53,7 @@ test('Track Cart', async() => {
5353
currency: 'DKK',
5454
},
5555
user: UserFactory.anonymous(),
56+
data: { 'basketId': DataValueFactory.string('basketid') },
5657
});
5758

5859
expect(result).toBeUndefined();

0 commit comments

Comments
 (0)