Skip to content

Commit 3be0456

Browse files
committed
add Rokt.CommerceEventType custom flag and isRoktCommerceType helper for new commerce event types
1 parent f7d43b0 commit 3be0456

4 files changed

Lines changed: 46 additions & 0 deletions

File tree

src/events.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,13 @@ export default function Events(mpInstance) {
174174
ProductList: productList,
175175
};
176176

177+
if (Types.ProductActionType.isRoktCommerceType(productActionType)) {
178+
event.CustomFlags = event.CustomFlags || {};
179+
event.CustomFlags[
180+
'Rokt.CommerceEventType'
181+
] = Types.ProductActionType.getExpansionName(productActionType);
182+
}
183+
177184
if (mpInstance._Helpers.isObject(transactionAttributes)) {
178185
mpInstance._Ecommerce.convertTransactionAttributesToProductAction(
179186
transactionAttributes,

src/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,10 @@ export const ProductActionType = {
312312
PaymentFailed: 17 as const,
313313
RefundInitiated: 18 as const,
314314

315+
isRoktCommerceType: (id: number): boolean => {
316+
return id >= ProductActionType.ViewCart && id <= ProductActionType.RefundInitiated;
317+
},
318+
315319
getName: (id: number): string => {
316320
switch (id) {
317321
case ProductActionType.AddToCart:

test/jest/types.spec.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,40 @@ describe('ProductActionType', () => {
615615
expect(ProductActionType.getExpansionName(NaN)).toBe('unknown');
616616
});
617617
});
618+
619+
describe('#isRoktCommerceType', () => {
620+
it('returns true for Rokt Brain commerce types (11-18)', () => {
621+
expect(ProductActionType.isRoktCommerceType(ViewCart)).toBe(true);
622+
expect(ProductActionType.isRoktCommerceType(AddShippingInfo)).toBe(true);
623+
expect(ProductActionType.isRoktCommerceType(AddPaymentInfo)).toBe(true);
624+
expect(ProductActionType.isRoktCommerceType(PaymentMethodSelected)).toBe(true);
625+
expect(ProductActionType.isRoktCommerceType(PaymentAttempted)).toBe(true);
626+
expect(ProductActionType.isRoktCommerceType(PaymentSucceeded)).toBe(true);
627+
expect(ProductActionType.isRoktCommerceType(PaymentFailed)).toBe(true);
628+
expect(ProductActionType.isRoktCommerceType(RefundInitiated)).toBe(true);
629+
});
630+
631+
it('returns false for standard mParticle commerce types (0-10)', () => {
632+
expect(ProductActionType.isRoktCommerceType(Unknown)).toBe(false);
633+
expect(ProductActionType.isRoktCommerceType(AddToCart)).toBe(false);
634+
expect(ProductActionType.isRoktCommerceType(RemoveFromCart)).toBe(false);
635+
expect(ProductActionType.isRoktCommerceType(Checkout)).toBe(false);
636+
expect(ProductActionType.isRoktCommerceType(CheckoutOption)).toBe(false);
637+
expect(ProductActionType.isRoktCommerceType(Click)).toBe(false);
638+
expect(ProductActionType.isRoktCommerceType(ViewDetail)).toBe(false);
639+
expect(ProductActionType.isRoktCommerceType(Purchase)).toBe(false);
640+
expect(ProductActionType.isRoktCommerceType(Refund)).toBe(false);
641+
expect(ProductActionType.isRoktCommerceType(AddToWishlist)).toBe(false);
642+
expect(ProductActionType.isRoktCommerceType(RemoveFromWishlist)).toBe(false);
643+
});
644+
645+
it('returns false for out-of-range values', () => {
646+
expect(ProductActionType.isRoktCommerceType(-1)).toBe(false);
647+
expect(ProductActionType.isRoktCommerceType(19)).toBe(false);
648+
expect(ProductActionType.isRoktCommerceType(100)).toBe(false);
649+
expect(ProductActionType.isRoktCommerceType(NaN)).toBe(false);
650+
});
651+
});
618652
});
619653

620654
describe('RoktEvents', () => {

test/src/tests-mparticle-instance-manager.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ describe('mParticle instance manager', () => {
5050
'PaymentSucceeded',
5151
'PaymentFailed',
5252
'RefundInitiated',
53+
'isRoktCommerceType',
5354
'getName',
5455
'getExpansionName',
5556
]

0 commit comments

Comments
 (0)