@nimee/inforu 1.0.20 → 1.0.21
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 +11 -1
- package/dist/ecommerce.js +43 -13
- package/dist/ecommerce.js.map +1 -1
- package/package.json +1 -1
- package/src/automations.ts +4 -0
- package/src/ecommerce.ts +53 -12
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,8 @@ export interface IEcommerceOrderData {
|
|
|
39
39
|
ShippingDescription?: string;
|
|
40
40
|
OrderTime: string;
|
|
41
41
|
OrderItems: IOrderItem[];
|
|
42
|
+
TicketsLink?: string;
|
|
43
|
+
EventImage?: string;
|
|
42
44
|
}
|
|
43
45
|
export interface IEcommercePayload {
|
|
44
46
|
Data: IEcommerceOrderData;
|
|
@@ -48,8 +50,12 @@ export declare enum EcommerceEventType {
|
|
|
48
50
|
PURCHASED_DIGITAL_BOOK = "PURCHASED_DIGITAL_BOOK",
|
|
49
51
|
PURCHASED_VOD_PRODUCT = "PURCHASED_VOD_PRODUCT",
|
|
50
52
|
PURCHASED_EVENT_TICKET = "PURCHASED_EVENT_TICKET",
|
|
53
|
+
PURCHASED_SUBSCRIPTION = "PURCHASED_SUBSCRIPTION",
|
|
51
54
|
ABANDONED_CART_BOOK = "ABANDONED_CART_BOOK",
|
|
52
|
-
ABANDONED_CART = "ABANDONED_CART"
|
|
55
|
+
ABANDONED_CART = "ABANDONED_CART",// Generic abandoned cart
|
|
56
|
+
REFUND = "REFUND",
|
|
57
|
+
ORDER_PENDING = "ORDER_PENDING",
|
|
58
|
+
ORDER_REJECTED = "ORDER_REJECTED"
|
|
53
59
|
}
|
|
54
60
|
export interface IOrderProduct {
|
|
55
61
|
code: string;
|
|
@@ -91,6 +97,10 @@ export interface IEcommercePurchaseData {
|
|
|
91
97
|
cartUrl?: string;
|
|
92
98
|
abandonedAt?: string | Date;
|
|
93
99
|
reminderCount?: number;
|
|
100
|
+
ticketsLink?: string;
|
|
101
|
+
eventName?: string;
|
|
102
|
+
eventStartDate?: string;
|
|
103
|
+
eventImage?: string;
|
|
94
104
|
}
|
|
95
105
|
/**
|
|
96
106
|
* 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;
|
|
@@ -74,11 +94,11 @@ function prepareEcommercePayload(eventType, data) {
|
|
|
74
94
|
ProductDescription: product.description || null,
|
|
75
95
|
ProductLink: product.link,
|
|
76
96
|
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()),
|
|
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,9 @@ 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,
|
|
156
190
|
}
|
|
157
191
|
};
|
|
158
192
|
}
|
|
@@ -160,7 +194,7 @@ function prepareEcommercePayload(eventType, data) {
|
|
|
160
194
|
* Sends ecommerce order data to InfoRu API based on event type
|
|
161
195
|
*/
|
|
162
196
|
function sendEcommerceOrder(params) {
|
|
163
|
-
var _a, _b, _c, _d, _e;
|
|
197
|
+
var _a, _b, _c, _d, _e, _f;
|
|
164
198
|
return __awaiter(this, void 0, void 0, function* () {
|
|
165
199
|
try {
|
|
166
200
|
const { apiKey, eventType, data } = params;
|
|
@@ -197,13 +231,9 @@ function sendEcommerceOrder(params) {
|
|
|
197
231
|
};
|
|
198
232
|
}
|
|
199
233
|
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
|
-
});
|
|
234
|
+
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
235
|
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}`);
|
|
236
|
+
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
237
|
}
|
|
208
238
|
throw new error_handler_1.CustomError("ECOMMERCE_ORDER_ERROR", 500, `Failed to process ecommerce order: ${error instanceof Error ? error.message : JSON.stringify(error)}`);
|
|
209
239
|
}
|
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,8 @@ export interface IEcommerceOrderData {
|
|
|
46
46
|
ShippingDescription?: string;
|
|
47
47
|
OrderTime: string;
|
|
48
48
|
OrderItems: IOrderItem[];
|
|
49
|
+
TicketsLink?: string;
|
|
50
|
+
EventImage?: string;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
export interface IEcommercePayload {
|
|
@@ -59,10 +61,16 @@ export enum EcommerceEventType {
|
|
|
59
61
|
PURCHASED_DIGITAL_BOOK = "PURCHASED_DIGITAL_BOOK",
|
|
60
62
|
PURCHASED_VOD_PRODUCT = "PURCHASED_VOD_PRODUCT",
|
|
61
63
|
PURCHASED_EVENT_TICKET = "PURCHASED_EVENT_TICKET",
|
|
64
|
+
PURCHASED_SUBSCRIPTION = "PURCHASED_SUBSCRIPTION",
|
|
62
65
|
|
|
63
66
|
// Abandoned cart events
|
|
64
67
|
ABANDONED_CART_BOOK = "ABANDONED_CART_BOOK",
|
|
65
68
|
ABANDONED_CART = "ABANDONED_CART", // Generic abandoned cart
|
|
69
|
+
|
|
70
|
+
// Order status events
|
|
71
|
+
REFUND = "REFUND",
|
|
72
|
+
ORDER_PENDING = "ORDER_PENDING",
|
|
73
|
+
ORDER_REJECTED = "ORDER_REJECTED",
|
|
66
74
|
}
|
|
67
75
|
|
|
68
76
|
// Map internal event types to InfoRu API event names
|
|
@@ -71,8 +79,12 @@ const EVENT_TYPE_TO_API_EVENT: Record<EcommerceEventType, string> = {
|
|
|
71
79
|
[EcommerceEventType.PURCHASED_DIGITAL_BOOK]: "sales_order_place_after",
|
|
72
80
|
[EcommerceEventType.PURCHASED_VOD_PRODUCT]: "sales_order_place_after",
|
|
73
81
|
[EcommerceEventType.PURCHASED_EVENT_TICKET]: "sales_order_place_after",
|
|
82
|
+
[EcommerceEventType.PURCHASED_SUBSCRIPTION]: "sales_order_place_after",
|
|
74
83
|
[EcommerceEventType.ABANDONED_CART_BOOK]: "cart_abandoned",
|
|
75
84
|
[EcommerceEventType.ABANDONED_CART]: "cart_abandoned",
|
|
85
|
+
[EcommerceEventType.REFUND]: "sales_order_place_after",
|
|
86
|
+
[EcommerceEventType.ORDER_PENDING]: "sales_order_place_after",
|
|
87
|
+
[EcommerceEventType.ORDER_REJECTED]: "sales_order_place_after",
|
|
76
88
|
};
|
|
77
89
|
|
|
78
90
|
// Interface for product/item in order
|
|
@@ -122,6 +134,14 @@ export interface IEcommercePurchaseData {
|
|
|
122
134
|
cartUrl?: string;
|
|
123
135
|
abandonedAt?: string | Date;
|
|
124
136
|
reminderCount?: number;
|
|
137
|
+
// Link to tickets page
|
|
138
|
+
ticketsLink?: string;
|
|
139
|
+
// Event name for ticket purchases
|
|
140
|
+
eventName?: string;
|
|
141
|
+
// Event start date (formatted string)
|
|
142
|
+
eventStartDate?: string;
|
|
143
|
+
// Event image URL
|
|
144
|
+
eventImage?: string;
|
|
125
145
|
}
|
|
126
146
|
|
|
127
147
|
/**
|
|
@@ -137,10 +157,18 @@ function getProductType(eventType: EcommerceEventType): string {
|
|
|
137
157
|
return "vod";
|
|
138
158
|
case EcommerceEventType.PURCHASED_EVENT_TICKET:
|
|
139
159
|
return "event_ticket";
|
|
160
|
+
case EcommerceEventType.PURCHASED_SUBSCRIPTION:
|
|
161
|
+
return "subscription";
|
|
140
162
|
case EcommerceEventType.ABANDONED_CART_BOOK:
|
|
141
163
|
return "abandoned_book";
|
|
142
164
|
case EcommerceEventType.ABANDONED_CART:
|
|
143
165
|
return "abandoned_cart";
|
|
166
|
+
case EcommerceEventType.REFUND:
|
|
167
|
+
return "refund";
|
|
168
|
+
case EcommerceEventType.ORDER_PENDING:
|
|
169
|
+
return "pending_order";
|
|
170
|
+
case EcommerceEventType.ORDER_REJECTED:
|
|
171
|
+
return "rejected_order";
|
|
144
172
|
default:
|
|
145
173
|
return "product";
|
|
146
174
|
}
|
|
@@ -154,6 +182,9 @@ function prepareEcommercePayload(
|
|
|
154
182
|
data: IEcommercePurchaseData
|
|
155
183
|
): IEcommercePayload {
|
|
156
184
|
const isAbandonedCart = eventType === EcommerceEventType.ABANDONED_CART_BOOK || eventType === EcommerceEventType.ABANDONED_CART;
|
|
185
|
+
const isRefund = eventType === EcommerceEventType.REFUND;
|
|
186
|
+
const isPending = eventType === EcommerceEventType.ORDER_PENDING;
|
|
187
|
+
const isRejected = eventType === EcommerceEventType.ORDER_REJECTED;
|
|
157
188
|
|
|
158
189
|
// Map products to order items
|
|
159
190
|
const orderItems: IOrderItem[] = data.products.map((product: IOrderProduct) => ({
|
|
@@ -164,11 +195,11 @@ function prepareEcommercePayload(
|
|
|
164
195
|
ProductDescription: product.description || null,
|
|
165
196
|
ProductLink: product.link,
|
|
166
197
|
ProductImage: product.image,
|
|
167
|
-
// Custom fields
|
|
168
|
-
Custom1: product.isbn || product.eventDate?.toString() || product.vodDuration,
|
|
169
|
-
Custom2: product.author || product.eventLocation || product.vodExpiry?.toString(),
|
|
198
|
+
// Custom fields - eventName and ticketsLink for InfoRu automations
|
|
199
|
+
Custom1: data.eventName || product.isbn || product.eventDate?.toString() || product.vodDuration,
|
|
200
|
+
Custom2: data.ticketsLink || product.author || product.eventLocation || product.vodExpiry?.toString(),
|
|
170
201
|
Custom3: product.publisher || product.seatNumber || product.vodStreamUrl,
|
|
171
|
-
Custom4: product.format || getProductType(eventType),
|
|
202
|
+
Custom4: data.eventStartDate || product.format || getProductType(eventType),
|
|
172
203
|
Custom5: eventType, // Add the original event type (e.g., PURCHASED_PHYSICAL_BOOK)
|
|
173
204
|
ProductAttributes: [
|
|
174
205
|
// Always include the event category
|
|
@@ -208,12 +239,24 @@ function prepareEcommercePayload(
|
|
|
208
239
|
case EcommerceEventType.PURCHASED_EVENT_TICKET:
|
|
209
240
|
groupNames.push("event_attendees");
|
|
210
241
|
break;
|
|
242
|
+
case EcommerceEventType.PURCHASED_SUBSCRIPTION:
|
|
243
|
+
groupNames.push("subscription_members");
|
|
244
|
+
break;
|
|
211
245
|
case EcommerceEventType.ABANDONED_CART_BOOK:
|
|
212
246
|
groupNames.push("abandoned_cart_books");
|
|
213
247
|
break;
|
|
214
248
|
case EcommerceEventType.ABANDONED_CART:
|
|
215
249
|
groupNames.push("abandoned_cart_general");
|
|
216
250
|
break;
|
|
251
|
+
case EcommerceEventType.REFUND:
|
|
252
|
+
groupNames.push("refunded_customers");
|
|
253
|
+
break;
|
|
254
|
+
case EcommerceEventType.ORDER_PENDING:
|
|
255
|
+
groupNames.push("pending_orders");
|
|
256
|
+
break;
|
|
257
|
+
case EcommerceEventType.ORDER_REJECTED:
|
|
258
|
+
groupNames.push("rejected_orders");
|
|
259
|
+
break;
|
|
217
260
|
}
|
|
218
261
|
|
|
219
262
|
// Determine if physical shipping is needed
|
|
@@ -238,7 +281,7 @@ function prepareEcommercePayload(
|
|
|
238
281
|
AddToGroupName: groupNames,
|
|
239
282
|
OrderNumber: data.orderNumber,
|
|
240
283
|
OrderAmount: String(data.orderAmount),
|
|
241
|
-
OrderStatus: isAbandonedCart ? "abandoned" : (data.orderStatus || "processing"),
|
|
284
|
+
OrderStatus: isAbandonedCart ? "abandoned" : isRefund ? "refunded" : isPending ? "pending" : isRejected ? "rejected" : (data.orderStatus || "processing"),
|
|
242
285
|
BillingAddress: data.billingAddress,
|
|
243
286
|
ShippingAddress: needsShipping ? data.shippingAddress : undefined,
|
|
244
287
|
PaymentDescription: data.paymentMethod || "credit card",
|
|
@@ -246,7 +289,9 @@ function prepareEcommercePayload(
|
|
|
246
289
|
? (data.shippingMethod || "Standard shipping")
|
|
247
290
|
: "Digital delivery - Instant",
|
|
248
291
|
OrderTime: orderTime,
|
|
249
|
-
OrderItems: orderItems
|
|
292
|
+
OrderItems: orderItems,
|
|
293
|
+
TicketsLink: data.ticketsLink,
|
|
294
|
+
EventImage: data.eventImage,
|
|
250
295
|
}
|
|
251
296
|
};
|
|
252
297
|
}
|
|
@@ -303,17 +348,13 @@ export async function sendEcommerceOrder(params: {
|
|
|
303
348
|
};
|
|
304
349
|
|
|
305
350
|
} catch (error) {
|
|
306
|
-
logger.error(
|
|
307
|
-
error: error instanceof Error ? error.message : error,
|
|
308
|
-
eventType: params.eventType,
|
|
309
|
-
orderNumber: params.data?.orderNumber
|
|
310
|
-
});
|
|
351
|
+
logger.error(`Failed to send ecommerce order | error: ${error instanceof Error ? error.message : error} | eventType: ${params.eventType} | orderNumber: ${params.data?.orderNumber}`);
|
|
311
352
|
|
|
312
353
|
if (axios.isAxiosError(error)) {
|
|
313
354
|
throw new CustomError(
|
|
314
355
|
"ECOMMERCE_API_ERROR",
|
|
315
356
|
error.response?.status || 500,
|
|
316
|
-
`Failed to send ecommerce order: ${error.response?.data?.message || error.message}`
|
|
357
|
+
`Failed to send ecommerce order: ${error.response?.data?.message || JSON.stringify(error.response?.data) || error.message}`
|
|
317
358
|
);
|
|
318
359
|
}
|
|
319
360
|
|