@nimee/inforu 1.0.20 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/automations.js +4 -0
- package/dist/automations.js.map +1 -1
- package/dist/ecommerce.d.ts +13 -1
- package/dist/ecommerce.js +46 -14
- package/dist/ecommerce.js.map +1 -1
- package/package.json +1 -1
- package/src/automations.ts +4 -0
- package/src/ecommerce.ts +58 -13
package/dist/automations.js
CHANGED
|
@@ -72,6 +72,10 @@ function normalizeEcommerceData(data, endUser) {
|
|
|
72
72
|
storeUrl: data.storeUrl || data.Store_url || "",
|
|
73
73
|
ip: data.ip || data.IP || "",
|
|
74
74
|
contactRefId: data.contactRefId || ((_c = data._id) === null || _c === void 0 ? void 0 : _c.toString()) || ((_d = endUser === null || endUser === void 0 ? void 0 : endUser._id) === null || _d === void 0 ? void 0 : _d.toString()) || "",
|
|
75
|
+
ticketsLink: data.ticketsLink || "",
|
|
76
|
+
eventName: data.eventName || "",
|
|
77
|
+
eventStartDate: data.eventStartDate || "",
|
|
78
|
+
eventImage: data.eventImage || "",
|
|
75
79
|
};
|
|
76
80
|
}
|
|
77
81
|
function triggerEventToStartAutomation(params) {
|
package/dist/automations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automations.js","sourceRoot":"","sources":["../src/automations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"automations.js","sourceRoot":"","sources":["../src/automations.ts"],"names":[],"mappings":"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"}
|
package/dist/ecommerce.d.ts
CHANGED
|
@@ -39,6 +39,10 @@ export interface IEcommerceOrderData {
|
|
|
39
39
|
ShippingDescription?: string;
|
|
40
40
|
OrderTime: string;
|
|
41
41
|
OrderItems: IOrderItem[];
|
|
42
|
+
TicketsLink?: string;
|
|
43
|
+
EventImage?: string;
|
|
44
|
+
EventName?: string;
|
|
45
|
+
EventStartTimeAndDate?: string;
|
|
42
46
|
}
|
|
43
47
|
export interface IEcommercePayload {
|
|
44
48
|
Data: IEcommerceOrderData;
|
|
@@ -48,8 +52,12 @@ export declare enum EcommerceEventType {
|
|
|
48
52
|
PURCHASED_DIGITAL_BOOK = "PURCHASED_DIGITAL_BOOK",
|
|
49
53
|
PURCHASED_VOD_PRODUCT = "PURCHASED_VOD_PRODUCT",
|
|
50
54
|
PURCHASED_EVENT_TICKET = "PURCHASED_EVENT_TICKET",
|
|
55
|
+
PURCHASED_SUBSCRIPTION = "PURCHASED_SUBSCRIPTION",
|
|
51
56
|
ABANDONED_CART_BOOK = "ABANDONED_CART_BOOK",
|
|
52
|
-
ABANDONED_CART = "ABANDONED_CART"
|
|
57
|
+
ABANDONED_CART = "ABANDONED_CART",// Generic abandoned cart
|
|
58
|
+
REFUND = "REFUND",
|
|
59
|
+
ORDER_PENDING = "ORDER_PENDING",
|
|
60
|
+
ORDER_REJECTED = "ORDER_REJECTED"
|
|
53
61
|
}
|
|
54
62
|
export interface IOrderProduct {
|
|
55
63
|
code: string;
|
|
@@ -91,6 +99,10 @@ export interface IEcommercePurchaseData {
|
|
|
91
99
|
cartUrl?: string;
|
|
92
100
|
abandonedAt?: string | Date;
|
|
93
101
|
reminderCount?: number;
|
|
102
|
+
ticketsLink?: string;
|
|
103
|
+
eventName?: string;
|
|
104
|
+
eventStartDate?: string;
|
|
105
|
+
eventImage?: string;
|
|
94
106
|
}
|
|
95
107
|
/**
|
|
96
108
|
* Sends ecommerce order data to InfoRu API based on event type
|
package/dist/ecommerce.js
CHANGED
|
@@ -24,9 +24,14 @@ var EcommerceEventType;
|
|
|
24
24
|
EcommerceEventType["PURCHASED_DIGITAL_BOOK"] = "PURCHASED_DIGITAL_BOOK";
|
|
25
25
|
EcommerceEventType["PURCHASED_VOD_PRODUCT"] = "PURCHASED_VOD_PRODUCT";
|
|
26
26
|
EcommerceEventType["PURCHASED_EVENT_TICKET"] = "PURCHASED_EVENT_TICKET";
|
|
27
|
+
EcommerceEventType["PURCHASED_SUBSCRIPTION"] = "PURCHASED_SUBSCRIPTION";
|
|
27
28
|
// Abandoned cart events
|
|
28
29
|
EcommerceEventType["ABANDONED_CART_BOOK"] = "ABANDONED_CART_BOOK";
|
|
29
30
|
EcommerceEventType["ABANDONED_CART"] = "ABANDONED_CART";
|
|
31
|
+
// Order status events
|
|
32
|
+
EcommerceEventType["REFUND"] = "REFUND";
|
|
33
|
+
EcommerceEventType["ORDER_PENDING"] = "ORDER_PENDING";
|
|
34
|
+
EcommerceEventType["ORDER_REJECTED"] = "ORDER_REJECTED";
|
|
30
35
|
})(EcommerceEventType || (exports.EcommerceEventType = EcommerceEventType = {}));
|
|
31
36
|
// Map internal event types to InfoRu API event names
|
|
32
37
|
const EVENT_TYPE_TO_API_EVENT = {
|
|
@@ -34,8 +39,12 @@ const EVENT_TYPE_TO_API_EVENT = {
|
|
|
34
39
|
[EcommerceEventType.PURCHASED_DIGITAL_BOOK]: "sales_order_place_after",
|
|
35
40
|
[EcommerceEventType.PURCHASED_VOD_PRODUCT]: "sales_order_place_after",
|
|
36
41
|
[EcommerceEventType.PURCHASED_EVENT_TICKET]: "sales_order_place_after",
|
|
42
|
+
[EcommerceEventType.PURCHASED_SUBSCRIPTION]: "sales_order_place_after",
|
|
37
43
|
[EcommerceEventType.ABANDONED_CART_BOOK]: "cart_abandoned",
|
|
38
44
|
[EcommerceEventType.ABANDONED_CART]: "cart_abandoned",
|
|
45
|
+
[EcommerceEventType.REFUND]: "sales_order_place_after",
|
|
46
|
+
[EcommerceEventType.ORDER_PENDING]: "sales_order_place_after",
|
|
47
|
+
[EcommerceEventType.ORDER_REJECTED]: "sales_order_place_after",
|
|
39
48
|
};
|
|
40
49
|
/**
|
|
41
50
|
* Helper function to determine product type from event type
|
|
@@ -50,10 +59,18 @@ function getProductType(eventType) {
|
|
|
50
59
|
return "vod";
|
|
51
60
|
case EcommerceEventType.PURCHASED_EVENT_TICKET:
|
|
52
61
|
return "event_ticket";
|
|
62
|
+
case EcommerceEventType.PURCHASED_SUBSCRIPTION:
|
|
63
|
+
return "subscription";
|
|
53
64
|
case EcommerceEventType.ABANDONED_CART_BOOK:
|
|
54
65
|
return "abandoned_book";
|
|
55
66
|
case EcommerceEventType.ABANDONED_CART:
|
|
56
67
|
return "abandoned_cart";
|
|
68
|
+
case EcommerceEventType.REFUND:
|
|
69
|
+
return "refund";
|
|
70
|
+
case EcommerceEventType.ORDER_PENDING:
|
|
71
|
+
return "pending_order";
|
|
72
|
+
case EcommerceEventType.ORDER_REJECTED:
|
|
73
|
+
return "rejected_order";
|
|
57
74
|
default:
|
|
58
75
|
return "product";
|
|
59
76
|
}
|
|
@@ -63,6 +80,9 @@ function getProductType(eventType) {
|
|
|
63
80
|
*/
|
|
64
81
|
function prepareEcommercePayload(eventType, data) {
|
|
65
82
|
const isAbandonedCart = eventType === EcommerceEventType.ABANDONED_CART_BOOK || eventType === EcommerceEventType.ABANDONED_CART;
|
|
83
|
+
const isRefund = eventType === EcommerceEventType.REFUND;
|
|
84
|
+
const isPending = eventType === EcommerceEventType.ORDER_PENDING;
|
|
85
|
+
const isRejected = eventType === EcommerceEventType.ORDER_REJECTED;
|
|
66
86
|
// Map products to order items
|
|
67
87
|
const orderItems = data.products.map((product) => {
|
|
68
88
|
var _a, _b;
|
|
@@ -73,12 +93,12 @@ function prepareEcommercePayload(eventType, data) {
|
|
|
73
93
|
ProductQty: product.quantity,
|
|
74
94
|
ProductDescription: product.description || null,
|
|
75
95
|
ProductLink: product.link,
|
|
76
|
-
ProductImage: product.image,
|
|
77
|
-
// Custom fields
|
|
78
|
-
Custom1: product.isbn || ((_a = product.eventDate) === null || _a === void 0 ? void 0 : _a.toString()) || product.vodDuration,
|
|
79
|
-
Custom2: product.author || product.eventLocation || ((_b = product.vodExpiry) === null || _b === void 0 ? void 0 : _b.toString()),
|
|
96
|
+
ProductImage: product.image || data.eventImage,
|
|
97
|
+
// Custom fields - eventName and ticketsLink for InfoRu automations
|
|
98
|
+
Custom1: data.eventName || product.isbn || ((_a = product.eventDate) === null || _a === void 0 ? void 0 : _a.toString()) || product.vodDuration,
|
|
99
|
+
Custom2: data.ticketsLink || product.author || product.eventLocation || ((_b = product.vodExpiry) === null || _b === void 0 ? void 0 : _b.toString()),
|
|
80
100
|
Custom3: product.publisher || product.seatNumber || product.vodStreamUrl,
|
|
81
|
-
Custom4: product.format || getProductType(eventType),
|
|
101
|
+
Custom4: data.eventStartDate || product.format || getProductType(eventType),
|
|
82
102
|
Custom5: eventType, // Add the original event type (e.g., PURCHASED_PHYSICAL_BOOK)
|
|
83
103
|
ProductAttributes: [
|
|
84
104
|
// Always include the event category
|
|
@@ -116,12 +136,24 @@ function prepareEcommercePayload(eventType, data) {
|
|
|
116
136
|
case EcommerceEventType.PURCHASED_EVENT_TICKET:
|
|
117
137
|
groupNames.push("event_attendees");
|
|
118
138
|
break;
|
|
139
|
+
case EcommerceEventType.PURCHASED_SUBSCRIPTION:
|
|
140
|
+
groupNames.push("subscription_members");
|
|
141
|
+
break;
|
|
119
142
|
case EcommerceEventType.ABANDONED_CART_BOOK:
|
|
120
143
|
groupNames.push("abandoned_cart_books");
|
|
121
144
|
break;
|
|
122
145
|
case EcommerceEventType.ABANDONED_CART:
|
|
123
146
|
groupNames.push("abandoned_cart_general");
|
|
124
147
|
break;
|
|
148
|
+
case EcommerceEventType.REFUND:
|
|
149
|
+
groupNames.push("refunded_customers");
|
|
150
|
+
break;
|
|
151
|
+
case EcommerceEventType.ORDER_PENDING:
|
|
152
|
+
groupNames.push("pending_orders");
|
|
153
|
+
break;
|
|
154
|
+
case EcommerceEventType.ORDER_REJECTED:
|
|
155
|
+
groupNames.push("rejected_orders");
|
|
156
|
+
break;
|
|
125
157
|
}
|
|
126
158
|
// Determine if physical shipping is needed
|
|
127
159
|
const needsShipping = eventType === EcommerceEventType.PURCHASED_PHYSICAL_BOOK ||
|
|
@@ -144,7 +176,7 @@ function prepareEcommercePayload(eventType, data) {
|
|
|
144
176
|
AddToGroupName: groupNames,
|
|
145
177
|
OrderNumber: data.orderNumber,
|
|
146
178
|
OrderAmount: String(data.orderAmount),
|
|
147
|
-
OrderStatus: isAbandonedCart ? "abandoned" : (data.orderStatus || "processing"),
|
|
179
|
+
OrderStatus: isAbandonedCart ? "abandoned" : isRefund ? "refunded" : isPending ? "pending" : isRejected ? "rejected" : (data.orderStatus || "processing"),
|
|
148
180
|
BillingAddress: data.billingAddress,
|
|
149
181
|
ShippingAddress: needsShipping ? data.shippingAddress : undefined,
|
|
150
182
|
PaymentDescription: data.paymentMethod || "credit card",
|
|
@@ -152,7 +184,11 @@ function prepareEcommercePayload(eventType, data) {
|
|
|
152
184
|
? (data.shippingMethod || "Standard shipping")
|
|
153
185
|
: "Digital delivery - Instant",
|
|
154
186
|
OrderTime: orderTime,
|
|
155
|
-
OrderItems: orderItems
|
|
187
|
+
OrderItems: orderItems,
|
|
188
|
+
TicketsLink: data.ticketsLink,
|
|
189
|
+
EventImage: data.eventImage,
|
|
190
|
+
EventName: data.eventName,
|
|
191
|
+
EventStartTimeAndDate: data.eventStartDate
|
|
156
192
|
}
|
|
157
193
|
};
|
|
158
194
|
}
|
|
@@ -160,7 +196,7 @@ function prepareEcommercePayload(eventType, data) {
|
|
|
160
196
|
* Sends ecommerce order data to InfoRu API based on event type
|
|
161
197
|
*/
|
|
162
198
|
function sendEcommerceOrder(params) {
|
|
163
|
-
var _a, _b, _c, _d, _e;
|
|
199
|
+
var _a, _b, _c, _d, _e, _f;
|
|
164
200
|
return __awaiter(this, void 0, void 0, function* () {
|
|
165
201
|
try {
|
|
166
202
|
const { apiKey, eventType, data } = params;
|
|
@@ -197,13 +233,9 @@ function sendEcommerceOrder(params) {
|
|
|
197
233
|
};
|
|
198
234
|
}
|
|
199
235
|
catch (error) {
|
|
200
|
-
logger_1.default.error(
|
|
201
|
-
error: error instanceof Error ? error.message : error,
|
|
202
|
-
eventType: params.eventType,
|
|
203
|
-
orderNumber: (_b = params.data) === null || _b === void 0 ? void 0 : _b.orderNumber
|
|
204
|
-
});
|
|
236
|
+
logger_1.default.error(`Failed to send ecommerce order | error: ${error instanceof Error ? error.message : error} | eventType: ${params.eventType} | orderNumber: ${(_b = params.data) === null || _b === void 0 ? void 0 : _b.orderNumber}`);
|
|
205
237
|
if (axios_1.default.isAxiosError(error)) {
|
|
206
|
-
throw new error_handler_1.CustomError("ECOMMERCE_API_ERROR", ((_c = error.response) === null || _c === void 0 ? void 0 : _c.status) || 500, `Failed to send ecommerce order: ${((_e = (_d = error.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || error.message}`);
|
|
238
|
+
throw new error_handler_1.CustomError("ECOMMERCE_API_ERROR", ((_c = error.response) === null || _c === void 0 ? void 0 : _c.status) || 500, `Failed to send ecommerce order: ${((_e = (_d = error.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.message) || JSON.stringify((_f = error.response) === null || _f === void 0 ? void 0 : _f.data) || error.message}`);
|
|
207
239
|
}
|
|
208
240
|
throw new error_handler_1.CustomError("ECOMMERCE_ORDER_ERROR", 500, `Failed to process ecommerce order: ${error instanceof Error ? error.message : JSON.stringify(error)}`);
|
|
209
241
|
}
|
package/dist/ecommerce.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecommerce.js","sourceRoot":"","sources":["../src/ecommerce.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAAmD;AACnD,2DAAmC;AACnC,kDAA0B;
|
|
1
|
+
{"version":3,"file":"ecommerce.js","sourceRoot":"","sources":["../src/ecommerce.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/automations.ts
CHANGED
|
@@ -66,6 +66,10 @@ function normalizeEcommerceData(data: any, endUser?: any): IEcommercePurchaseDat
|
|
|
66
66
|
storeUrl: data.storeUrl || data.Store_url || "",
|
|
67
67
|
ip: data.ip || data.IP || "",
|
|
68
68
|
contactRefId: data.contactRefId || data._id?.toString() || endUser?._id?.toString() || "",
|
|
69
|
+
ticketsLink: data.ticketsLink || "",
|
|
70
|
+
eventName: data.eventName || "",
|
|
71
|
+
eventStartDate: data.eventStartDate || "",
|
|
72
|
+
eventImage: data.eventImage || "",
|
|
69
73
|
};
|
|
70
74
|
}
|
|
71
75
|
|
package/src/ecommerce.ts
CHANGED
|
@@ -46,6 +46,10 @@ export interface IEcommerceOrderData {
|
|
|
46
46
|
ShippingDescription?: string;
|
|
47
47
|
OrderTime: string;
|
|
48
48
|
OrderItems: IOrderItem[];
|
|
49
|
+
TicketsLink?: string;
|
|
50
|
+
EventImage?: string;
|
|
51
|
+
EventName?: string;
|
|
52
|
+
EventStartTimeAndDate?: string;
|
|
49
53
|
}
|
|
50
54
|
|
|
51
55
|
export interface IEcommercePayload {
|
|
@@ -59,10 +63,16 @@ export enum EcommerceEventType {
|
|
|
59
63
|
PURCHASED_DIGITAL_BOOK = "PURCHASED_DIGITAL_BOOK",
|
|
60
64
|
PURCHASED_VOD_PRODUCT = "PURCHASED_VOD_PRODUCT",
|
|
61
65
|
PURCHASED_EVENT_TICKET = "PURCHASED_EVENT_TICKET",
|
|
66
|
+
PURCHASED_SUBSCRIPTION = "PURCHASED_SUBSCRIPTION",
|
|
62
67
|
|
|
63
68
|
// Abandoned cart events
|
|
64
69
|
ABANDONED_CART_BOOK = "ABANDONED_CART_BOOK",
|
|
65
70
|
ABANDONED_CART = "ABANDONED_CART", // Generic abandoned cart
|
|
71
|
+
|
|
72
|
+
// Order status events
|
|
73
|
+
REFUND = "REFUND",
|
|
74
|
+
ORDER_PENDING = "ORDER_PENDING",
|
|
75
|
+
ORDER_REJECTED = "ORDER_REJECTED",
|
|
66
76
|
}
|
|
67
77
|
|
|
68
78
|
// Map internal event types to InfoRu API event names
|
|
@@ -71,8 +81,12 @@ const EVENT_TYPE_TO_API_EVENT: Record<EcommerceEventType, string> = {
|
|
|
71
81
|
[EcommerceEventType.PURCHASED_DIGITAL_BOOK]: "sales_order_place_after",
|
|
72
82
|
[EcommerceEventType.PURCHASED_VOD_PRODUCT]: "sales_order_place_after",
|
|
73
83
|
[EcommerceEventType.PURCHASED_EVENT_TICKET]: "sales_order_place_after",
|
|
84
|
+
[EcommerceEventType.PURCHASED_SUBSCRIPTION]: "sales_order_place_after",
|
|
74
85
|
[EcommerceEventType.ABANDONED_CART_BOOK]: "cart_abandoned",
|
|
75
86
|
[EcommerceEventType.ABANDONED_CART]: "cart_abandoned",
|
|
87
|
+
[EcommerceEventType.REFUND]: "sales_order_place_after",
|
|
88
|
+
[EcommerceEventType.ORDER_PENDING]: "sales_order_place_after",
|
|
89
|
+
[EcommerceEventType.ORDER_REJECTED]: "sales_order_place_after",
|
|
76
90
|
};
|
|
77
91
|
|
|
78
92
|
// Interface for product/item in order
|
|
@@ -122,6 +136,14 @@ export interface IEcommercePurchaseData {
|
|
|
122
136
|
cartUrl?: string;
|
|
123
137
|
abandonedAt?: string | Date;
|
|
124
138
|
reminderCount?: number;
|
|
139
|
+
// Link to tickets page
|
|
140
|
+
ticketsLink?: string;
|
|
141
|
+
// Event name for ticket purchases
|
|
142
|
+
eventName?: string;
|
|
143
|
+
// Event start date (formatted string)
|
|
144
|
+
eventStartDate?: string;
|
|
145
|
+
// Event image URL
|
|
146
|
+
eventImage?: string;
|
|
125
147
|
}
|
|
126
148
|
|
|
127
149
|
/**
|
|
@@ -137,10 +159,18 @@ function getProductType(eventType: EcommerceEventType): string {
|
|
|
137
159
|
return "vod";
|
|
138
160
|
case EcommerceEventType.PURCHASED_EVENT_TICKET:
|
|
139
161
|
return "event_ticket";
|
|
162
|
+
case EcommerceEventType.PURCHASED_SUBSCRIPTION:
|
|
163
|
+
return "subscription";
|
|
140
164
|
case EcommerceEventType.ABANDONED_CART_BOOK:
|
|
141
165
|
return "abandoned_book";
|
|
142
166
|
case EcommerceEventType.ABANDONED_CART:
|
|
143
167
|
return "abandoned_cart";
|
|
168
|
+
case EcommerceEventType.REFUND:
|
|
169
|
+
return "refund";
|
|
170
|
+
case EcommerceEventType.ORDER_PENDING:
|
|
171
|
+
return "pending_order";
|
|
172
|
+
case EcommerceEventType.ORDER_REJECTED:
|
|
173
|
+
return "rejected_order";
|
|
144
174
|
default:
|
|
145
175
|
return "product";
|
|
146
176
|
}
|
|
@@ -154,6 +184,9 @@ function prepareEcommercePayload(
|
|
|
154
184
|
data: IEcommercePurchaseData
|
|
155
185
|
): IEcommercePayload {
|
|
156
186
|
const isAbandonedCart = eventType === EcommerceEventType.ABANDONED_CART_BOOK || eventType === EcommerceEventType.ABANDONED_CART;
|
|
187
|
+
const isRefund = eventType === EcommerceEventType.REFUND;
|
|
188
|
+
const isPending = eventType === EcommerceEventType.ORDER_PENDING;
|
|
189
|
+
const isRejected = eventType === EcommerceEventType.ORDER_REJECTED;
|
|
157
190
|
|
|
158
191
|
// Map products to order items
|
|
159
192
|
const orderItems: IOrderItem[] = data.products.map((product: IOrderProduct) => ({
|
|
@@ -163,12 +196,12 @@ function prepareEcommercePayload(
|
|
|
163
196
|
ProductQty: product.quantity,
|
|
164
197
|
ProductDescription: product.description || null,
|
|
165
198
|
ProductLink: product.link,
|
|
166
|
-
ProductImage: product.image,
|
|
167
|
-
// Custom fields
|
|
168
|
-
Custom1: product.isbn || product.eventDate?.toString() || product.vodDuration,
|
|
169
|
-
Custom2: product.author || product.eventLocation || product.vodExpiry?.toString(),
|
|
199
|
+
ProductImage: product.image || data.eventImage,
|
|
200
|
+
// Custom fields - eventName and ticketsLink for InfoRu automations
|
|
201
|
+
Custom1: data.eventName || product.isbn || product.eventDate?.toString() || product.vodDuration,
|
|
202
|
+
Custom2: data.ticketsLink || product.author || product.eventLocation || product.vodExpiry?.toString(),
|
|
170
203
|
Custom3: product.publisher || product.seatNumber || product.vodStreamUrl,
|
|
171
|
-
Custom4: product.format || getProductType(eventType),
|
|
204
|
+
Custom4: data.eventStartDate || product.format || getProductType(eventType),
|
|
172
205
|
Custom5: eventType, // Add the original event type (e.g., PURCHASED_PHYSICAL_BOOK)
|
|
173
206
|
ProductAttributes: [
|
|
174
207
|
// Always include the event category
|
|
@@ -208,12 +241,24 @@ function prepareEcommercePayload(
|
|
|
208
241
|
case EcommerceEventType.PURCHASED_EVENT_TICKET:
|
|
209
242
|
groupNames.push("event_attendees");
|
|
210
243
|
break;
|
|
244
|
+
case EcommerceEventType.PURCHASED_SUBSCRIPTION:
|
|
245
|
+
groupNames.push("subscription_members");
|
|
246
|
+
break;
|
|
211
247
|
case EcommerceEventType.ABANDONED_CART_BOOK:
|
|
212
248
|
groupNames.push("abandoned_cart_books");
|
|
213
249
|
break;
|
|
214
250
|
case EcommerceEventType.ABANDONED_CART:
|
|
215
251
|
groupNames.push("abandoned_cart_general");
|
|
216
252
|
break;
|
|
253
|
+
case EcommerceEventType.REFUND:
|
|
254
|
+
groupNames.push("refunded_customers");
|
|
255
|
+
break;
|
|
256
|
+
case EcommerceEventType.ORDER_PENDING:
|
|
257
|
+
groupNames.push("pending_orders");
|
|
258
|
+
break;
|
|
259
|
+
case EcommerceEventType.ORDER_REJECTED:
|
|
260
|
+
groupNames.push("rejected_orders");
|
|
261
|
+
break;
|
|
217
262
|
}
|
|
218
263
|
|
|
219
264
|
// Determine if physical shipping is needed
|
|
@@ -238,7 +283,7 @@ function prepareEcommercePayload(
|
|
|
238
283
|
AddToGroupName: groupNames,
|
|
239
284
|
OrderNumber: data.orderNumber,
|
|
240
285
|
OrderAmount: String(data.orderAmount),
|
|
241
|
-
OrderStatus: isAbandonedCart ? "abandoned" : (data.orderStatus || "processing"),
|
|
286
|
+
OrderStatus: isAbandonedCart ? "abandoned" : isRefund ? "refunded" : isPending ? "pending" : isRejected ? "rejected" : (data.orderStatus || "processing"),
|
|
242
287
|
BillingAddress: data.billingAddress,
|
|
243
288
|
ShippingAddress: needsShipping ? data.shippingAddress : undefined,
|
|
244
289
|
PaymentDescription: data.paymentMethod || "credit card",
|
|
@@ -246,7 +291,11 @@ function prepareEcommercePayload(
|
|
|
246
291
|
? (data.shippingMethod || "Standard shipping")
|
|
247
292
|
: "Digital delivery - Instant",
|
|
248
293
|
OrderTime: orderTime,
|
|
249
|
-
OrderItems: orderItems
|
|
294
|
+
OrderItems: orderItems,
|
|
295
|
+
TicketsLink: data.ticketsLink,
|
|
296
|
+
EventImage: data.eventImage,
|
|
297
|
+
EventName: data.eventName,
|
|
298
|
+
EventStartTimeAndDate: data.eventStartDate
|
|
250
299
|
}
|
|
251
300
|
};
|
|
252
301
|
}
|
|
@@ -303,17 +352,13 @@ export async function sendEcommerceOrder(params: {
|
|
|
303
352
|
};
|
|
304
353
|
|
|
305
354
|
} catch (error) {
|
|
306
|
-
logger.error(
|
|
307
|
-
error: error instanceof Error ? error.message : error,
|
|
308
|
-
eventType: params.eventType,
|
|
309
|
-
orderNumber: params.data?.orderNumber
|
|
310
|
-
});
|
|
355
|
+
logger.error(`Failed to send ecommerce order | error: ${error instanceof Error ? error.message : error} | eventType: ${params.eventType} | orderNumber: ${params.data?.orderNumber}`);
|
|
311
356
|
|
|
312
357
|
if (axios.isAxiosError(error)) {
|
|
313
358
|
throw new CustomError(
|
|
314
359
|
"ECOMMERCE_API_ERROR",
|
|
315
360
|
error.response?.status || 500,
|
|
316
|
-
`Failed to send ecommerce order: ${error.response?.data?.message || error.message}`
|
|
361
|
+
`Failed to send ecommerce order: ${error.response?.data?.message || JSON.stringify(error.response?.data) || error.message}`
|
|
317
362
|
);
|
|
318
363
|
}
|
|
319
364
|
|