medusa-contact-us 0.0.2 → 0.0.3
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.
|
@@ -31,13 +31,17 @@ const submitContactRequest = async (input, options = {}) => {
|
|
|
31
31
|
};
|
|
32
32
|
const clientRequest = getClientRequest(options.client);
|
|
33
33
|
if (clientRequest) {
|
|
34
|
+
const headers = {
|
|
35
|
+
"Content-Type": "application/json",
|
|
36
|
+
...(options.headers ?? {}),
|
|
37
|
+
};
|
|
38
|
+
if (options.publishableApiKey) {
|
|
39
|
+
headers["x-publishable-api-key"] = options.publishableApiKey;
|
|
40
|
+
}
|
|
34
41
|
const raw = (await clientRequest(endpoint, {
|
|
35
42
|
method: "POST",
|
|
36
43
|
body: JSON.stringify(payload),
|
|
37
|
-
headers
|
|
38
|
-
"Content-Type": "application/json",
|
|
39
|
-
...(options.headers ?? {}),
|
|
40
|
-
},
|
|
44
|
+
headers,
|
|
41
45
|
}));
|
|
42
46
|
return raw;
|
|
43
47
|
}
|
|
@@ -46,12 +50,16 @@ const submitContactRequest = async (input, options = {}) => {
|
|
|
46
50
|
throw new Error("No fetch implementation available. Provide `fetchImpl` or a Medusa client.");
|
|
47
51
|
}
|
|
48
52
|
const url = `${normalizeBaseUrl(options.baseUrl)}${endpoint}`;
|
|
53
|
+
const headers = {
|
|
54
|
+
"Content-Type": "application/json",
|
|
55
|
+
...(options.headers ?? {}),
|
|
56
|
+
};
|
|
57
|
+
if (options.publishableApiKey) {
|
|
58
|
+
headers["x-publishable-api-key"] = options.publishableApiKey;
|
|
59
|
+
}
|
|
49
60
|
const response = await fetchImpl(url || endpoint, {
|
|
50
61
|
method: "POST",
|
|
51
|
-
headers
|
|
52
|
-
"Content-Type": "application/json",
|
|
53
|
-
...(options.headers ?? {}),
|
|
54
|
-
},
|
|
62
|
+
headers,
|
|
55
63
|
body: JSON.stringify(payload),
|
|
56
64
|
});
|
|
57
65
|
if (!response.ok) {
|
|
@@ -63,4 +71,4 @@ const submitContactRequest = async (input, options = {}) => {
|
|
|
63
71
|
exports.submitContactRequest = submitContactRequest;
|
|
64
72
|
const createSubmitContactRequest = (options = {}) => (input) => (0, exports.submitContactRequest)(input, options);
|
|
65
73
|
exports.createSubmitContactRequest = createSubmitContactRequest;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWNvbnRhY3QtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXJzL3N1Ym1pdC1jb250YWN0LXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBTSxnQkFBZ0IsR0FBRyx5QkFBeUIsQ0FBQTtBQThDbEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFpQixFQUFFLEVBQUUsQ0FDNUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQTtBQUV6RCxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO0lBQzVDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFBO0FBQy9ELENBQUMsQ0FBQTtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUF5QixFQUFFLEVBQUU7SUFDckQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUVELElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDaEUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsSUFBSSxRQUFRLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDdkUsT0FBTyxNQUFNLENB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
|
package/README.md
CHANGED
|
@@ -281,32 +281,61 @@ All UI components follow the Medusa UI kit spacing (8pt grid), color, and access
|
|
|
281
281
|
|
|
282
282
|
## Frontend helper
|
|
283
283
|
|
|
284
|
-
Skip hand-writing `fetch` calls by importing the provided helper
|
|
284
|
+
Skip hand-writing `fetch` calls by importing the provided helper. **Most storefront requests require a publishable API key**, which you can create in the Medusa dashboard (`Settings → API Keys`).
|
|
285
285
|
|
|
286
286
|
```ts
|
|
287
287
|
import { submitContactRequest } from "medusa-contact-us"
|
|
288
288
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
}
|
|
289
|
+
const options = {
|
|
290
|
+
baseUrl: "https://store.myshop.com",
|
|
291
|
+
publishableApiKey: "pk_your_publishable_api_key_here",
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
await submitContactRequest(
|
|
295
|
+
{
|
|
296
|
+
email: "customer@example.com",
|
|
297
|
+
payload: { subject: "Question", priority: "high" },
|
|
298
|
+
},
|
|
299
|
+
options
|
|
300
|
+
)
|
|
293
301
|
```
|
|
294
302
|
|
|
295
|
-
Passing a Medusa JS client automatically reuses its transport:
|
|
303
|
+
Passing a Medusa JS client automatically reuses its transport and publishable key:
|
|
296
304
|
|
|
297
305
|
```ts
|
|
298
306
|
import Medusa from "@medusajs/medusa-js"
|
|
299
307
|
import { submitContactRequest } from "medusa-contact-us"
|
|
300
308
|
|
|
301
|
-
const client = new Medusa({
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
client,
|
|
305
|
-
email: "customer@example.com",
|
|
306
|
-
payload: { subject: "Returns" },
|
|
309
|
+
const client = new Medusa({
|
|
310
|
+
baseUrl: "https://store.myshop.com",
|
|
311
|
+
publishableKey: "pk_your_publishable_api_key_here",
|
|
307
312
|
})
|
|
313
|
+
|
|
314
|
+
await submitContactRequest(
|
|
315
|
+
{
|
|
316
|
+
client,
|
|
317
|
+
email: "customer@example.com",
|
|
318
|
+
payload: { subject: "Returns" },
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
// Additional headers (cookies/JWT) can still be provided when needed
|
|
322
|
+
headers: {
|
|
323
|
+
Cookie: "connect.sid=...",
|
|
324
|
+
},
|
|
325
|
+
}
|
|
326
|
+
)
|
|
308
327
|
```
|
|
309
328
|
|
|
329
|
+
**Helper options:**
|
|
330
|
+
|
|
331
|
+
- `publishableApiKey` – Required for public storefront calls when not passing a Medusa JS client.
|
|
332
|
+
- `baseUrl` – Storefront API origin (ignored when `client` is provided).
|
|
333
|
+
- `client` – Pre-configured Medusa JS/SDK instance (reuses its base URL and publishable key).
|
|
334
|
+
- `fetchImpl` – Custom fetch implementation (SSR, React Native, etc.).
|
|
335
|
+
- `headers` – Additional headers merged into the request (e.g., session cookie, localization).
|
|
336
|
+
|
|
337
|
+
Customer-authenticated endpoints (like submitting a request from a logged-in area) still require the appropriate session cookie or JWT. Provide those via the `headers` option if they’re not already managed by the browser fetch call.
|
|
338
|
+
|
|
310
339
|
## Workflows & notifications
|
|
311
340
|
|
|
312
341
|
- `createContactRequestWorkflow` validates payloads, persists the request, and optionally fires an acknowledgement email.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "medusa-contact-us",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "A starter for Medusa plugins.",
|
|
5
5
|
"author": "Medusa (https://medusajs.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"exports": {
|
|
11
11
|
"./package.json": "./package.json",
|
|
12
12
|
"./workflows": "./.medusa/server/src/workflows/index.js",
|
|
13
|
+
"./helpers": "./.medusa/server/src/helpers/index.js",
|
|
13
14
|
"./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
14
15
|
"./modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
15
16
|
"./providers/*": "./.medusa/server/src/providers/*/index.js",
|