medusa-plugin-veeqo 0.2.0 → 0.3.1
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/medusa-config.js +3 -3
- package/.medusa/server/src/api/admin/veeqo/orders/[orderId]/replacements/sync/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/veeqo/orders/[orderId]/replacements/sync/route.js +45 -0
- package/.medusa/server/src/api/admin/veeqo/orders/[orderId]/sync/route.js +5 -2
- package/.medusa/server/src/api/admin/veeqo/sync/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/veeqo/sync/route.js +39 -0
- package/.medusa/server/src/modules/veeqo/index.d.ts +1 -0
- package/.medusa/server/src/modules/veeqo/index.js +4 -2
- package/.medusa/server/src/modules/veeqo/migrations/Migration20260508120000.d.ts +5 -0
- package/.medusa/server/src/modules/veeqo/migrations/Migration20260508120000.js +34 -0
- package/.medusa/server/src/modules/veeqo/models/veeqo-customer.d.ts +7 -3
- package/.medusa/server/src/modules/veeqo/models/veeqo-order.d.ts +12 -3
- package/.medusa/server/src/modules/veeqo/models/veeqo-order.js +24 -6
- package/.medusa/server/src/modules/veeqo/models/veeqo-shipment.d.ts +7 -3
- package/.medusa/server/src/modules/veeqo/service.d.ts +60 -10
- package/.medusa/server/src/modules/veeqo/service.js +53 -20
- package/.medusa/server/src/modules/veeqo/types.d.ts +3 -4
- package/.medusa/server/src/subscribers/claim-dispatcher.d.ts +6 -0
- package/.medusa/server/src/subscribers/claim-dispatcher.js +19 -0
- package/.medusa/server/src/subscribers/exchange-dispatcher.d.ts +6 -0
- package/.medusa/server/src/subscribers/exchange-dispatcher.js +19 -0
- package/.medusa/server/src/subscribers/{veeqo-dispatcher.d.ts → place-order-dispatcher.d.ts} +1 -1
- package/.medusa/server/src/subscribers/place-order-dispatcher.js +12 -0
- package/.medusa/server/src/workflows/order.d.ts +169 -15
- package/.medusa/server/src/workflows/order.js +468 -76
- package/.medusa/server/src/workflows/shipments.js +5 -1
- package/README.md +39 -0
- package/package.json +13 -13
- package/.medusa/server/src/subscribers/veeqo-dispatcher.js +0 -12
|
@@ -121,6 +121,32 @@ class VeeqoService extends (0, utils_1.MedusaService)({
|
|
|
121
121
|
throw new utils_2.MedusaError(utils_2.MedusaError.Types.NOT_FOUND, `Veeqo delivery method with veeqo_delivery_method_id ${veeqoDeliveryMethodId} not found`);
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Searches Veeqo for an order whose `number` field exactly matches the given value.
|
|
126
|
+
*
|
|
127
|
+
* Veeqo's list-orders endpoint only supports a free-text `query` parameter, so we
|
|
128
|
+
* search and then filter client-side for an exact `number` match. Used by
|
|
129
|
+
* createVeeqoOrderStep to recover from the API-succeeded-DB-failed window —
|
|
130
|
+
* if a Veeqo order already exists for the number we're about to create, we
|
|
131
|
+
* adopt it instead of creating a duplicate.
|
|
132
|
+
*
|
|
133
|
+
* Returns the matching order or null if not found.
|
|
134
|
+
*/
|
|
135
|
+
async findOrderByNumber(number) {
|
|
136
|
+
const response = await this.fetch({
|
|
137
|
+
path: `/orders?query=${encodeURIComponent(number)}&page_size=20`,
|
|
138
|
+
method: 'GET'
|
|
139
|
+
});
|
|
140
|
+
if (!response.ok) {
|
|
141
|
+
this.logger_.warn(`veeqo findOrderByNumber: HTTP ${response.status} for query "${number}"`);
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
const body = await response.json().catch(() => null);
|
|
145
|
+
if (!Array.isArray(body))
|
|
146
|
+
return null;
|
|
147
|
+
const exact = body.find(o => o?.number === number);
|
|
148
|
+
return exact ?? null;
|
|
149
|
+
}
|
|
124
150
|
/**
|
|
125
151
|
* Fetches an order from Veeqo by Veeqo Order ID. Returns the Veeqo order or null if not found.
|
|
126
152
|
*/
|
|
@@ -252,28 +278,30 @@ class VeeqoService extends (0, utils_1.MedusaService)({
|
|
|
252
278
|
return veeqoDeliveryMethod;
|
|
253
279
|
}
|
|
254
280
|
/**
|
|
255
|
-
*
|
|
281
|
+
* Creates an order in Veeqo via the Veeqo API and returns the response.
|
|
282
|
+
*
|
|
283
|
+
* Persistence of the local VeeqoOrder DB row is the caller's responsibility (see
|
|
284
|
+
* createVeeqoOrderStep in workflows/order.ts, which uses the placeholder-row pattern).
|
|
285
|
+
* This separation lets the workflow handle the (source_type, source_id) discriminator,
|
|
286
|
+
* idempotency, and failure tracking, while this method stays focused on the API call.
|
|
256
287
|
*/
|
|
257
|
-
async addOrder(
|
|
258
|
-
const
|
|
288
|
+
async addOrder(input) {
|
|
289
|
+
const response = await this.fetch({
|
|
259
290
|
path: `/orders`,
|
|
260
291
|
method: 'POST',
|
|
261
|
-
body: { order:
|
|
262
|
-
})
|
|
263
|
-
.then(response => response.json())
|
|
264
|
-
.catch(err => this.logger_.error(err)));
|
|
265
|
-
if (!veeqoOrder?.id) {
|
|
266
|
-
throw new utils_2.MedusaError(utils_2.MedusaError.Types.UNEXPECTED_STATE, `Failed to create order in Veeqo for order ${orderId}`);
|
|
267
|
-
}
|
|
268
|
-
// Resolve the local VeeqoCustomer DB record so we can set the required FK
|
|
269
|
-
const dbCustomers = await this.listVeeqoCustomers({ veeqo_customer_id: orderInput.customer_id }, { take: 1 });
|
|
270
|
-
const dbCustomer = dbCustomers[0];
|
|
271
|
-
await this.createVeeqoOrders({
|
|
272
|
-
order_id: orderId,
|
|
273
|
-
veeqo_order_id: veeqoOrder.id,
|
|
274
|
-
...(dbCustomer ? { veeqo_customer_id: dbCustomer.id } : {})
|
|
292
|
+
body: { order: input.veeqo_input }
|
|
275
293
|
});
|
|
276
|
-
|
|
294
|
+
const body = await response.json().catch(() => null);
|
|
295
|
+
if (!response.ok || !body?.id) {
|
|
296
|
+
// Surface the Veeqo error so callers (and createVeeqoOrderStep) can persist
|
|
297
|
+
// it as last_sync_error rather than throwing an opaque "Failed" message.
|
|
298
|
+
const detail = body && typeof body === 'object'
|
|
299
|
+
? JSON.stringify(body)
|
|
300
|
+
: `HTTP ${response.status}`;
|
|
301
|
+
this.logger_.error(`veeqo addOrder failed (number: ${input.veeqo_input.number}): ${detail}`);
|
|
302
|
+
throw new utils_2.MedusaError(utils_2.MedusaError.Types.UNEXPECTED_STATE, `Failed to create order in Veeqo (number: ${input.veeqo_input.number}): ${detail}`);
|
|
303
|
+
}
|
|
304
|
+
return body;
|
|
277
305
|
}
|
|
278
306
|
/**
|
|
279
307
|
* Adds a product to Veeqo and links it to the corresponding product in Medusa. First argument is the Medusa product ID, second argument is the input data to create the product in Veeqo. Returns the created Veeqo product.
|
|
@@ -479,7 +507,12 @@ class VeeqoService extends (0, utils_1.MedusaService)({
|
|
|
479
507
|
* Cancels an order in Veeqo by Medusa order ID and unlinks it in Medusa. Veeqo does not allow deleting orders, but canceling the order will hide it in the Veeqo interface.
|
|
480
508
|
*/
|
|
481
509
|
async deleteOrder(orderId, cancelReason = '') {
|
|
482
|
-
|
|
510
|
+
// Scoped to ORDER_PLACED — replacement VeeqoOrders (claim/exchange) are not
|
|
511
|
+
// touched by this delete; warehouse handles those independently if needed.
|
|
512
|
+
const [veeqoOrder] = await this.listVeeqoOrders({
|
|
513
|
+
order_id: orderId,
|
|
514
|
+
source_type: veeqo_order_1.SourceType.ORDER_PLACED
|
|
515
|
+
});
|
|
483
516
|
if (!veeqoOrder) {
|
|
484
517
|
throw new utils_2.MedusaError(utils_2.MedusaError.Types.NOT_FOUND, `Veeqo order linked to order ${orderId} not found`);
|
|
485
518
|
}
|
|
@@ -563,4 +596,4 @@ class VeeqoService extends (0, utils_1.MedusaService)({
|
|
|
563
596
|
}
|
|
564
597
|
}
|
|
565
598
|
exports.VeeqoService = VeeqoService;
|
|
566
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3ZlZXFvL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXNDO0FBQ3RDLHFEQUF5RDtBQUV6RCxxREFBdUQ7QUFxQnZELDBEQUFxRDtBQUNyRCw0REFBdUQ7QUFDdkQsMEVBQW9FO0FBQ3BFLHNEQUFpRDtBQUNqRCwwREFBcUQ7QUFDckQsNERBQXVEO0FBQ3ZELDREQUF1RDtBQUN2RCw4REFBeUQ7QUFrQnpELE1BQWEsWUFBYSxTQUFRLElBQUEscUJBQWEsRUFBQztJQUMvQyxZQUFZLEVBQVosNEJBQVk7SUFDWixhQUFhLEVBQWIsOEJBQWE7SUFDYixtQkFBbUIsRUFBbkIsMkNBQW1CO0lBQ25CLFVBQVUsRUFBVix3QkFBVTtJQUNWLFlBQVksRUFBWiw0QkFBWTtJQUNaLGFBQWEsRUFBYiw4QkFBYTtJQUNiLGFBQWEsRUFBYiw4QkFBYTtJQUNiLGNBQWMsRUFBZCxnQ0FBYztDQUNkLENBQUM7SUFZRCxZQUNDLFNBRUMsRUFDRCxPQUFxQjtRQUVyQixLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQTtRQWZwQiwrRkFBK0Y7UUFDL0Ysd0VBQXdFO1FBQ3hFLG9HQUFvRztRQUNwRyxnTkFBZ047UUFDeE0sY0FBUyxHQUFHLElBQUEsc0JBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QixVQUFLLEdBQUcsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQVc5RixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUE7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNkLEdBQUcsQ0FBQyxJ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
|
|
599
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3ZlZXFvL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXNDO0FBQ3RDLHFEQUF5RDtBQUV6RCxxREFBdUQ7QUFxQnZELDBEQUFxRDtBQUNyRCw0REFBdUQ7QUFDdkQsMEVBQW9FO0FBQ3BFLHNEQUE2RDtBQUM3RCwwREFBcUQ7QUFDckQsNERBQXVEO0FBQ3ZELDREQUF1RDtBQUN2RCw4REFBeUQ7QUFrQnpELE1BQWEsWUFBYSxTQUFRLElBQUEscUJBQWEsRUFBQztJQUMvQyxZQUFZLEVBQVosNEJBQVk7SUFDWixhQUFhLEVBQWIsOEJBQWE7SUFDYixtQkFBbUIsRUFBbkIsMkNBQW1CO0lBQ25CLFVBQVUsRUFBVix3QkFBVTtJQUNWLFlBQVksRUFBWiw0QkFBWTtJQUNaLGFBQWEsRUFBYiw4QkFBYTtJQUNiLGFBQWEsRUFBYiw4QkFBYTtJQUNiLGNBQWMsRUFBZCxnQ0FBYztDQUNkLENBQUM7SUFZRCxZQUNDLFNBRUMsRUFDRCxPQUFxQjtRQUVyQixLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQTtRQWZwQiwrRkFBK0Y7UUFDL0Ysd0VBQXdFO1FBQ3hFLG9HQUFvRztRQUNwRyxnTkFBZ047UUFDeE0sY0FBUyxHQUFHLElBQUEsc0JBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QixVQUFLLEdBQUcsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQVc5RixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUE7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNkLEdBQUcsQ0FBQyxJ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
|
|
@@ -70,9 +70,6 @@ export type OrderForVeeqoOrderInput = {
|
|
|
70
70
|
provider_id?: string | null;
|
|
71
71
|
}[] | null;
|
|
72
72
|
}[] | null;
|
|
73
|
-
veeqo_order?: {
|
|
74
|
-
veeqo_order_id?: number | null;
|
|
75
|
-
} | null;
|
|
76
73
|
};
|
|
77
74
|
export type ProductVariantForVeeqoProductInput = {
|
|
78
75
|
id: string;
|
|
@@ -182,7 +179,9 @@ export interface VeeqoOrderInput {
|
|
|
182
179
|
payment_type: string;
|
|
183
180
|
reference_number: string;
|
|
184
181
|
};
|
|
185
|
-
|
|
182
|
+
employee_notes_attributes?: {
|
|
183
|
+
text: string;
|
|
184
|
+
}[];
|
|
186
185
|
}
|
|
187
186
|
export interface VeeqoProductDTO {
|
|
188
187
|
id: number;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SubscriberArgs, SubscriberConfig } from '@medusajs/framework';
|
|
2
|
+
export declare const config: SubscriberConfig;
|
|
3
|
+
export default function claimDispatchHandler({ event: { data: { order_id, claim_id } }, container }: SubscriberArgs<{
|
|
4
|
+
order_id: string;
|
|
5
|
+
claim_id: string;
|
|
6
|
+
}>): Promise<void>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.default = claimDispatchHandler;
|
|
5
|
+
const order_1 = require("../workflows/order");
|
|
6
|
+
const veeqo_order_1 = require("../modules/veeqo/models/veeqo-order");
|
|
7
|
+
exports.config = {
|
|
8
|
+
event: 'order.claim_created'
|
|
9
|
+
};
|
|
10
|
+
async function claimDispatchHandler({ event: { data: { order_id, claim_id } }, container }) {
|
|
11
|
+
await (0, order_1.syncReplacementToVeeqoWorkflow)(container).run({
|
|
12
|
+
input: {
|
|
13
|
+
orderId: order_id,
|
|
14
|
+
sourceType: veeqo_order_1.SourceType.CLAIM,
|
|
15
|
+
sourceId: claim_id
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW0tZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9jbGFpbS1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLHVDQWFDO0FBcEJELDhDQUFtRTtBQUNuRSxxRUFBZ0U7QUFFbkQsUUFBQSxNQUFNLEdBQXFCO0lBQ3ZDLEtBQUssRUFBRSxxQkFBcUI7Q0FDNUIsQ0FBQTtBQUVjLEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxFQUNsRCxLQUFLLEVBQUUsRUFDTixJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQzVCLEVBQ0QsU0FBUyxFQUMrQztJQUN4RCxNQUFNLElBQUEsc0NBQThCLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ25ELEtBQUssRUFBRTtZQUNOLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFVBQVUsRUFBRSx3QkFBVSxDQUFDLEtBQUs7WUFDNUIsUUFBUSxFQUFFLFFBQVE7U0FDbEI7S0FDRCxDQUFDLENBQUE7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SubscriberArgs, SubscriberConfig } from '@medusajs/framework';
|
|
2
|
+
export declare const config: SubscriberConfig;
|
|
3
|
+
export default function exchangeDispatchHandler({ event: { data: { order_id, exchange_id } }, container }: SubscriberArgs<{
|
|
4
|
+
order_id: string;
|
|
5
|
+
exchange_id: string;
|
|
6
|
+
}>): Promise<void>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.default = exchangeDispatchHandler;
|
|
5
|
+
const order_1 = require("../workflows/order");
|
|
6
|
+
const veeqo_order_1 = require("../modules/veeqo/models/veeqo-order");
|
|
7
|
+
exports.config = {
|
|
8
|
+
event: 'order.exchange_created'
|
|
9
|
+
};
|
|
10
|
+
async function exchangeDispatchHandler({ event: { data: { order_id, exchange_id } }, container }) {
|
|
11
|
+
await (0, order_1.syncReplacementToVeeqoWorkflow)(container).run({
|
|
12
|
+
input: {
|
|
13
|
+
orderId: order_id,
|
|
14
|
+
sourceType: veeqo_order_1.SourceType.EXCHANGE,
|
|
15
|
+
sourceId: exchange_id
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjaGFuZ2UtZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9leGNoYW5nZS1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLDBDQWFDO0FBcEJELDhDQUFtRTtBQUNuRSxxRUFBZ0U7QUFFbkQsUUFBQSxNQUFNLEdBQXFCO0lBQ3ZDLEtBQUssRUFBRSx3QkFBd0I7Q0FDL0IsQ0FBQTtBQUVjLEtBQUssVUFBVSx1QkFBdUIsQ0FBQyxFQUNyRCxLQUFLLEVBQUUsRUFDTixJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQy9CLEVBQ0QsU0FBUyxFQUNrRDtJQUMzRCxNQUFNLElBQUEsc0NBQThCLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ25ELEtBQUssRUFBRTtZQUNOLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFVBQVUsRUFBRSx3QkFBVSxDQUFDLFFBQVE7WUFDL0IsUUFBUSxFQUFFLFdBQVc7U0FDckI7S0FDRCxDQUFDLENBQUE7QUFDSCxDQUFDIn0=
|
package/.medusa/server/src/subscribers/{veeqo-dispatcher.d.ts → place-order-dispatcher.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SubscriberArgs, SubscriberConfig } from '@medusajs/framework';
|
|
2
2
|
export declare const config: SubscriberConfig;
|
|
3
|
-
export default function
|
|
3
|
+
export default function placeOrderDispatchHandler({ event: { data: { id: orderId } }, container }: SubscriberArgs<{
|
|
4
4
|
id: string;
|
|
5
5
|
}>): Promise<void>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.default = placeOrderDispatchHandler;
|
|
5
|
+
const order_1 = require("../workflows/order");
|
|
6
|
+
exports.config = {
|
|
7
|
+
event: 'order.placed'
|
|
8
|
+
};
|
|
9
|
+
async function placeOrderDispatchHandler({ event: { data: { id: orderId } }, container }) {
|
|
10
|
+
await (0, order_1.syncOrderToVeeqoWorkflow)(container).run({ input: orderId });
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utb3JkZXItZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9wbGFjZS1vcmRlci1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLDRDQU9DO0FBYkQsOENBQTZEO0FBRWhELFFBQUEsTUFBTSxHQUFxQjtJQUN2QyxLQUFLLEVBQUUsY0FBYztDQUNyQixDQUFBO0FBRWMsS0FBSyxVQUFVLHlCQUF5QixDQUFDLEVBQ3ZELEtBQUssRUFBRSxFQUNOLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFDckIsRUFDRCxTQUFTLEVBQ3VCO0lBQ2hDLE1BQU0sSUFBQSxnQ0FBd0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtBQUNsRSxDQUFDIn0=
|
|
@@ -1,21 +1,175 @@
|
|
|
1
|
-
import { OrderForVeeqoOrderInput, VeeqoOrderDTO } from '../modules/veeqo/types';
|
|
1
|
+
import { OrderForVeeqoOrderInput, VeeqoOrderDTO, VeeqoOrderInput } from '../modules/veeqo/types';
|
|
2
|
+
import { SourceType } from '../modules/veeqo/models/veeqo-order';
|
|
3
|
+
type ReplacementItem = {
|
|
4
|
+
id: string;
|
|
5
|
+
quantity: number;
|
|
6
|
+
variant_id: string | null;
|
|
7
|
+
unit_price: number;
|
|
8
|
+
};
|
|
9
|
+
type ReplacementContext = {
|
|
10
|
+
order_id: string;
|
|
11
|
+
source_type: SourceType;
|
|
12
|
+
source_id: string;
|
|
13
|
+
additional_items: ReplacementItem[];
|
|
14
|
+
customer: {
|
|
15
|
+
id: string;
|
|
16
|
+
email: string | null;
|
|
17
|
+
phone: string | null;
|
|
18
|
+
} | null;
|
|
19
|
+
shipping_address: any;
|
|
20
|
+
sales_channel: {
|
|
21
|
+
id: string;
|
|
22
|
+
veeqo_channel_id?: number | null;
|
|
23
|
+
} | null;
|
|
24
|
+
shipping_method: {
|
|
25
|
+
id: string;
|
|
26
|
+
veeqo_delivery_method_id?: number | null;
|
|
27
|
+
} | null;
|
|
28
|
+
parent_veeqo_order_id: number | null;
|
|
29
|
+
variants_with_sellable: Record<string, {
|
|
30
|
+
veeqo_sellable_id: number | string | undefined;
|
|
31
|
+
}>;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Looks up a VeeqoOrder row by its (source_type, source_id) key.
|
|
35
|
+
*
|
|
36
|
+
* Used as the idempotency primitive for both the original-order and replacement flows.
|
|
37
|
+
* Returns the row if it exists, null otherwise. Note: a returned row may have
|
|
38
|
+
* veeqo_order_id=NULL (placeholder from a failed prior create attempt) — callers
|
|
39
|
+
* decide whether to retry or skip based on that.
|
|
40
|
+
*/
|
|
41
|
+
export declare const findVeeqoOrderBySourceStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
42
|
+
source_type: SourceType;
|
|
43
|
+
source_id: string;
|
|
44
|
+
}, {
|
|
45
|
+
id: string;
|
|
46
|
+
status: import("../modules/veeqo/models/veeqo-order").Status;
|
|
47
|
+
last_synced_at: Date | null;
|
|
48
|
+
order_id: string;
|
|
49
|
+
source_type: SourceType;
|
|
50
|
+
source_id: string;
|
|
51
|
+
veeqo_order_id: number | null;
|
|
52
|
+
veeqo_status: string | null;
|
|
53
|
+
last_sync_error: string | null;
|
|
54
|
+
last_sync_attempted_at: Date | null;
|
|
55
|
+
veeqo_customer: {
|
|
56
|
+
id: string;
|
|
57
|
+
customer_id: string;
|
|
58
|
+
veeqo_customer_id: number;
|
|
59
|
+
veeqo_orders: /*elided*/ any[];
|
|
60
|
+
created_at: Date;
|
|
61
|
+
updated_at: Date;
|
|
62
|
+
deleted_at: Date | null;
|
|
63
|
+
};
|
|
64
|
+
veeqo_shipments: {
|
|
65
|
+
id: string;
|
|
66
|
+
fulfillment_id: string;
|
|
67
|
+
veeqo_allocation_id: number;
|
|
68
|
+
veeqo_shipment_id: number;
|
|
69
|
+
carrier: Record<string, unknown> | null;
|
|
70
|
+
tracking_number: Record<string, unknown> | null;
|
|
71
|
+
shipped_by: Record<string, unknown> | null;
|
|
72
|
+
shipped_at: Date | null;
|
|
73
|
+
veeqo_tracking_events: Record<string, unknown> | null;
|
|
74
|
+
veeqo_order: /*elided*/ any;
|
|
75
|
+
created_at: Date;
|
|
76
|
+
updated_at: Date;
|
|
77
|
+
deleted_at: Date | null;
|
|
78
|
+
veeqo_order_id: string;
|
|
79
|
+
}[];
|
|
80
|
+
raw_veeqo_order_id: Record<string, unknown> | null;
|
|
81
|
+
created_at: Date;
|
|
82
|
+
updated_at: Date;
|
|
83
|
+
deleted_at: Date | null;
|
|
84
|
+
veeqo_customer_id: string;
|
|
85
|
+
}>;
|
|
86
|
+
/**
|
|
87
|
+
* Creates a Veeqo order via the API and persists the corresponding VeeqoOrder row.
|
|
88
|
+
*
|
|
89
|
+
* Uses the placeholder-row pattern for failure visibility:
|
|
90
|
+
* 1. Insert/update a row marking the attempt (veeqo_order_id=NULL initially).
|
|
91
|
+
* 2. Call Veeqo API.
|
|
92
|
+
* 3. On success: update the row with veeqo_order_id, clear last_sync_error.
|
|
93
|
+
* 4. On retryable failure: persist last_sync_error, throw so subscriber retries.
|
|
94
|
+
* 5. On non-retryable failure: persist last_sync_error, return null (no retry).
|
|
95
|
+
*
|
|
96
|
+
* If the input.veeqo_input is null (sentinel from the replacement mapper for refund-only
|
|
97
|
+
* claims), this step is a clean no-op — no row, no API call.
|
|
98
|
+
*/
|
|
99
|
+
export declare const createVeeqoOrderStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
100
|
+
order_id: string;
|
|
101
|
+
source_type: SourceType;
|
|
102
|
+
source_id: string;
|
|
103
|
+
veeqo_input: VeeqoOrderInput | null;
|
|
104
|
+
}, VeeqoOrderDTO | null>;
|
|
2
105
|
export declare const getOrderDetailsStep: import("@medusajs/framework/workflows-sdk").StepFunction<string, OrderForVeeqoOrderInput>;
|
|
3
106
|
export declare const processVeeqoStatusChangesStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
4
107
|
order: OrderForVeeqoOrderInput;
|
|
5
108
|
veeqo_order: VeeqoOrderDTO;
|
|
6
109
|
}, undefined>;
|
|
7
|
-
export declare const fetchOrderFromVeeqoStep: import("@medusajs/framework/workflows-sdk").StepFunction<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}, VeeqoOrderDTO
|
|
20
|
-
export declare const
|
|
110
|
+
export declare const fetchOrderFromVeeqoStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
111
|
+
source_type: SourceType;
|
|
112
|
+
source_id: string;
|
|
113
|
+
}, VeeqoOrderDTO>;
|
|
114
|
+
export declare const getVeeqoOrderWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<{
|
|
115
|
+
source_type: SourceType;
|
|
116
|
+
source_id: string;
|
|
117
|
+
}, VeeqoOrderDTO, []>;
|
|
118
|
+
export declare const addOrderToVeeqoWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<string, VeeqoOrderDTO | null, []>;
|
|
119
|
+
export declare const updateOrderInVeeqoStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
120
|
+
source_type: SourceType;
|
|
121
|
+
source_id: string;
|
|
122
|
+
}, VeeqoOrderDTO>;
|
|
123
|
+
export declare const updateOrderInVeeqoWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<{
|
|
124
|
+
source_type: SourceType;
|
|
125
|
+
source_id: string;
|
|
126
|
+
}, VeeqoOrderDTO, []>;
|
|
127
|
+
/**
|
|
128
|
+
* Step that handles the existing-order side of syncOrderToVeeqoWorkflow:
|
|
129
|
+
* fetches the latest Veeqo state and triggers shipment sync.
|
|
130
|
+
*
|
|
131
|
+
* The "create new Veeqo order" branch is now delegated to createVeeqoOrderStep
|
|
132
|
+
* at the workflow level — see syncOrderToVeeqoWorkflow below.
|
|
133
|
+
*/
|
|
134
|
+
export declare const refreshExistingPlacedVeeqoOrderStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
135
|
+
order_id: string;
|
|
136
|
+
}, VeeqoOrderDTO | null>;
|
|
137
|
+
/**
|
|
138
|
+
* Idempotency check for the placement flow. If a healthy ORDER_PLACED VeeqoOrder
|
|
139
|
+
* already exists, syncOrderToVeeqoWorkflow takes the refresh path; otherwise it
|
|
140
|
+
* takes the create path via createVeeqoOrderStep.
|
|
141
|
+
*
|
|
142
|
+
* This step's role is purely to read and report; the conditional execution
|
|
143
|
+
* happens via createVeeqoOrderStep's own existence check.
|
|
144
|
+
*/
|
|
145
|
+
export declare const syncOrderToVeeqoWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<string, VeeqoOrderDTO | null, []>;
|
|
146
|
+
/**
|
|
147
|
+
* Fetches everything needed to construct a Veeqo order for a claim or exchange:
|
|
148
|
+
* - the claim/exchange's additional_items (the outbound items being shipped to the customer)
|
|
149
|
+
* - the parent order's customer, shipping address, sales channel, shipping method
|
|
150
|
+
* - the parent VeeqoOrder's veeqo_order_id (for the "Replacement for #N" note)
|
|
151
|
+
*
|
|
152
|
+
* Returns a ReplacementContext shape consumed by mapReplacementContextToVeeqoOrderInput.
|
|
153
|
+
*/
|
|
154
|
+
export declare const getReplacementContextStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
|
|
155
|
+
order_id: string;
|
|
156
|
+
source_type: SourceType;
|
|
157
|
+
source_id: string;
|
|
158
|
+
}, ReplacementContext>;
|
|
159
|
+
/**
|
|
160
|
+
* Top-level workflow for syncing a claim or exchange's outbound shipment to Veeqo.
|
|
161
|
+
*
|
|
162
|
+
* Flow:
|
|
163
|
+
* 1. Fetch replacement context (claim/exchange items + parent order context).
|
|
164
|
+
* 2. Sync the customer to Veeqo (existing reused workflow).
|
|
165
|
+
* 3. Build the VeeqoOrderInput from context. Returns null sentinel for refund-only claims.
|
|
166
|
+
* 4. Call createVeeqoOrderStep, which handles the placeholder-row pattern, idempotency,
|
|
167
|
+
* Veeqo API call, and post-success row update.
|
|
168
|
+
*/
|
|
169
|
+
export declare const syncReplacementToVeeqoWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<{
|
|
170
|
+
orderId: string;
|
|
171
|
+
sourceType: SourceType;
|
|
172
|
+
sourceId: string;
|
|
173
|
+
}, VeeqoOrderDTO | null, []>;
|
|
21
174
|
export declare const findAndDeleteOrderFromVeeqoStep: import("@medusajs/framework/workflows-sdk").StepFunction<string, undefined>;
|
|
175
|
+
export {};
|