@devx-commerce/plugin-gati 0.0.34-beta.26 → 0.0.34-beta.28
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/.medusa/server/src/api/erp/webhook/config.js +25 -1
- package/.medusa/server/src/api/erp/webhook/utils.js +7 -1
- package/.medusa/server/src/api/pos/gold/calculate/route.js +70 -0
- package/.medusa/server/src/api/pos/gold/middleware.js +18 -0
- package/.medusa/server/src/api/pos/gold/route.js +51 -0
- package/.medusa/server/src/api/pos/gold-rate/route.js +23 -16
- package/.medusa/server/src/api/pos/middleware.js +5 -3
- package/.medusa/server/src/jobs/sync-order-erp.js +2 -2
- package/.medusa/server/src/lib/api-response.js +2 -1
- package/.medusa/server/src/links/sale-master.js +13 -0
- package/.medusa/server/src/modules/erp/service.js +63 -1
- package/.medusa/server/src/modules/sale-master/index.js +13 -0
- package/.medusa/server/src/modules/sale-master/migrations/Migration20260205092935.js +15 -0
- package/.medusa/server/src/modules/sale-master/migrations/Migration20260205100000.js +16 -0
- package/.medusa/server/src/modules/sale-master/models/sale-master.js +27 -0
- package/.medusa/server/src/modules/sale-master/service.js +10 -0
- package/.medusa/server/src/modules/sale-return-master/index.js +13 -0
- package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260205093034.js +15 -0
- package/.medusa/server/src/modules/sale-return-master/models/sale-return-master.js +16 -0
- package/.medusa/server/src/modules/sale-return-master/service.js +10 -0
- package/.medusa/server/src/workflows/inward-master/workflows/create-inward.js +6 -3
- package/.medusa/server/src/workflows/order-master/order-master-webhook.js +24 -0
- package/.medusa/server/src/workflows/order-master/steps/delete-order-master-by-erp-ids.js +61 -0
- package/.medusa/server/src/workflows/order-master/steps/process-order-master-from-webhook.js +283 -0
- package/.medusa/server/src/workflows/orders/steps/index.js +2 -1
- package/.medusa/server/src/workflows/orders/steps/sync-buyback-to-erp-step.js +3 -4
- package/.medusa/server/src/workflows/orders/steps/sync-cancel-to-erp-step.js +72 -43
- package/.medusa/server/src/workflows/orders/steps/sync-exchange-to-erp-step.js +7 -8
- package/.medusa/server/src/workflows/orders/steps/sync-old-gold-to-erp-step.js +148 -0
- package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +2 -453
- package/.medusa/server/src/workflows/orders/steps/sync-sale-return-to-erp-step.js +64 -15
- package/.medusa/server/src/workflows/orders/utils/order-request-helper.js +46 -8
- package/.medusa/server/src/workflows/orders/workflows/index.js +2 -1
- package/.medusa/server/src/workflows/orders/workflows/sync-old-gold-to-erp.js +10 -0
- package/.medusa/server/src/workflows/orders/workflows/sync-order-to-erp.js +3 -3
- package/.medusa/server/src/workflows/sale-master/index.js +24 -0
- package/.medusa/server/src/workflows/sale-master/steps/create-sale-master.js +72 -0
- package/.medusa/server/src/workflows/sale-master/steps/delete-sale-master.js +59 -0
- package/.medusa/server/src/workflows/sale-master/steps/update-sale-master.js +95 -0
- package/.medusa/server/src/workflows/sale-return-master/index.js +24 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/create-sale-return-master.js +45 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master.js +36 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/update-sale-return-master.js +53 -0
- package/package.json +1 -1
|
@@ -3,12 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.syncOrderToErpStep = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
-
const core_flows_1 = require("@medusajs/core-flows");
|
|
7
6
|
const order_helper_1 = require("../utils/order-helper");
|
|
8
|
-
const create_customer_erp_1 = require("../../party-master/workflows/create-customer-erp");
|
|
9
|
-
const state_helper_1 = require("../../../utils/state-helper");
|
|
10
|
-
const address_formatter_1 = require("../../../utils/address-formatter");
|
|
11
|
-
const find_nearest_pincodes_step_1 = require("./find-nearest-pincodes-step");
|
|
12
7
|
exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp", async ({ order }, { container }) => {
|
|
13
8
|
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
14
9
|
const { data: [customer], } = await query.graph({
|
|
@@ -16,7 +11,6 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
|
|
|
16
11
|
fields: ["*", "extended_customer.*"],
|
|
17
12
|
filters: { id: order.customer_id },
|
|
18
13
|
});
|
|
19
|
-
console.log("customer", customer);
|
|
20
14
|
let filter = {};
|
|
21
15
|
if (order?.metadata?.cart_type === "POS_CART") {
|
|
22
16
|
filter.party_no = customer.extended_customer?.external_id;
|
|
@@ -24,450 +18,6 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
|
|
|
24
18
|
else {
|
|
25
19
|
filter.branch_name = "self";
|
|
26
20
|
}
|
|
27
|
-
const { data: party } = await query.graph({
|
|
28
|
-
entity: "party_master",
|
|
29
|
-
fields: ["*"],
|
|
30
|
-
filters: {
|
|
31
|
-
...filter,
|
|
32
|
-
owner_mobile: customer.phone?.replace("+91", ""),
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
const existingShippingId = order.shipping_address?.metadata?.party_shipping_id
|
|
36
|
-
? String(order.shipping_address.metadata.party_shipping_id)
|
|
37
|
-
: null;
|
|
38
|
-
let partyShippingId = existingShippingId;
|
|
39
|
-
const externalId = customer?.extended_customer?.external_id;
|
|
40
|
-
const hasParty = party && party.length > 0;
|
|
41
|
-
if (!hasParty || !externalId || !existingShippingId) {
|
|
42
|
-
if (!hasParty || !externalId) {
|
|
43
|
-
console.log("[SYNC ORDER TO ERP] ⚠️ Party not found or customer external_id missing. Attempting to create customer in ERP...");
|
|
44
|
-
}
|
|
45
|
-
else if (!existingShippingId) {
|
|
46
|
-
console.log("[SYNC ORDER TO ERP] ⚠️ Shipping_id missing. Attempting to create/update address...");
|
|
47
|
-
}
|
|
48
|
-
try {
|
|
49
|
-
const shippingAddress = order.shipping_address;
|
|
50
|
-
if (!shippingAddress) {
|
|
51
|
-
console.log("[SYNC ORDER TO ERP] ⚠️ No shipping address found in order");
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
if (!externalId) {
|
|
55
|
-
const postalCode = shippingAddress.postal_code || "";
|
|
56
|
-
console.log("[SYNC ORDER TO ERP] Getting outlet data for postal code:", postalCode);
|
|
57
|
-
const { data: outletData } = await query.graph({
|
|
58
|
-
entity: "outlet",
|
|
59
|
-
fields: ["*"],
|
|
60
|
-
filters: {
|
|
61
|
-
is_active: true,
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
65
|
-
const nearestResult = await (0, find_nearest_pincodes_step_1.findNearestPincodes)({
|
|
66
|
-
sourcePincode: postalCode || "",
|
|
67
|
-
targetPincodes: outletData
|
|
68
|
-
?.map((outlet) => outlet.postal_code)
|
|
69
|
-
.filter(Boolean) || [],
|
|
70
|
-
limit: 1,
|
|
71
|
-
}, logger);
|
|
72
|
-
if (nearestResult.nearestPincodes.length === 0) {
|
|
73
|
-
throw new Error(`Unable to determine nearest outlet for order postal code ${postalCode}. No distances calculated from target pincodes.`);
|
|
74
|
-
}
|
|
75
|
-
const nearest = nearestResult.nearestPincodes;
|
|
76
|
-
const nearestPincode = nearest[0]?.pincode;
|
|
77
|
-
if (!nearestPincode) {
|
|
78
|
-
throw new Error("Unable to determine nearest outlet for order postal code - no valid pincode returned");
|
|
79
|
-
}
|
|
80
|
-
const nearestOutlet = outletData?.find((outlet) => outlet.postal_code === nearestPincode);
|
|
81
|
-
const { data: partyMasterData } = await query.graph({
|
|
82
|
-
entity: "party_master",
|
|
83
|
-
fields: ["*"],
|
|
84
|
-
filters: {
|
|
85
|
-
party_no: nearestOutlet?.external_id || "",
|
|
86
|
-
},
|
|
87
|
-
pagination: {
|
|
88
|
-
skip: 0,
|
|
89
|
-
take: 1,
|
|
90
|
-
},
|
|
91
|
-
});
|
|
92
|
-
const [partyMaster] = partyMasterData || [];
|
|
93
|
-
const branchId = partyMaster?.party_no || "";
|
|
94
|
-
console.log("[SYNC ORDER TO ERP] Outlet data result:", {
|
|
95
|
-
hasOutletData: !!outletData,
|
|
96
|
-
outletCount: outletData?.length || 0,
|
|
97
|
-
nearestPincode,
|
|
98
|
-
nearestOutlet: nearestOutlet?.external_id,
|
|
99
|
-
branchId: branchId,
|
|
100
|
-
postalCode: postalCode,
|
|
101
|
-
});
|
|
102
|
-
const fullName = `${shippingAddress.first_name || ""} ${shippingAddress.last_name || ""}`.trim();
|
|
103
|
-
const customerDataForErp = {
|
|
104
|
-
PartyNo: "",
|
|
105
|
-
PartyCode: "",
|
|
106
|
-
FirmName: fullName,
|
|
107
|
-
LegalName: fullName || "",
|
|
108
|
-
FirmAdd1: shippingAddress.address_1 || "",
|
|
109
|
-
FirmAdd2: shippingAddress.address_2 || "",
|
|
110
|
-
FirmAdd3: "",
|
|
111
|
-
FirmPinCode: shippingAddress.postal_code || "",
|
|
112
|
-
FirmEmail: customer?.email || "",
|
|
113
|
-
OwnerMobile: customer.phone?.replace("+91", "") || shippingAddress.phone?.replace("+91", "") || "",
|
|
114
|
-
FirmTele: "",
|
|
115
|
-
WhatsAppNo: "",
|
|
116
|
-
Country: "India",
|
|
117
|
-
State: (0, state_helper_1.getStateNameWithCode)((0, state_helper_1.getStateCode)(shippingAddress.province?.toUpperCase() ?? "")) || "",
|
|
118
|
-
FirmCity: shippingAddress.city || "",
|
|
119
|
-
FirmBirthDate: "",
|
|
120
|
-
FirmAnniversaryDate: "",
|
|
121
|
-
BranchNo: branchId,
|
|
122
|
-
BranchName: "",
|
|
123
|
-
LocationId: "",
|
|
124
|
-
LocationName: "All",
|
|
125
|
-
AadhaarNo: "",
|
|
126
|
-
FirmPan: "",
|
|
127
|
-
GSTNo: "",
|
|
128
|
-
LUTNo: "",
|
|
129
|
-
IdentityProof: "",
|
|
130
|
-
CSTNo: "",
|
|
131
|
-
LSTNo: "",
|
|
132
|
-
ServiceTaxNo: "",
|
|
133
|
-
BankAccNo: "",
|
|
134
|
-
BankName: "",
|
|
135
|
-
BankAdd1: "",
|
|
136
|
-
BankAdd2: "",
|
|
137
|
-
BankAdd3: "",
|
|
138
|
-
BankPinCode: "",
|
|
139
|
-
BankIFSCCode: "",
|
|
140
|
-
BankSwiftCode: "",
|
|
141
|
-
IsCustomer: true,
|
|
142
|
-
IsSupplier: false,
|
|
143
|
-
IsAccount: false,
|
|
144
|
-
IsSalesMan: false,
|
|
145
|
-
IsFactory: false,
|
|
146
|
-
FactoryType: false,
|
|
147
|
-
IsTools: false,
|
|
148
|
-
IsLocation: false,
|
|
149
|
-
IsPdHead: 0,
|
|
150
|
-
IsInlineBranch: false,
|
|
151
|
-
IsSchemeMember: false,
|
|
152
|
-
};
|
|
153
|
-
if (branchId) {
|
|
154
|
-
console.log("[SYNC ORDER TO ERP] ✅ BranchNo found:", branchId, "- Proceeding with customer creation in ERP");
|
|
155
|
-
console.log("[SYNC ORDER TO ERP] Customer data for ERP:", JSON.stringify(customerDataForErp, null, 2));
|
|
156
|
-
// Use the existing createCustomerErpWorkflow
|
|
157
|
-
const workflowResult = await (0, create_customer_erp_1.createCustomerErpWorkflow)(container).run({
|
|
158
|
-
input: customerDataForErp,
|
|
159
|
-
});
|
|
160
|
-
const stepResponse = workflowResult.result;
|
|
161
|
-
const stepResult = stepResponse?.result || stepResponse;
|
|
162
|
-
const derivedBranchCustomer = stepResult?.customer;
|
|
163
|
-
let finalExternalId = derivedBranchCustomer?.PartyNo || "";
|
|
164
|
-
const phoneForQuery = customer?.phone?.replace("+91", "") || customerDataForErp.OwnerMobile;
|
|
165
|
-
if (!finalExternalId && phoneForQuery) {
|
|
166
|
-
console.log("[SYNC ORDER TO ERP] PartyNo not in response, waiting for party_master sync...");
|
|
167
|
-
console.log("[SYNC ORDER TO ERP] Querying with phone:", phoneForQuery);
|
|
168
|
-
let retryCount = 0;
|
|
169
|
-
const maxRetries = 3; // Increased retries since sync can take time
|
|
170
|
-
const retryDelay = 1500; // Increased delay
|
|
171
|
-
while (retryCount < maxRetries && !finalExternalId) {
|
|
172
|
-
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
173
|
-
const { data: partyMasters } = await query.graph({
|
|
174
|
-
entity: "party_master",
|
|
175
|
-
fields: ["*"],
|
|
176
|
-
filters: {
|
|
177
|
-
owner_mobile: phoneForQuery,
|
|
178
|
-
},
|
|
179
|
-
});
|
|
180
|
-
console.log(`[SYNC ORDER TO ERP] Poll attempt ${retryCount + 1}/${maxRetries}: Found ${partyMasters?.length || 0} party_master records`);
|
|
181
|
-
if (partyMasters && partyMasters.length > 0) {
|
|
182
|
-
// Find the one matching the branch (prefer branch match, then self)
|
|
183
|
-
const matchingParty = partyMasters.find((p) => p.branch_no === branchId) || partyMasters.find((p) => p.branch_name?.toLowerCase() === "self") || partyMasters[0];
|
|
184
|
-
finalExternalId = matchingParty?.party_no || "";
|
|
185
|
-
if (finalExternalId) {
|
|
186
|
-
break;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
retryCount++;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
if (finalExternalId) {
|
|
193
|
-
console.log("[SYNC ORDER TO ERP] ✅ Customer created in ERP successfully! External ID:", finalExternalId);
|
|
194
|
-
const extendedCustomerModuleService = container.resolve("extended_customer");
|
|
195
|
-
if (customer?.extended_customer?.id) {
|
|
196
|
-
await extendedCustomerModuleService.updateExtendedCustomers({
|
|
197
|
-
id: customer.extended_customer.id,
|
|
198
|
-
external_id: finalExternalId,
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
console.error("[SYNC ORDER TO ERP] ❌ Failed to get PartyNo after customer creation");
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
const { data: updatedCustomerData } = await query.graph({
|
|
208
|
-
entity: "customer",
|
|
209
|
-
fields: ["*", "extended_customer.*"],
|
|
210
|
-
filters: {
|
|
211
|
-
id: order.customer_id,
|
|
212
|
-
},
|
|
213
|
-
});
|
|
214
|
-
const updatedCustomer = updatedCustomerData?.[0];
|
|
215
|
-
const updatedExternalId = updatedCustomer?.extended_customer?.external_id || externalId;
|
|
216
|
-
if (updatedExternalId && order.shipping_address && !existingShippingId) {
|
|
217
|
-
console.log("[SYNC ORDER TO ERP] ✅ Customer has external_id. Proceeding with address creation/update...");
|
|
218
|
-
// Check if customer address exists with matching details
|
|
219
|
-
const { data: existingAddresses } = await query.graph({
|
|
220
|
-
entity: "customer_address",
|
|
221
|
-
fields: ["*", "metadata"],
|
|
222
|
-
filters: {
|
|
223
|
-
// @ts-ignore
|
|
224
|
-
customer_id: order.customer_id,
|
|
225
|
-
},
|
|
226
|
-
});
|
|
227
|
-
// Find matching address or create new one
|
|
228
|
-
let matchingAddress = existingAddresses?.find((addr) => {
|
|
229
|
-
return (0, address_formatter_1.compareAddresses)(order.shipping_address, addr);
|
|
230
|
-
});
|
|
231
|
-
// If no matching address exists, create one
|
|
232
|
-
if (!matchingAddress) {
|
|
233
|
-
const addressResult = await (0, core_flows_1.createCustomerAddressesWorkflow)(container).run({
|
|
234
|
-
input: {
|
|
235
|
-
addresses: [
|
|
236
|
-
{
|
|
237
|
-
address_name: "Shipping Address",
|
|
238
|
-
is_default_billing: false,
|
|
239
|
-
is_default_shipping: true,
|
|
240
|
-
first_name: order.shipping_address.first_name ?? null,
|
|
241
|
-
last_name: order.shipping_address.last_name ?? null,
|
|
242
|
-
company: order.shipping_address.company ?? null,
|
|
243
|
-
address_1: order.shipping_address.address_1 ?? null,
|
|
244
|
-
address_2: order.shipping_address.address_2 ?? null,
|
|
245
|
-
city: order.shipping_address.city ?? null,
|
|
246
|
-
country_code: order.shipping_address.country_code ?? "in",
|
|
247
|
-
province: order.shipping_address.province ?? null,
|
|
248
|
-
postal_code: order.shipping_address.postal_code ?? null,
|
|
249
|
-
phone: order.shipping_address.phone ?? null,
|
|
250
|
-
customer_id: order.customer_id,
|
|
251
|
-
},
|
|
252
|
-
],
|
|
253
|
-
},
|
|
254
|
-
});
|
|
255
|
-
if (addressResult.result) {
|
|
256
|
-
const createdAddresses = Array.isArray(addressResult.result)
|
|
257
|
-
? addressResult.result
|
|
258
|
-
: [addressResult.result];
|
|
259
|
-
matchingAddress = createdAddresses[0];
|
|
260
|
-
// Poll/retry to check if metadata (party_shipping_id) is stored
|
|
261
|
-
let retryCount = 0;
|
|
262
|
-
const maxRetries = 10;
|
|
263
|
-
const retryDelay = 1000;
|
|
264
|
-
let metadataFound = false;
|
|
265
|
-
while (retryCount < maxRetries && !metadataFound) {
|
|
266
|
-
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
267
|
-
const { data: refetchedAddressData } = await query.graph({
|
|
268
|
-
entity: "customer_address",
|
|
269
|
-
fields: ["*", "metadata"],
|
|
270
|
-
filters: {
|
|
271
|
-
id: matchingAddress?.id,
|
|
272
|
-
},
|
|
273
|
-
});
|
|
274
|
-
const refetchedAddress = refetchedAddressData?.[0];
|
|
275
|
-
if (refetchedAddress) {
|
|
276
|
-
matchingAddress = refetchedAddress;
|
|
277
|
-
const hasPartyShippingId = !!(refetchedAddress.metadata && refetchedAddress.metadata.party_shipping_id);
|
|
278
|
-
if (hasPartyShippingId && refetchedAddress.metadata) {
|
|
279
|
-
metadataFound = true;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
retryCount++;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
// Get party_shipping_id from address metadata
|
|
287
|
-
partyShippingId = matchingAddress?.metadata?.party_shipping_id || null;
|
|
288
|
-
// If address exists but doesn't have party_shipping_id, create it in ERP
|
|
289
|
-
if (matchingAddress && !partyShippingId && updatedExternalId) {
|
|
290
|
-
try {
|
|
291
|
-
const erpModuleService = container.resolve("erp");
|
|
292
|
-
const { data: party_mst } = await query.graph({
|
|
293
|
-
entity: "party_master",
|
|
294
|
-
fields: ["*"],
|
|
295
|
-
filters: {
|
|
296
|
-
// @ts-ignore
|
|
297
|
-
mapping_id: order.customer_id,
|
|
298
|
-
},
|
|
299
|
-
});
|
|
300
|
-
const derivedParty = party_mst?.find((p) => p.party_no === updatedExternalId);
|
|
301
|
-
if (derivedParty) {
|
|
302
|
-
const truncate = (str, maxLength) => {
|
|
303
|
-
if (!str)
|
|
304
|
-
return "";
|
|
305
|
-
return str.length > maxLength ? str.substring(0, maxLength) : str;
|
|
306
|
-
};
|
|
307
|
-
const payloadForErp = {
|
|
308
|
-
PartyNo: derivedParty.party_no,
|
|
309
|
-
ShippingCode: truncate(matchingAddress.address_1 || derivedParty.party_no || "", 50),
|
|
310
|
-
ShippingName: truncate(matchingAddress.address_name || "", 50),
|
|
311
|
-
MobileNo: truncate(matchingAddress.phone || "", 15),
|
|
312
|
-
Email: truncate(derivedParty.firm_email || "", 100),
|
|
313
|
-
Address1: truncate(matchingAddress.address_1 || "", 100),
|
|
314
|
-
Address2: truncate(matchingAddress.address_2 || "", 100),
|
|
315
|
-
City: truncate(matchingAddress.city || "", 50),
|
|
316
|
-
State: (0, state_helper_1.getStateNameWithCode)((0, state_helper_1.getStateCode)(matchingAddress.province?.toUpperCase() ?? "")) || "",
|
|
317
|
-
Country: "India",
|
|
318
|
-
PinCode: truncate(matchingAddress.postal_code || "", 10),
|
|
319
|
-
GSTNo: truncate(matchingAddress.metadata?.gst_number || "", 20),
|
|
320
|
-
};
|
|
321
|
-
let address;
|
|
322
|
-
try {
|
|
323
|
-
address = await erpModuleService.createShippingAddress(payloadForErp);
|
|
324
|
-
}
|
|
325
|
-
catch (error) {
|
|
326
|
-
console.error("[SYNC ORDER TO ERP] Error creating shipping address in ERP:", error);
|
|
327
|
-
}
|
|
328
|
-
if (address && address.ShippingId) {
|
|
329
|
-
const newShippingId = address.ShippingId;
|
|
330
|
-
// Update address metadata with party_shipping_id
|
|
331
|
-
await (0, core_flows_1.updateCustomerAddressesWorkflow)(container).run({
|
|
332
|
-
input: {
|
|
333
|
-
selector: {
|
|
334
|
-
id: matchingAddress.id,
|
|
335
|
-
},
|
|
336
|
-
update: {
|
|
337
|
-
metadata: {
|
|
338
|
-
...(matchingAddress.metadata || {}),
|
|
339
|
-
party_shipping_id: newShippingId.toString(),
|
|
340
|
-
},
|
|
341
|
-
},
|
|
342
|
-
additional_data: {
|
|
343
|
-
should_hook_run: false,
|
|
344
|
-
},
|
|
345
|
-
},
|
|
346
|
-
});
|
|
347
|
-
// Verify metadata is stored
|
|
348
|
-
let metadataVerified = false;
|
|
349
|
-
let verifyRetryCount = 0;
|
|
350
|
-
const maxVerifyRetries = 5;
|
|
351
|
-
while (!metadataVerified && verifyRetryCount < maxVerifyRetries) {
|
|
352
|
-
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
353
|
-
const { data: verifyAddressData } = await query.graph({
|
|
354
|
-
entity: "customer_address",
|
|
355
|
-
fields: ["*", "metadata"],
|
|
356
|
-
filters: {
|
|
357
|
-
id: matchingAddress.id,
|
|
358
|
-
},
|
|
359
|
-
});
|
|
360
|
-
const verifiedAddress = verifyAddressData?.[0];
|
|
361
|
-
if (verifiedAddress?.metadata?.party_shipping_id === newShippingId.toString()) {
|
|
362
|
-
metadataVerified = true;
|
|
363
|
-
matchingAddress = verifiedAddress;
|
|
364
|
-
}
|
|
365
|
-
else {
|
|
366
|
-
verifyRetryCount++;
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
if (metadataVerified) {
|
|
370
|
-
partyShippingId = newShippingId.toString();
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
catch (error) {
|
|
376
|
-
console.error("[SYNC ORDER TO ERP] Error handling address update:", error);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
if (partyShippingId) {
|
|
380
|
-
try {
|
|
381
|
-
const cartService = container.resolve(utils_1.Modules.CART);
|
|
382
|
-
const orderService = container.resolve(utils_1.Modules.ORDER);
|
|
383
|
-
// Update order shipping address metadata
|
|
384
|
-
if (order.shipping_address?.id) {
|
|
385
|
-
const orderData = await orderService.retrieveOrder(order.id, {
|
|
386
|
-
relations: ["shipping_address"],
|
|
387
|
-
});
|
|
388
|
-
if (orderData?.shipping_address?.id) {
|
|
389
|
-
// Update order shipping address metadata using orderService
|
|
390
|
-
await orderService.updateOrderAddresses({
|
|
391
|
-
id: orderData.shipping_address.id,
|
|
392
|
-
metadata: {
|
|
393
|
-
...(orderData.shipping_address?.metadata || {}),
|
|
394
|
-
party_shipping_id: partyShippingId.toString(),
|
|
395
|
-
},
|
|
396
|
-
});
|
|
397
|
-
// Update the order object in memory so buildOrderData can access it
|
|
398
|
-
if (!order.shipping_address.metadata) {
|
|
399
|
-
order.shipping_address.metadata = {};
|
|
400
|
-
}
|
|
401
|
-
order.shipping_address.metadata.party_shipping_id = partyShippingId.toString();
|
|
402
|
-
console.log("[SYNC ORDER TO ERP] ✅ Updated order shipping_address metadata with party_shipping_id:", partyShippingId);
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
// Also update cart_address if cart_id exists
|
|
406
|
-
const cartId = order.metadata?.cart_id;
|
|
407
|
-
if (cartId && typeof cartId === "string") {
|
|
408
|
-
try {
|
|
409
|
-
const cart = await cartService.retrieveCart(cartId, {
|
|
410
|
-
relations: ["shipping_address"],
|
|
411
|
-
});
|
|
412
|
-
if (cart?.shipping_address?.id) {
|
|
413
|
-
await cartService.updateAddresses([
|
|
414
|
-
{
|
|
415
|
-
...cart.shipping_address,
|
|
416
|
-
id: cart.shipping_address.id,
|
|
417
|
-
metadata: {
|
|
418
|
-
...(cart.shipping_address?.metadata || {}),
|
|
419
|
-
party_shipping_id: partyShippingId.toString(),
|
|
420
|
-
},
|
|
421
|
-
},
|
|
422
|
-
]);
|
|
423
|
-
console.log("[SYNC ORDER TO ERP] ✅ Updated cart shipping_address metadata with party_shipping_id:", partyShippingId);
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
catch (cartError) {
|
|
427
|
-
console.error("[SYNC ORDER TO ERP] Error updating cart address:", cartError);
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
catch (orderError) {
|
|
432
|
-
console.error("[SYNC ORDER TO ERP] Error updating order/cart address:", orderError);
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
else {
|
|
436
|
-
console.log("[SYNC ORDER TO ERP] ⚠️ No party_shipping_id available, order will be created without shipping_id");
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
catch (error) {
|
|
442
|
-
console.error("[SYNC ORDER TO ERP] Error handling customer/address creation:", error);
|
|
443
|
-
// Continue with normal flow even if customer creation fails
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
let updatedParty = party;
|
|
447
|
-
if (!hasParty || !externalId) {
|
|
448
|
-
// Wait a bit for party_master sync after customer creation
|
|
449
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
450
|
-
// Poll for party_master to be available
|
|
451
|
-
let retryCount = 0;
|
|
452
|
-
const maxRetries = 5;
|
|
453
|
-
const retryDelay = 1000;
|
|
454
|
-
while (retryCount < maxRetries) {
|
|
455
|
-
const { data: partyData } = await query.graph({
|
|
456
|
-
entity: "party_master",
|
|
457
|
-
fields: ["*"],
|
|
458
|
-
filters: {
|
|
459
|
-
owner_mobile: customer.phone?.replace("+91", ""),
|
|
460
|
-
},
|
|
461
|
-
});
|
|
462
|
-
if (partyData && partyData.length > 0) {
|
|
463
|
-
updatedParty = partyData;
|
|
464
|
-
console.log("[SYNC ORDER TO ERP] ✅ Party_master found after customer creation:", partyData.length, "records");
|
|
465
|
-
break;
|
|
466
|
-
}
|
|
467
|
-
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
468
|
-
retryCount++;
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
21
|
const { data: partyData } = await query.graph({
|
|
472
22
|
entity: "party_master",
|
|
473
23
|
fields: ["*"],
|
|
@@ -486,13 +36,12 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
|
|
|
486
36
|
};
|
|
487
37
|
let branchParty = {};
|
|
488
38
|
if (order?.metadata?.cart_type === "POS_CART") {
|
|
489
|
-
branchParty = partyData?.find((p) => p.
|
|
39
|
+
branchParty = partyData?.find((p) => p.branch_no === order.metadata?.branch_no);
|
|
490
40
|
}
|
|
491
41
|
else {
|
|
492
42
|
branchParty = partyData?.find((p) => p.branch_name.toLowerCase() === "self");
|
|
493
43
|
}
|
|
494
44
|
const partyToUse = branchParty;
|
|
495
|
-
console.log("partyToUse", partyToUse);
|
|
496
45
|
const { data: [promocode_series_master], } = await query.graph({
|
|
497
46
|
entity: "promocode_series_master",
|
|
498
47
|
fields: ["promocode_series_id", "promocode_master_id", "promocode"],
|
|
@@ -922,4 +471,4 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
|
|
|
922
471
|
: null,
|
|
923
472
|
});
|
|
924
473
|
});
|
|
925
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1vcmRlci10by1lcnAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29yZGVycy9zdGVwcy9zeW5jLW9yZGVyLXRvLWVycC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBNkU7QUFDN0UscUVBQTJFO0FBQzNFLHFEQUFzRztBQUV0Ryx3REFBb0U7QUFFcEUsMEZBQTJGO0FBQzNGLDhEQUErRTtBQUMvRSx3RUFBa0U7QUFDbEUsNkVBQW1FO0FBSXRELFFBQUEsa0JBQWtCLEdBQUcsSUFBQSwwQkFBVSxFQUMxQyxtQkFBbUIsRUFDbkIsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzVDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUNqQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7UUFDcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUU7S0FDbkMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEMsSUFBSSxNQUFNLEdBQU8sRUFBRSxDQUFBO0lBQ25CLElBQUcsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEtBQUksVUFBVSxFQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLFFBQVEsR0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFBO0lBQzFELENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxDQUFDLFdBQVcsR0FBRSxNQUFNLENB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
|
|
474
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1vcmRlci10by1lcnAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29yZGVycy9zdGVwcy9zeW5jLW9yZGVyLXRvLWVycC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBNkU7QUFDN0UscUVBQTJFO0FBRTNFLHdEQUFvRTtBQUt2RCxRQUFBLGtCQUFrQixHQUFHLElBQUEsMEJBQVUsRUFDMUMsbUJBQW1CLEVBQ25CLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUM1QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FDakIsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLFVBQVU7UUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDO1FBQ3BDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFO0tBQ25DLENBQUMsQ0FBQztJQUVILElBQUksTUFBTSxHQUFPLEVBQUUsQ0FBQTtJQUNuQixJQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxLQUFJLFVBQVUsRUFBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxRQUFRLEdBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQTtJQUMxRCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxXQUFXLEdBQUUsTUFBTSxDQUFBO0lBQzVCLENBQUM7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUM1QyxNQUFNLEVBQUUsY0FBYztRQUN0QixNQUFNLEVBQUUs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
|