order-management 0.0.101 → 0.0.103

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.
@@ -51,6 +51,9 @@ function normalizeOrderManagementOptions(input) {
51
51
  capture_payment_on_delivered: input.capture_payment_on_delivered ?? true,
52
52
  returnValidInDays,
53
53
  exchangeValidInDays,
54
+ allowPayAtStore: input.allowPayAtStore ?? true,
55
+ requireReturnStoreLocation: input.requireReturnStoreLocation ?? true,
56
+ capture_payment_on_pickup: input.capture_payment_on_pickup ?? true,
54
57
  };
55
58
  }
56
59
  function resolveOrderManagementOptions(configModule) {
@@ -69,4 +72,4 @@ function resolveOrderManagementOptions(configModule) {
69
72
  }
70
73
  throw new Error("order-management: Plugin not found in configuration. Please add the plugin to medusa-config.ts");
71
74
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUEwQ0gsMEVBb0RDO0FBRUQsc0VBd0JDO0FBdEhELHFEQUFvRDtBQU1wRCx1RkFBdUY7QUFDMUUsUUFBQSxhQUFhLEdBQUc7SUFDM0IsYUFBYSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLGFBQWE7Q0FDN0MsQ0FBQTtBQWtCVixNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQTtBQWF0QyxTQUFnQiwrQkFBK0IsQ0FDN0MsS0FBMkM7SUFFM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYixnR0FBZ0csQ0FDakcsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsK0RBQStELENBQ2hFLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUE7SUFDOUUsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQ3JCLE9BQU8sS0FBSyxDQUFDLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsQ0FBQztRQUN4RSxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtRQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRVAsTUFBTSxtQkFBbUIsR0FDdkIsT0FBTyxLQUFLLENBQUMsbUJBQW1CLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CO1FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFUCxPQUFPO1FBQ0wsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1FBQ2xDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztRQUMxQixLQUFLLEVBQUU7WUFDTCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLG9CQUFvQixJQUFJLElBQUk7WUFDL0QsV0FBVyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLElBQUk7U0FDOUM7UUFDRCxJQUFJLEVBQUU7WUFDSixPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksS0FBSztZQUNyQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJO1lBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUk7WUFDdEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUk7WUFDbEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSTtZQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJO1NBQ3ZCO1FBQ0QsYUFBYSxFQUFFO1lBQ2IsT0FBTyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsT0FBTyxJQUFJLEtBQUs7WUFDOUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsWUFBWSxJQUFJLEVBQUU7U0FDdEQ7UUFDRCw0QkFBNEIsRUFBRSxLQUFLLENBQUMsNEJBQTRCLElBQUksSUFBSTtRQUN4RSxpQkFBaUI7UUFDakIsbUJBQW1CO0tBQ3BCLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsNkJBQTZCLENBQzNDLFlBQWdDO0lBRWhDLE1BQU0sT0FBTyxHQUFHLFlBQVksRUFBRSxPQUFPLElBQUksRUFBRSxDQUFBO0lBRTNDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFBLGdCQUFRLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDM0Isd0VBQXdFO2dCQUN4RSxNQUFNLElBQUksS0FBSyxDQUNiLDZGQUE2RixDQUM5RixDQUFBO1lBQ0gsQ0FBQztZQUNELFNBQVE7UUFDVixDQUFDO1FBRUQsSUFBSSxNQUFNLEVBQUUsT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sK0JBQStCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FDYixnR0FBZ0csQ0FDakcsQ0FBQTtBQUNILENBQUMifQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUEwQ0gsMEVBdURDO0FBRUQsc0VBd0JDO0FBekhELHFEQUFvRDtBQU1wRCx1RkFBdUY7QUFDMUUsUUFBQSxhQUFhLEdBQUc7SUFDM0IsYUFBYSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLGFBQWE7Q0FDN0MsQ0FBQTtBQWtCVixNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQTtBQWF0QyxTQUFnQiwrQkFBK0IsQ0FDN0MsS0FBMkM7SUFFM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYixnR0FBZ0csQ0FDakcsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsK0RBQStELENBQ2hFLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUE7SUFDOUUsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQ3JCLE9BQU8sS0FBSyxDQUFDLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsQ0FBQztRQUN4RSxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtRQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRVAsTUFBTSxtQkFBbUIsR0FDdkIsT0FBTyxLQUFLLENBQUMsbUJBQW1CLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CO1FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFUCxPQUFPO1FBQ0wsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1FBQ2xDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztRQUMxQixLQUFLLEVBQUU7WUFDTCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLG9CQUFvQixJQUFJLElBQUk7WUFDL0QsV0FBVyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLElBQUk7U0FDOUM7UUFDRCxJQUFJLEVBQUU7WUFDSixPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksS0FBSztZQUNyQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJO1lBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUk7WUFDdEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUk7WUFDbEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSTtZQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJO1NBQ3ZCO1FBQ0QsYUFBYSxFQUFFO1lBQ2IsT0FBTyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsT0FBTyxJQUFJLEtBQUs7WUFDOUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsWUFBWSxJQUFJLEVBQUU7U0FDdEQ7UUFDRCw0QkFBNEIsRUFBRSxLQUFLLENBQUMsNEJBQTRCLElBQUksSUFBSTtRQUN4RSxpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJLElBQUk7UUFDOUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixJQUFJLElBQUk7UUFDcEUseUJBQXlCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QixJQUFJLElBQUk7S0FDbkUsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FDM0MsWUFBZ0M7SUFFaEMsTUFBTSxPQUFPLEdBQUcsWUFBWSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUE7SUFFM0MsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLElBQUEsZ0JBQVEsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUMzQix3RUFBd0U7Z0JBQ3hFLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkZBQTZGLENBQzlGLENBQUE7WUFDSCxDQUFDO1lBQ0QsU0FBUTtRQUNWLENBQUM7UUFFRCxJQUFJLE1BQU0sRUFBRSxPQUFPLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsT0FBTywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUNiLGdHQUFnRyxDQUNqRyxDQUFBO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listPickupLocations = listPickupLocations;
4
+ exports.getPickupLocation = getPickupLocation;
5
+ exports.listReturnLocations = listReturnLocations;
6
+ exports.assertValidReturnLocation = assertValidReturnLocation;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const order_fulfillment_metadata_1 = require("../utils/order-fulfillment-metadata");
9
+ function str(value) {
10
+ return typeof value === "string" && value.trim() ? value.trim() : null;
11
+ }
12
+ function rows(value) {
13
+ return Array.isArray(value)
14
+ ? value.filter((v) => Boolean(v && typeof v === "object"))
15
+ : [];
16
+ }
17
+ function optionCode(option) {
18
+ const type = option.type;
19
+ if (type && typeof type === "object" && !Array.isArray(type)) {
20
+ return str(type.code);
21
+ }
22
+ return null;
23
+ }
24
+ function isCustomerPickupOption(option) {
25
+ if (optionCode(option) === order_fulfillment_metadata_1.CUSTOMER_PICKUP_OPTION_CODE)
26
+ return true;
27
+ const data = option.data;
28
+ if (data && typeof data === "object" && !Array.isArray(data)) {
29
+ return data.customer_pickup === true;
30
+ }
31
+ return str(option.name) === "Store pickup";
32
+ }
33
+ function isCustomerVisible(location) {
34
+ const meta = location.metadata;
35
+ if (!meta || typeof meta !== "object" || Array.isArray(meta)) {
36
+ // No flag → treat as visible when a customer pickup option exists
37
+ return true;
38
+ }
39
+ const m = meta;
40
+ if (m.customer_visible === false || m.customer_visible === "false")
41
+ return false;
42
+ return true;
43
+ }
44
+ function findCustomerPickupOptionId(location) {
45
+ for (const set of rows(location.fulfillment_sets)) {
46
+ if (set.type && set.type !== "pickup")
47
+ continue;
48
+ for (const zone of rows(set.service_zones)) {
49
+ for (const option of rows(zone.shipping_options)) {
50
+ if (isCustomerPickupOption(option) && str(option.id)) {
51
+ return str(option.id);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ return null;
57
+ }
58
+ function toDto(location) {
59
+ const id = str(location.id);
60
+ if (!id)
61
+ return null;
62
+ if (!isCustomerVisible(location))
63
+ return null;
64
+ const shippingOptionId = findCustomerPickupOptionId(location);
65
+ if (!shippingOptionId)
66
+ return null;
67
+ const meta = location.metadata && typeof location.metadata === "object" && !Array.isArray(location.metadata)
68
+ ? location.metadata
69
+ : {};
70
+ const addressRow = location.address && typeof location.address === "object" && !Array.isArray(location.address)
71
+ ? location.address
72
+ : null;
73
+ return {
74
+ id,
75
+ name: str(location.name) ?? id,
76
+ address: addressRow
77
+ ? {
78
+ address_1: str(addressRow.address_1),
79
+ address_2: str(addressRow.address_2),
80
+ city: str(addressRow.city),
81
+ province: str(addressRow.province),
82
+ postal_code: str(addressRow.postal_code),
83
+ country_code: str(addressRow.country_code),
84
+ phone: str(addressRow.phone),
85
+ }
86
+ : null,
87
+ metadata: meta,
88
+ shipping_option_id: shippingOptionId,
89
+ hours: str(meta.hours) ?? str(meta.opening_hours),
90
+ phone: str(meta.phone) ?? (addressRow ? str(addressRow.phone) : null),
91
+ public_name: str(meta.public_name) ?? str(location.name),
92
+ };
93
+ }
94
+ const LOCATION_FIELDS = [
95
+ "id",
96
+ "name",
97
+ "metadata",
98
+ "address.address_1",
99
+ "address.address_2",
100
+ "address.city",
101
+ "address.province",
102
+ "address.postal_code",
103
+ "address.country_code",
104
+ "address.phone",
105
+ "fulfillment_sets.id",
106
+ "fulfillment_sets.type",
107
+ "fulfillment_sets.service_zones.id",
108
+ "fulfillment_sets.service_zones.shipping_options.id",
109
+ "fulfillment_sets.service_zones.shipping_options.name",
110
+ "fulfillment_sets.service_zones.shipping_options.type.code",
111
+ "fulfillment_sets.service_zones.shipping_options.data",
112
+ ];
113
+ async function listPickupLocations(container) {
114
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
115
+ const { data } = await query.graph({
116
+ entity: "stock_location",
117
+ fields: LOCATION_FIELDS,
118
+ });
119
+ return rows(data)
120
+ .map(toDto)
121
+ .filter((loc) => Boolean(loc))
122
+ .sort((a, b) => a.name.localeCompare(b.name));
123
+ }
124
+ async function getPickupLocation(container, locationId) {
125
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
126
+ const { data } = await query.graph({
127
+ entity: "stock_location",
128
+ fields: LOCATION_FIELDS,
129
+ filters: { id: locationId },
130
+ });
131
+ const [location] = rows(data);
132
+ return location ? toDto(location) : null;
133
+ }
134
+ /** Locations that may receive customer returns/exchanges (same visibility rules as pickup). */
135
+ async function listReturnLocations(container) {
136
+ return listPickupLocations(container);
137
+ }
138
+ async function assertValidReturnLocation(container, locationId) {
139
+ const id = typeof locationId === "string" ? locationId.trim() : "";
140
+ if (!id || id === "default_location") {
141
+ return {
142
+ ok: false,
143
+ message: "A valid store location_id is required for return or exchange",
144
+ };
145
+ }
146
+ const location = await getPickupLocation(container, id);
147
+ if (!location) {
148
+ return {
149
+ ok: false,
150
+ message: `Store location "${id}" is not available for return or exchange`,
151
+ };
152
+ }
153
+ return { ok: true, location };
154
+ }
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja3VwLWxvY2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXJzL3BpY2t1cC1sb2NhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErSUEsa0RBWUM7QUFFRCw4Q0FZQztBQUdELGtEQUlDO0FBRUQsOERBbUJDO0FBck1ELHFEQUFxRTtBQUVyRSxvRkFBaUY7QUErQmpGLFNBQVMsR0FBRyxDQUFDLEtBQWM7SUFDekIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUN4RSxDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsS0FBYztJQUMxQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFDUixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsTUFBVztJQUM3QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFBO0lBQ3hCLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3RCxPQUFPLEdBQUcsQ0FBRSxJQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEMsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsTUFBVztJQUN6QyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyx3REFBMkI7UUFBRSxP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
@@ -6,6 +6,8 @@ exports.loadReturnsViaQuery = loadReturnsViaQuery;
6
6
  exports.loadReturnByIdViaQuery = loadReturnByIdViaQuery;
7
7
  exports.attachReturnShippingMethods = attachReturnShippingMethods;
8
8
  exports.checkDeliveryReturnWindow = checkDeliveryReturnWindow;
9
+ exports.isUsableStockLocationId = isUsableStockLocationId;
10
+ exports.resolveReturnWorkflowShipping = resolveReturnWorkflowShipping;
9
11
  exports.getOrderReturnData = getOrderReturnData;
10
12
  exports.validateReturnWindow = validateReturnWindow;
11
13
  exports.calculateRefundAmount = calculateRefundAmount;
@@ -194,6 +196,91 @@ async function checkDeliveryReturnWindow(orderId, windowDays = DEFAULT_RETURN_EX
194
196
  }
195
197
  return { allowed: true };
196
198
  }
199
+ const PLACEHOLDER_STOCK_LOCATION = "default_location";
200
+ /** Storefront sends this when the order payload has no fulfillment location. */
201
+ function isUsableStockLocationId(id) {
202
+ if (!id)
203
+ return false;
204
+ const trimmed = id.trim();
205
+ return trimmed.length > 0 && trimmed !== PLACEHOLDER_STOCK_LOCATION;
206
+ }
207
+ /**
208
+ * Medusa's create-return workflow reads `calculated_price.calculated_amount` when
209
+ * `return_shipping.price` is omitted, and throws a plain TypeError if that object
210
+ * is missing. It also rejects a placeholder location such as "default_location".
211
+ * Either throw escapes this plugin and Medusa responds with
212
+ * "An unknown error occurred."
213
+ */
214
+ async function resolveReturnWorkflowShipping(orderId, shipping, explicitLocation, container) {
215
+ let locationId = isUsableStockLocationId(explicitLocation)
216
+ ? explicitLocation.trim()
217
+ : isUsableStockLocationId(shipping?.location_id)
218
+ ? shipping.location_id.trim()
219
+ : undefined;
220
+ if (!locationId) {
221
+ try {
222
+ const orderData = await getOrderReturnData(orderId, container);
223
+ if (isUsableStockLocationId(orderData.location_id)) {
224
+ locationId = orderData.location_id;
225
+ }
226
+ }
227
+ catch {
228
+ locationId = undefined;
229
+ }
230
+ }
231
+ if (!shipping?.option_id) {
232
+ return { location_id: locationId };
233
+ }
234
+ let price = typeof shipping.price === "number" && Number.isFinite(shipping.price) && shipping.price >= 0
235
+ ? shipping.price
236
+ : undefined;
237
+ if (price == null || !locationId) {
238
+ try {
239
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
240
+ const { data } = await query.graph({
241
+ entity: "shipping_option",
242
+ fields: [
243
+ "id",
244
+ "prices.amount",
245
+ "prices.currency_code",
246
+ "service_zone.fulfillment_set.location.id",
247
+ ],
248
+ filters: { id: shipping.option_id },
249
+ });
250
+ const row = graphRows(data)[0];
251
+ const zone = isRecord(row?.service_zone) ? row.service_zone : undefined;
252
+ const fulfillmentSet = isRecord(zone?.fulfillment_set) ? zone.fulfillment_set : undefined;
253
+ const location = isRecord(fulfillmentSet?.location) ? fulfillmentSet.location : undefined;
254
+ const optionLocation = typeof location?.id === "string" ? location.id : undefined;
255
+ if (!locationId && isUsableStockLocationId(optionLocation)) {
256
+ locationId = optionLocation;
257
+ }
258
+ if (price == null) {
259
+ const prices = Array.isArray(row?.prices) ? row.prices.filter(isRecord) : [];
260
+ const inr = prices.find((p) => String(p.currency_code ?? "").toLowerCase() === "inr");
261
+ const chosen = inr ?? prices[0];
262
+ const amount = chosen?.amount;
263
+ if (typeof amount === "number" && Number.isFinite(amount)) {
264
+ price = amount;
265
+ }
266
+ else if (typeof amount === "string" && amount.trim() !== "" && !Number.isNaN(Number(amount))) {
267
+ price = Number(amount);
268
+ }
269
+ }
270
+ }
271
+ catch {
272
+ // Workflow can still run; a missing price is logged by the route catch.
273
+ }
274
+ }
275
+ return {
276
+ location_id: locationId,
277
+ return_shipping: {
278
+ option_id: shipping.option_id,
279
+ ...(locationId ? { location_id: locationId } : {}),
280
+ ...(price != null ? { price } : {}),
281
+ },
282
+ };
283
+ }
197
284
  /**
198
285
  * Get order data needed for return creation
199
286
  */
@@ -377,4 +464,4 @@ function normalizeOrderModuleReturnForDashboard(r) {
377
464
  items,
378
465
  };
379
466
  }
380
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXJzL3JldHVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK0VBLGdFQVVDO0FBTUQsa0RBOEJDO0FBRUQsd0RBY0M7QUFNRCxrRUFxQ0M7QUFFRCw4REE4REM7QUFLRCxnREE0Q0M7QUFLRCxvREFTQztBQUtELHNEQXFCQztBQUtELGdEQUtDO0FBS0QsMENBRUM7QUFRRCw0RUE2QkM7QUFtQkQsc0VBSUM7QUFzQ0QsNEVBbUNDO0FBRUQsd0ZBc0NDO0FBOWdCRCxxREFBOEU7QUFFOUUsTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLENBQUE7QUF3QjdDLFNBQVMsUUFBUSxDQUFDLEtBQWM7SUFDOUIsT0FBTyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUM3RSxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsSUFBYTtJQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNwRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7QUFDOUIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ1UsUUFBQSx3QkFBd0IsR0FBRztJQUN0QyxJQUFJO0lBQ0osVUFBVTtJQUNWLFFBQVE7SUFDUixZQUFZO0lBQ1osWUFBWTtJQUNaLFlBQVk7SUFDWixhQUFhO0lBQ2IsY0FBYztJQUNkLGFBQWE7SUFDYixlQUFlO0lBQ2YsWUFBWTtJQUNaLGFBQWE7SUFDYixVQUFVO0lBQ1YsYUFBYTtJQUNiLFNBQVM7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
467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXJzL3JldHVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK0VBLGdFQVVDO0FBTUQsa0RBOEJDO0FBRUQsd0RBY0M7QUFNRCxrRUFxQ0M7QUFFRCw4REE4REM7QUFLRCwwREFJQztBQWVELHNFQWtGQztBQUtELGdEQTRDQztBQUtELG9EQVNDO0FBS0Qsc0RBcUJDO0FBS0QsZ0RBS0M7QUFLRCwwQ0FFQztBQVFELDRFQTZCQztBQW1CRCxzRUFJQztBQXNDRCw0RUFtQ0M7QUFFRCx3RkFzQ0M7QUF4bkJELHFEQUE4RTtBQUU5RSxNQUFNLG1DQUFtQyxHQUFHLENBQUMsQ0FBQTtBQXdCN0MsU0FBUyxRQUFRLENBQUMsS0FBYztJQUM5QixPQUFPLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBQzdFLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxJQUFhO0lBQzlCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ3BFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUM5QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDVSxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLElBQUk7SUFDSixVQUFVO0lBQ1YsUUFBUTtJQUNSLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLGFBQWE7SUFDYixjQUFjO0lBQ2QsYUFBYTtJQUNiLGVBQWU7SUFDZixZQUFZO0lBQ1osYUFBYTtJQUNiLFVB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
@@ -14,15 +14,39 @@ async function resolveOrderFields(orderId, container) {
14
14
  const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
15
15
  const { data: orders = [] } = await query.graph({
16
16
  entity: "order",
17
- fields: ["id", "status", "display_id"],
17
+ fields: ["id", "status", "display_id", "metadata"],
18
18
  filters: { id: orderId },
19
19
  });
20
20
  const order = Array.isArray(orders) ? orders[0] : orders;
21
+ const metadata = order?.metadata && typeof order.metadata === "object" && !Array.isArray(order.metadata)
22
+ ? order.metadata
23
+ : {};
21
24
  return {
22
25
  status: order?.status,
23
26
  display_id: (0, template_1.normalizeOrderDisplayId)(order?.display_id),
27
+ pickup_status: typeof metadata.pickup_status === "string" ? metadata.pickup_status : undefined,
28
+ payment_mode: typeof metadata.payment_mode === "string" ? metadata.payment_mode : undefined,
29
+ fulfillment_method: typeof metadata.fulfillment_method === "string"
30
+ ? metadata.fulfillment_method
31
+ : undefined,
24
32
  };
25
33
  }
34
+ /** Map pickup metadata to notification statusConfig keys. */
35
+ function pickupNotificationStatuses(fields) {
36
+ const keys = [];
37
+ if (fields.fulfillment_method === "pickup" && fields.pickup_status === "ready") {
38
+ keys.push("pickup_ready");
39
+ }
40
+ if (fields.fulfillment_method === "pickup" && fields.pickup_status === "collected") {
41
+ keys.push("pickup_collected");
42
+ }
43
+ if (fields.fulfillment_method === "pickup" &&
44
+ fields.payment_mode === "pay_at_store" &&
45
+ fields.pickup_status === "collected") {
46
+ keys.push("pay_at_store_captured");
47
+ }
48
+ return keys;
49
+ }
26
50
  /**
27
51
  * Subscriber handler for order status change events
28
52
  * Sends configured notifications based on the new order status
@@ -74,6 +98,17 @@ async function orderStatusChangeHandler({ event, container, }) {
74
98
  return;
75
99
  }
76
100
  await (0, notification_handler_1.handleOrderStatusNotifications)(orderId, status, container);
101
+ // Extra keys for store-pickup / pay-at-store (configure under notifications.statusConfig)
102
+ if (event.name === "order.updated" || event.name === "order.placed") {
103
+ for (const pickupKey of pickupNotificationStatuses(resolved)) {
104
+ await (0, notification_handler_1.handleOrderStatusNotifications)(orderId, pickupKey, container);
105
+ }
106
+ }
107
+ if (event.name === "order.placed" &&
108
+ resolved.fulfillment_method === "pickup" &&
109
+ resolved.payment_mode === "pay_at_store") {
110
+ await (0, notification_handler_1.handleOrderStatusNotifications)(orderId, "pickup_pay_at_store_placed", container);
111
+ }
77
112
  }
78
113
  catch (error) {
79
114
  console.error("[Order Status Change Subscriber] Error processing order status change:", error);
@@ -95,4 +130,4 @@ exports.config = {
95
130
  "delivery.created", // When order is delivered
96
131
  ],
97
132
  };
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItc3RhdHVzLWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9vcmRlci1zdGF0dXMtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlEQSwyQ0FtREM7QUFsR0QscURBQXFFO0FBQ3JFLHdFQUE4RTtBQUM5RSx1REFBNkQ7QUFDN0QsZ0RBQTJEO0FBUTNEOzs7R0FHRztBQUNILEtBQUssVUFBVSxrQkFBa0IsQ0FDL0IsT0FBZSxFQUNmLFNBQXdCO0lBRXhCLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQVEsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzlDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUM7UUFDdEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRTtLQUN6QixDQUFDLENBQUE7SUFDRixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUN4RCxPQUFPO1FBQ0wsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUE0QjtRQUMzQyxVQUFVLEVBQUUsSUFBQSxrQ0FBdUIsRUFBQyxLQUFLLEVBQUUsVUFBVSxDQUFDO0tBQ3ZELENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDWSxLQUFLLFVBQVUsd0JBQXdCLENBQUMsRUFDckQsS0FBSyxFQUNMLFNBQVMsR0FDa0M7SUFDM0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUE7SUFDN0IsSUFBSSxDQUFDO1FBQ0gsSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQXVCLENBQUE7UUFDOUQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUE7UUFFOUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGtCQUFrQixFQUFFLENBQUM7WUFDdEMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUM3RSxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUEsMkNBQXlCLEVBQUMsSUFBSSxDQUFDLEVBQVksRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUN2RixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0dBQW9HLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUM1SCxPQUFNO1lBQ1IsQ0FBQztZQUNELE9BQU8sR0FBRyxlQUFlLENBQUE7WUFDekIsTUFBTSxHQUFHLFdBQVcsQ0FBQTtRQUN0QixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLDJCQUEyQixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQzdFLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBQSwyQ0FBeUIsRUFBQyxJQUFJLENBQUMsRUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQ3ZGLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sR0FBRyxlQUFlLENBQUE7WUFDM0IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUE7WUFDakYsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUU3RCx3SEFBd0g7UUFDeEgsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUE7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gsdUVBQXVFLE9BQU8sRUFBRSxDQUNqRixDQUFBO1lBQ0QsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLElBQUEscURBQThCLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0VBQXdFLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDOUYsaUVBQWlFO0lBQ25FLENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ1UsUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRTtRQUNMLGVBQWU7UUFDZixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLDJCQUEyQjtRQUMzQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLGtCQUFrQixFQUFFLDBCQUEwQjtLQUMvQztDQUNGLENBQUEifQ==
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItc3RhdHVzLWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9vcmRlci1zdGF0dXMtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBGQSwyQ0FpRUM7QUF6SkQscURBQXFFO0FBQ3JFLHdFQUE4RTtBQUM5RSx1REFBNkQ7QUFDN0QsZ0RBQTJEO0FBUTNEOzs7R0FHRztBQUNILEtBQUssVUFBVSxrQkFBa0IsQ0FDL0IsT0FBZSxFQUNmLFNBQXdCO0lBUXhCLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQVEsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzlDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDO1FBQ2xELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUU7S0FDekIsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFDeEQsTUFBTSxRQUFRLEdBQ1osS0FBSyxFQUFFLFFBQVEsSUFBSSxPQUFPLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ3JGLENBQUMsQ0FBRSxLQUFLLENBQUMsUUFBb0M7UUFDN0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNSLE9BQU87UUFDTCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQTRCO1FBQzNDLFVBQVUsRUFB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
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ /**
3
+ * Cart / order metadata contract for delivery vs store pickup and payment mode.
4
+ * Used by storefront, order-management, and POS pickup queues.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.CUSTOMER_PICKUP_OPTION_CODE = exports.PICKUP_STATUS_KEY = exports.PAYMENT_MODE_KEY = exports.PICKUP_LOCATION_NAME_KEY = exports.PICKUP_LOCATION_ID_KEY = exports.FULFILLMENT_METHOD_KEY = void 0;
8
+ exports.isFulfillmentMethod = isFulfillmentMethod;
9
+ exports.isPaymentMode = isPaymentMode;
10
+ exports.readFulfillmentMetadata = readFulfillmentMetadata;
11
+ exports.buildPickupCartMetadata = buildPickupCartMetadata;
12
+ exports.buildDeliveryCartMetadata = buildDeliveryCartMetadata;
13
+ exports.FULFILLMENT_METHOD_KEY = "fulfillment_method";
14
+ exports.PICKUP_LOCATION_ID_KEY = "pickup_location_id";
15
+ exports.PICKUP_LOCATION_NAME_KEY = "pickup_location_name";
16
+ exports.PAYMENT_MODE_KEY = "payment_mode";
17
+ exports.PICKUP_STATUS_KEY = "pickup_status";
18
+ exports.CUSTOMER_PICKUP_OPTION_CODE = "customer-pickup";
19
+ function isFulfillmentMethod(value) {
20
+ return value === "delivery" || value === "pickup";
21
+ }
22
+ function isPaymentMode(value) {
23
+ return value === "online" || value === "pay_at_store" || value === "cod";
24
+ }
25
+ function readFulfillmentMetadata(metadata) {
26
+ if (!metadata || typeof metadata !== "object")
27
+ return {};
28
+ const out = {};
29
+ if (isFulfillmentMethod(metadata[exports.FULFILLMENT_METHOD_KEY])) {
30
+ out[exports.FULFILLMENT_METHOD_KEY] = metadata[exports.FULFILLMENT_METHOD_KEY];
31
+ }
32
+ const loc = metadata[exports.PICKUP_LOCATION_ID_KEY];
33
+ if (typeof loc === "string" && loc.trim()) {
34
+ out[exports.PICKUP_LOCATION_ID_KEY] = loc.trim();
35
+ }
36
+ if (isPaymentMode(metadata[exports.PAYMENT_MODE_KEY])) {
37
+ out[exports.PAYMENT_MODE_KEY] = metadata[exports.PAYMENT_MODE_KEY];
38
+ }
39
+ const status = metadata[exports.PICKUP_STATUS_KEY];
40
+ if (status === "pending" || status === "ready" || status === "collected") {
41
+ out[exports.PICKUP_STATUS_KEY] = status;
42
+ }
43
+ return out;
44
+ }
45
+ function buildPickupCartMetadata(input) {
46
+ return {
47
+ ...(input.existing && typeof input.existing === "object" ? input.existing : {}),
48
+ [exports.FULFILLMENT_METHOD_KEY]: "pickup",
49
+ [exports.PICKUP_LOCATION_ID_KEY]: input.locationId,
50
+ ...(input.locationName
51
+ ? { [exports.PICKUP_LOCATION_NAME_KEY]: input.locationName }
52
+ : {}),
53
+ [exports.PAYMENT_MODE_KEY]: input.paymentMode ?? "online",
54
+ [exports.PICKUP_STATUS_KEY]: "pending",
55
+ };
56
+ }
57
+ function buildDeliveryCartMetadata(input) {
58
+ const next = {
59
+ ...(input.existing && typeof input.existing === "object" ? input.existing : {}),
60
+ [exports.FULFILLMENT_METHOD_KEY]: "delivery",
61
+ [exports.PAYMENT_MODE_KEY]: input.paymentMode ?? "online",
62
+ };
63
+ delete next[exports.PICKUP_LOCATION_ID_KEY];
64
+ delete next[exports.PICKUP_LOCATION_NAME_KEY];
65
+ delete next[exports.PICKUP_STATUS_KEY];
66
+ return next;
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZnVsZmlsbG1lbnQtbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvb3JkZXItZnVsZmlsbG1lbnQtbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBcUJILGtEQUVDO0FBRUQsc0NBRUM7QUFFRCwwREFvQkM7QUFFRCwwREFnQkM7QUFFRCw4REFhQztBQWhGWSxRQUFBLHNCQUFzQixHQUFHLG9CQUFvQixDQUFBO0FBQzdDLFFBQUEsc0JBQXNCLEdBQUcsb0JBQW9CLENBQUE7QUFDN0MsUUFBQSx3QkFBd0IsR0FBRyxzQkFBc0IsQ0FBQTtBQUNqRCxRQUFBLGdCQUFnQixHQUFHLGNBQWMsQ0FBQTtBQUNqQyxRQUFBLGlCQUFpQixHQUFHLGVBQWUsQ0FBQTtBQUNuQyxRQUFBLDJCQUEyQixHQUFHLGlCQUFpQixDQUFBO0FBYzVELFNBQWdCLG1CQUFtQixDQUFDLEtBQWM7SUFDaEQsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLEtBQUssS0FBSyxRQUFRLENBQUE7QUFDbkQsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxLQUFjO0lBQzFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssY0FBYyxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUE7QUFDMUUsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUNyQyxRQUFvRDtJQUVwRCxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVE7UUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUN4RCxNQUFNLEdBQUcsR0FBNkIsRUFBRSxDQUFBO0lBQ3hDLElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLDhCQUFzQixDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFELEdBQUcsQ0FBQyw4QkFBc0IsQ0FBQyxHQUFHLFFBQVEsQ0FBQyw4QkFBc0IsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsOEJBQXNCLENBQUMsQ0FBQTtJQUM1QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUMxQyxHQUFHLENBQUMsOEJBQXNCLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDMUMsQ0FBQztJQUNELElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyx3QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxHQUFHLENBQUMsd0JBQWdCLENBQUMsR0FBRyxRQUFRLENBQUMsd0JBQWdCLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLHlCQUFpQixDQUFDLENBQUE7SUFDMUMsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxPQUFPLElBQUksTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3pFLEdBQUcsQ0FBQyx5QkFBaUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQTtJQUNqQyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsS0FLdkM7SUFDQyxPQUFPO1FBQ0wsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9FLENBQUMsOEJBQXNCLENBQUMsRUFBRSxRQUFvQztRQUM5RCxDQUFDLDhCQUFzQixDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVU7UUFDMUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZO1lBQ3BCLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0NBQXdCLENBQUMsRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQ3BELENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxDQUFDLHdCQUFnQixDQUFDLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxRQUFRO1FBQ2pELENBQUMseUJBQWlCLENBQUMsRUFBRSxTQUFnQztLQUN0RCxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLEtBR3pDO0lBQ0MsTUFBTSxJQUFJLEdBQTRCO1FBQ3BDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLE9BQU8sS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRSxDQUFDLDhCQUFzQixDQUFDLEVBQUUsVUFBc0M7UUFDaEUsQ0FBQyx3QkFBZ0IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksUUFBUTtLQUNsRCxDQUFBO0lBQ0QsT0FBTyxJQUFJLENBQUMsOEJBQXNCLENBQUMsQ0FBQTtJQUNuQyxPQUFPLElBQUksQ0FBQyxnQ0FBd0IsQ0FBQyxDQUFBO0lBQ3JDLE9BQU8sSUFBSSxDQUFDLHlCQUFpQixDQUFDLENBQUE7SUFDOUIsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDIn0=
package/README.md CHANGED
@@ -9,7 +9,8 @@
9
9
  - payment detail storage (`upi`, `bank`, `card`) and default payment rules,
10
10
  - refund payment mapping and admin refund context tooling,
11
11
  - order status email/notification subscribers,
12
- - admin UI routes/widgets for returns, swaps, payments, refunds.
12
+ - admin UI routes/widgets for returns, swaps, payments, refunds,
13
+ - **store pickup / pay-at-store** helpers (`GET /store/pickup-locations`, `POST /store/carts/:id/pickup`) and required return-store `location_id` validation.
13
14
 
14
15
  It solves common gaps where storefronts need secure post-purchase self-service (especially for guest orders), richer refund operations, and operational admin screens without implementing all workflows manually.
15
16
 
@@ -40,6 +41,9 @@ export default defineConfig({
40
41
  otpTemplate: "src/templates/emails/otp.html",
41
42
  orderConfirmTemplate: "src/templates/emails/order-confirmation.html",
42
43
  },
44
+ allowPayAtStore: true,
45
+ requireReturnStoreLocation: true,
46
+ capture_payment_on_pickup: true,
43
47
  },
44
48
  },
45
49
  ],
@@ -80,9 +84,14 @@ Source: `src/types/order-management-options.ts`, normalized by `src/config.ts`.
80
84
  | `notifications.enabled` | `boolean` | No | `false` | Enables status-based notification subscriber handling. |
81
85
  | `notifications.statusConfig` | `Record<string, NotificationConfig[]>` | No | `{}` | Map of order status to rules. Email/push: `template` = file path. SMS Twilio: `template` = inline body string. SMS MSG91: `template_obj: { templateId, varMap? }`. Optional `getRecipient`. |
82
86
  | `capture_payment_on_delivered` | `boolean` | No | `true` | Auto-capture remaining authorized amount on delivery events. |
87
+ | `capture_payment_on_pickup` | `boolean` | No | `true` | Capture pay-at-store / authorized amount when store pickup is collected. |
88
+ | `allowPayAtStore` | `boolean` | No | `true` | Allow offline payment for web store-pickup carts. |
89
+ | `requireReturnStoreLocation` | `boolean` | No | `true` | Require a valid stock location on return/exchange create. |
83
90
  | `returnValidInDays` | `number` | No | `7` | Return request window in days from `delivered_at`. |
84
91
  | `exchangeValidInDays` | `number` | No | `7` | Exchange request window in days from `delivered_at`. |
85
92
 
93
+ Pickup / pay-at-store notification keys (under `notifications.statusConfig`): `pickup_pay_at_store_placed`, `pickup_ready`, `pickup_collected`, `pay_at_store_captured`.
94
+
86
95
  Example:
87
96
 
88
97
  ```ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "order-management",
3
- "version": "0.0.101",
3
+ "version": "0.0.103",
4
4
  "description": "A starter for Medusa plugins.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",