@wix/agent-skills 1.18.1 → 1.19.0
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/package.json +1 -1
- package/skills/wix-app/SKILL.md +13 -13
- package/skills/wix-app/references/APP_VALIDATION.md +7 -33
- package/skills/wix-app/references/BACKEND_API.md +151 -152
- package/skills/wix-app/references/DASHBOARD_PAGE.md +18 -14
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +6 -3
- package/skills/wix-app/references/EXTENSION_REGISTRATION.md +12 -8
- package/skills/wix-app/references/WIX_PATTERNS_DOCS.md +23 -26
- package/skills/wix-app/references/dashboard-page/COLLECTION_TOOLKIT.md +7 -6
- package/skills/wix-app/references/dashboard-page/ENTITY_PAGE_TOOLKIT.md +71 -4
- package/skills/wix-app/references/dashboard-page/PATTERNS_BUNDLE_READING.md +67 -7
- package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +1 -1
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +9 -6
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONTRACT.md +59 -89
- package/skills/wix-app/references/editor-react-component/COMPONENT-PREVIEW.md +23 -4
- package/skills/wix-base44-connector/SKILL.md +168 -48
- package/skills/wix-base44-connector/scripts/{utils.js → utils.cjs} +69 -48
- package/skills/wix-docs/SKILL.md +109 -111
- package/skills/wix-docs/references/API_SPEC_SEARCH.md +35 -23
- package/skills/wix-docs/references/CALLING.md +91 -0
- package/skills/wix-docs/references/EXTRACTING.md +5 -3
- package/skills/wix-headless/references/DOC_DISCOVERY.md +9 -3
- package/skills/wix-manage/SKILL.md +8 -2
- package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +59 -33
- package/skills/wix-manage/references/bookings/bookings-staff-setup.md +45 -22
- package/skills/wix-manage/references/bookings/multi-resource-service-creation.md +70 -12
- package/skills/wix-manage/references/calendar/configure-default-business-hours.md +53 -17
- package/skills/wix-manage/references/seo/manage-content-plan.md +247 -0
- package/skills/wix-manage/references/seo/manage-seo-tags.md +59 -6
- package/skills/wix-manage/references/stores/change-store-currency.md +10 -0
- package/skills/wix-manage/references/stores/create-product-catalog-v3.md +17 -1
- package/skills/wix-manage/references/stores/update-product-with-options.md +9 -0
- package/skills/wix-vibe-headless/SKILL.md +17 -18
- package/skills/wix-vibe-headless/install/pin-agents-md.cjs +1 -1
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed-with-install.md +119 -0
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed.md +61 -67
- package/skills/wix-vibe-headless/platforms/base44-ecom-light.md +31 -29
- package/skills/wix-vibe-headless/platforms/base44.md +18 -7
- package/skills/wix-vibe-headless/platforms/generic.md +13 -12
- package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +4 -13
- package/skills/wix-vibe-headless/references/blog/seed/SEED.md +4 -8
- package/skills/wix-vibe-headless/references/blog/seed/{seed-blog.js → seed-blog.cjs} +2 -3
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +5 -14
- package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +5 -9
- package/skills/wix-vibe-headless/references/bookings/seed/{seed-bookings.js → seed-bookings.cjs} +2 -2
- package/skills/wix-vibe-headless/references/bookings/seed/{seed-rentals.js → seed-rentals.cjs} +3 -3
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +1 -1
- package/skills/wix-vibe-headless/references/cms/seed/SEED.md +2 -2
- package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +4 -13
- package/skills/wix-vibe-headless/references/events/seed/SEED.md +3 -7
- package/skills/wix-vibe-headless/references/events/seed/{seed-events.js → seed-events.cjs} +2 -2
- package/skills/wix-vibe-headless/references/forms/INSTRUCTIONS.md +2 -1
- package/skills/wix-vibe-headless/references/forms/seed/SEED.md +1 -1
- package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +4 -13
- package/skills/wix-vibe-headless/references/members/seed/SEED.md +2 -3
- package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +4 -13
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +1 -1
- package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +3 -7
- package/skills/wix-vibe-headless/references/portfolio/seed/{seed-portfolio.js → seed-portfolio.cjs} +2 -2
- package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +5 -14
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +1 -1
- package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +3 -7
- package/skills/wix-vibe-headless/references/pricing-plans/seed/{seed-pricing-plans.js → seed-pricing-plans.cjs} +2 -2
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +5 -15
- package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +3 -7
- package/skills/wix-vibe-headless/references/restaurants/seed/{seed-restaurants.js → seed-restaurants.cjs} +2 -2
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +363 -327
- package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +1 -0
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +2 -2
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +63 -78
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-catalog.js +59 -43
- package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +51 -14
- package/skills/wix-vibe-headless/references/storefront/seed/{seed-store.js → seed-store.cjs} +194 -28
- package/skills/wix-vibe-headless/references/storefront/app/pages/Shop.jsx +0 -75
|
@@ -3,65 +3,65 @@
|
|
|
3
3
|
You are building a **Wix Managed** headless storefront inside Base44 — the business is described in your
|
|
4
4
|
initial prompt, and the Wix connector is already configured.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
The shipped client is already configured. Use its documented hooks and components; no ID lookup
|
|
7
|
+
or configuration changes are needed.
|
|
8
8
|
|
|
9
|
-
> **The Wix skills
|
|
9
|
+
> **The installed Wix skills are the complete build and seed path for this app.** **Do NOT use the Base44 commerce kit (or any Base44 solution kit).**
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**Banner disabled for this entry flow:** do not add `<WixManageBanner/>`; skip the shared
|
|
12
|
+
storefront instructions' optional banner integration.
|
|
12
13
|
|
|
13
|
-
## STEP
|
|
14
|
+
## STEP 0 — Setup already completed by Base44
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
- **`wix-vibe-headless`** —
|
|
17
|
-
- **`wix-manage`** — REST recipes for managing and configuring the site
|
|
18
|
-
|
|
19
|
-
- **`wix-base44-connector`** — building on Wix from the Base44 sandbox: site context, API
|
|
20
|
-
contracts, and the docs **fallback** — find + read the Wix API docs for anything
|
|
21
|
-
`wix-vibe-headless` doesn't cover.
|
|
16
|
+
These skills are already installed under `.agents/skills/`:
|
|
17
|
+
- **`wix-vibe-headless`** — storefront build instructions, hook/component contracts, and seeding modules.
|
|
18
|
+
- **`wix-manage`** — REST recipes for managing and configuring the Wix site.
|
|
19
|
+
- **`wix-base44-connector`** — Wix connector usage, API contracts, and documentation discovery.
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
Base44 has also deployed the storefront hooks, cart components/context, image helpers, and REST
|
|
22
|
+
scaffolds into `src/`, configured the Wix connector/client, and added the Wix note to `AGENTS.md`.
|
|
23
|
+
No installation, deployment, or AGENTS.md update is needed.
|
|
24
|
+
The deployed implementation and configuration files do not need to be read; use the build and seed
|
|
25
|
+
guides below for their contracts and usage. Continue with STEP 1.
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const { existsSync, readdirSync } = require('fs');
|
|
28
|
-
const results = {};
|
|
29
|
-
for (const skill of ['wix-vibe-headless', 'wix-manage', 'wix-base44-connector']) {
|
|
30
|
-
if (existsSync(`/app/.agents/skills/${skill}/SKILL.md`)) { results[skill] = 'already_installed'; continue; }
|
|
31
|
-
try {
|
|
32
|
-
const out = execSync(`CI=1 npx -y skills add wix/skills/skills/${skill} --yes 2>&1`,
|
|
33
|
-
{ cwd: '/app', timeout: 60000, shell: '/bin/bash' }).toString().replace(/\x1b\[[0-9;]*m/g, '');
|
|
34
|
-
results[skill] = /installed 1 skill|found 1 skill/i.test(out) ? 'success'
|
|
35
|
-
: out.includes('No valid skills') ? 'not_found' : 'unknown';
|
|
36
|
-
} catch (e) { results[skill] = 'error: ' + e.message; }
|
|
37
|
-
}
|
|
38
|
-
const deploy = execSync(`node /app/.agents/skills/wix-vibe-headless/install/deploy.cjs storefront`, { cwd: '/app' }).toString();
|
|
39
|
-
const agentsMd = execSync(`node /app/.agents/skills/wix-vibe-headless/install/pin-agents-md.cjs`, { cwd: '/app' }).toString();
|
|
40
|
-
return { results, installed: readdirSync('/app/.agents/skills'), deploy: JSON.parse(deploy), agentsMd: JSON.parse(agentsMd) };
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Read skills with **`read_file`** using workspace-relative paths (e.g. `.agents/skills/wix-vibe-headless/SKILL.md`) — absolute `/app/...` fails. Always read from `.agents/skills/` exactly on every turn; ignore stray copies like `agent/skills/`.
|
|
27
|
+
Follow STEPs 1–3 below exactly. Fire product image generations first, then build the client
|
|
28
|
+
(STEP 1), and seed (STEP 2) **after** the client is built — generation finishes while you build.
|
|
44
29
|
|
|
45
|
-
## STEP
|
|
30
|
+
## STEP 1 — Build the client
|
|
46
31
|
|
|
47
32
|
Read `.agents/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md` and follow it **EXACTLY** — the single source of truth for how the storefront client is built.
|
|
48
33
|
|
|
49
|
-
|
|
34
|
+
The shipped storefront provides catalog, cart, and checkout. Identify the additional workflows
|
|
35
|
+
in the user's request and implement them alongside the storefront. If a workflow needs an
|
|
36
|
+
external service or missing information, continue the work you can complete and identify the
|
|
37
|
+
remaining dependency.
|
|
50
38
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
rejects the write. Wire routes/imports in with `find_replace`, leave the rest as-is.
|
|
39
|
+
For code or actions not covered by this skill, read and follow the installed connector skill at
|
|
40
|
+
`.agents/skills/wix-base44-connector/SKILL.md` to find Wix documentation and APIs.
|
|
54
41
|
|
|
55
|
-
|
|
42
|
+
Build the client using the component outlines, interfaces, and theme guidance in `INSTRUCTIONS.md`.
|
|
43
|
+
The shipped files are already deployed and configured; you do not need to read their source or
|
|
44
|
+
rebuild them. If you encounter an error after building the client, read or change whatever you
|
|
45
|
+
need to diagnose and fix it.
|
|
46
|
+
|
|
47
|
+
## STEP 2 — Seed the storefront
|
|
56
48
|
|
|
57
49
|
**Never delete or clean up anything on the user's site — seeding is additive only.** It's a live
|
|
58
50
|
user-owned business, so never delete or overwrite existing content, even apparent sample data. If a
|
|
59
51
|
cleanup truly seems needed, ask the user first.
|
|
60
52
|
|
|
61
|
-
Seed by calling the storefront's ready-made seed module —
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
53
|
+
Seed by calling the storefront's ready-made seed module, `seed-store.cjs` — `require()` it and use its
|
|
54
|
+
one-call `setupStore` (build-time exec_tool). Read
|
|
55
|
+
`.agents/skills/wix-vibe-headless/references/storefront/seed/SEED.md` for the full `setupStore`
|
|
56
|
+
contract — the `ctx` and the product/category shapes.
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
const seed = require(require("path").resolve(".agents/skills/wix-vibe-headless/references/storefront/seed/seed-store.cjs"));
|
|
60
|
+
const result = await seed.setupStore(ctx, { products, categories }); // one call: install → products → categories → images
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
For code or actions not covered by this skill, read and follow the installed connector skill at
|
|
64
|
+
`.agents/skills/wix-base44-connector/SKILL.md` to find Wix documentation and APIs.
|
|
65
65
|
|
|
66
66
|
**Auth for these admin calls is the already-configured Wix headless connector — nothing else.** Get its
|
|
67
67
|
access token and send it as a bearer token:
|
|
@@ -75,36 +75,30 @@ Inline via exec_tool, `base44` is already declared — use it directly; do **not
|
|
|
75
75
|
`@base44/sdk`, re-declare it, or call `createClient()` (that's for standalone `.js` files only;
|
|
76
76
|
inline it throws *"Identifier 'base44' has already been declared."*).
|
|
77
77
|
|
|
78
|
-
**Product images.**
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
— Wix can't fetch it. `generate_image` runs in the background while you build the client, so the
|
|
86
|
-
urls are ready by the time you seed.
|
|
78
|
+
**Product images.** Fire every `generate_image` **before you build the client**, and seed **after**
|
|
79
|
+
it — generation finishes while you build, so by the time you write the seed call your images are
|
|
80
|
+
ready: each finished result now reads `status: "completed"` with its final
|
|
81
|
+
`https://media.base44.com/...` url. Read every `imageUrl` from the results **as they read at that
|
|
82
|
+
moment** — not from what they said when you called the tool — and pass them in the single
|
|
83
|
+
`setupStore` call. A result without a final url by then (still running, or failed) → seed that
|
|
84
|
+
product **without** `imageUrl` and attach it afterwards with `attachProductImages`.
|
|
87
85
|
|
|
88
|
-
## STEP
|
|
86
|
+
## STEP 3 — Wrap up
|
|
89
87
|
|
|
90
|
-
|
|
88
|
+
### Preview
|
|
91
89
|
|
|
92
|
-
|
|
90
|
+
Images that are still generating may show `/__generating__/…` placeholders;
|
|
91
|
+
the platform replaces these automatically at turn end, with a stock fallback if generation
|
|
92
|
+
fails. You can finish without waiting for those images or replacing their placeholder URLs.
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
### Final text response
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
**Never paste a Wix dashboard link or path.**
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
**Before writing your final text response, make one handoff call** — `search_base44_docs(query="how do I manage my store's products, orders and inventory?", prefer_dashboard=true)`. Use its handoff guidance, note that the seeded catalog is mock data they can edit, replace or delete, and state any requested workflows that remain unfinished and what is needed to complete them.
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix");
|
|
102
|
-
const res = await fetch("https://www.wixapis.com/<api-path>", {
|
|
103
|
-
method: "POST",
|
|
104
|
-
headers: { Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json" },
|
|
105
|
-
body: JSON.stringify({ /* request body */ }),
|
|
106
|
-
});
|
|
107
|
-
return await res.json();
|
|
108
|
-
```
|
|
100
|
+
## Additional Wix functionality
|
|
109
101
|
|
|
110
|
-
|
|
102
|
+
During the initial build or later, use the installed connector skill at
|
|
103
|
+
`.agents/skills/wix-base44-connector/SKILL.md` to find Wix documentation and APIs for writing code
|
|
104
|
+
or performing actions not covered by this skill.
|
|
@@ -3,22 +3,23 @@
|
|
|
3
3
|
You are building a **Wix Managed** headless storefront inside Base44 — the business is described in your
|
|
4
4
|
initial prompt, and the Wix connector is already configured.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
The shipped client is already configured. Use its documented hooks and components; no ID lookup
|
|
7
|
+
or configuration changes are needed.
|
|
8
8
|
|
|
9
9
|
> **The Wix skills installed below are the complete build path for this app.** **Do NOT use the Base44 commerce kit (or any Base44 solution kit).** **This flow builds the client only — there is no seeding step.**
|
|
10
10
|
|
|
11
|
+
**Banner disabled for this entry flow:** do not add `<WixManageBanner/>`; skip the shared
|
|
12
|
+
storefront instructions' optional banner integration.
|
|
13
|
+
|
|
11
14
|
Follow STEPs 1–3 below exactly.
|
|
12
15
|
|
|
13
16
|
## STEP 1 — Install the Wix skills and deploy the storefront vertical to the app
|
|
14
17
|
|
|
15
18
|
Install three skills — they land under `.agents/skills/`:
|
|
16
|
-
- **`wix-vibe-headless`** —
|
|
17
|
-
- **`wix-manage`** — REST recipes for managing and configuring the site
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
contracts, and the docs **fallback** — find + read the Wix API docs for anything
|
|
21
|
-
`wix-vibe-headless` doesn't cover.
|
|
19
|
+
- **`wix-vibe-headless`** — storefront build instructions, hook/component contracts, and seeding modules.
|
|
20
|
+
- **`wix-manage`** — REST recipes for managing and configuring the Wix site.
|
|
21
|
+
- **`wix-base44-connector`** — Wix connector usage, API contracts, and documentation discovery.
|
|
22
|
+
|
|
22
23
|
|
|
23
24
|
Run this through exec_tool, exactly as written — installs all three skills, deploys the `storefront` REST scaffolds + UI into `src/`, and pins the AGENTS.md note.
|
|
24
25
|
|
|
@@ -40,40 +41,41 @@ const agentsMd = execSync(`node /app/.agents/skills/wix-vibe-headless/install/pi
|
|
|
40
41
|
return { results, installed: readdirSync('/app/.agents/skills'), deploy: JSON.parse(deploy), agentsMd: JSON.parse(agentsMd) };
|
|
41
42
|
```
|
|
42
43
|
|
|
43
|
-
Read skills with **`read_file`** using workspace-relative paths (e.g. `.agents/skills/wix-vibe-headless/SKILL.md`) — absolute `/app/...` fails. Always read from `.agents/skills/` exactly on every turn; ignore stray copies like `agent/skills/`.
|
|
44
|
-
|
|
45
44
|
## STEP 2 — Build the client
|
|
46
45
|
|
|
47
46
|
Read `.agents/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md` and follow it **EXACTLY** — the single source of truth for how the storefront client is built.
|
|
48
47
|
|
|
49
|
-
|
|
48
|
+
The shipped storefront provides catalog, cart, and checkout. Identify the additional workflows
|
|
49
|
+
in the user's request and implement them alongside the storefront. If a workflow needs an
|
|
50
|
+
external service or missing information, continue the work you can complete and identify the
|
|
51
|
+
remaining dependency.
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
For code or actions not covered by this skill, read and follow the installed connector skill at
|
|
54
|
+
`.agents/skills/wix-base44-connector/SKILL.md` to find Wix documentation and APIs.
|
|
55
|
+
|
|
56
|
+
Build the client using the component outlines, interfaces, and theme guidance in `INSTRUCTIONS.md`.
|
|
57
|
+
The shipped files are already deployed and configured; you do not need to read their source or
|
|
58
|
+
rebuild them. If you encounter an error after building the client, read or change whatever you
|
|
59
|
+
need to diagnose and fix it.
|
|
54
60
|
|
|
55
61
|
## STEP 3 — Wrap up
|
|
56
62
|
|
|
57
63
|
**No seeding in this flow** — the client is the only deliverable. Do not seed, populate, or write data to Wix.
|
|
58
64
|
|
|
59
|
-
|
|
65
|
+
### Preview
|
|
60
66
|
|
|
61
|
-
|
|
67
|
+
Images that are still generating may show `/__generating__/…` placeholders;
|
|
68
|
+
the platform replaces these automatically at turn end, with a stock fallback if generation
|
|
69
|
+
fails. You can finish without waiting for those images or replacing their placeholder URLs.
|
|
62
70
|
|
|
63
|
-
|
|
71
|
+
### Final text response
|
|
64
72
|
|
|
65
|
-
|
|
73
|
+
**Never paste a Wix dashboard link or path.**
|
|
66
74
|
|
|
67
|
-
|
|
75
|
+
**Before writing your final text response, make one handoff call** — `search_base44_docs(query="how do I manage my store's products, orders and inventory?", prefer_dashboard=true)`. Use its handoff guidance, state any requested workflows that remain unfinished and what is needed to complete them.
|
|
68
76
|
|
|
69
|
-
|
|
70
|
-
const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix");
|
|
71
|
-
const res = await fetch("https://www.wixapis.com/<api-path>", {
|
|
72
|
-
method: "POST",
|
|
73
|
-
headers: { Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json" },
|
|
74
|
-
body: JSON.stringify({ /* request body */ }),
|
|
75
|
-
});
|
|
76
|
-
return await res.json();
|
|
77
|
-
```
|
|
77
|
+
## Additional Wix functionality
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
During the initial build or later, use the installed connector skill at
|
|
80
|
+
`.agents/skills/wix-base44-connector/SKILL.md` to find Wix documentation and APIs for writing code
|
|
81
|
+
or performing actions not covered by this skill.
|
|
@@ -8,11 +8,15 @@ only), safe in the frontend; use it directly for the Wix client setup.
|
|
|
8
8
|
|
|
9
9
|
> **The Wix skills installed below are the complete build and seed path for this app — the Wix connector supplies the token for admin API calls.** **Do NOT use the Base44 commerce kit (or any Base44 solution kit).**
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**Banner enabled for this entry flow:** mount `<WixManageBanner/>` once in the Layout, above
|
|
12
|
+
the header in the fixed top region, per the vertical instructions. It is preview-only.
|
|
13
|
+
|
|
14
|
+
Follow STEPs 1–5 below exactly (run STEP 4 in parallel with STEP 3 — **except `forms`**, see
|
|
15
|
+
STEP 3, and **except a seed that attaches entity images**, which runs after the build; see STEP 4).
|
|
12
16
|
|
|
13
17
|
## STEP 1 — Install the Wix skills locally
|
|
14
18
|
|
|
15
|
-
Install three skills under `.agents/skills/`: **`wix-vibe-headless`** (the client build + seed guide — your main source of truth), **`wix-manage`** (REST recipes to manage/configure the site), and **`wix-base44-connector`** (site context + API-doc discovery
|
|
19
|
+
Install three skills under `.agents/skills/`: **`wix-vibe-headless`** (the client build + seed guide — your main source of truth), **`wix-manage`** (REST recipes to manage/configure the site), and **`wix-base44-connector`** (site context + API-doc discovery).
|
|
16
20
|
|
|
17
21
|
Run this through exec_tool, exactly as written — installs all three skills, deploys REST scaffolds + UI into `src/`, writes `wix-config.js`, and pins the AGENTS.md note.
|
|
18
22
|
|
|
@@ -95,8 +99,15 @@ rejects the write. Wire routes/imports in with `find_replace`, leave the rest as
|
|
|
95
99
|
|
|
96
100
|
Seed by calling your vertical's ready-made seed module — read
|
|
97
101
|
`.agents/skills/wix-vibe-headless/references/<vertical>/seed/SEED.md` and follow it (the loader
|
|
98
|
-
snippet, admin connector token,
|
|
99
|
-
|
|
102
|
+
snippet, admin connector token, and every field shape are there). Gaps or an unexpected shape → the
|
|
103
|
+
documentation skill available in your environment.
|
|
104
|
+
|
|
105
|
+
**Entity images:** fire every image generation **before you build the client**, and run an
|
|
106
|
+
image-carrying seed **after** the build — generation finishes while you build, and each finished
|
|
107
|
+
result then reads `status: "completed"` with its final `https://media.base44.com/...` url. Read
|
|
108
|
+
every image url from the results **as they read at that moment**, not from what they said when you
|
|
109
|
+
called the tool. No final url by then (still running, or failed) → seed without that image and
|
|
110
|
+
attach it afterwards per the vertical's `SEED.md`.
|
|
100
111
|
Seeding is **admin-only** — not part of the client, which is built solely per the `wix-vibe-headless` skill.
|
|
101
112
|
|
|
102
113
|
- **Additive only:** never delete or overwrite the user's content, even apparent sample data; ask first if a cleanup truly seems needed.
|
|
@@ -104,15 +115,15 @@ Seeding is **admin-only** — not part of the client, which is built solely per
|
|
|
104
115
|
|
|
105
116
|
## STEP 5 — Wrap up
|
|
106
117
|
|
|
107
|
-
|
|
108
|
-
2. **Ask the user to open** `https://manage.wix.com/dashboard/{metaSiteId}` (your metasite id) to complete setup in Wix.
|
|
118
|
+
**Ask the user to open** `https://manage.wix.com/dashboard/{metaSiteId}` (your metasite id) to complete setup in Wix.
|
|
109
119
|
|
|
110
120
|
**Don't chase images.** A `/__generating__/…` placeholder is swapped for the final url automatically at turn end — do **not** edit, re-seed, or debug image urls.
|
|
111
121
|
|
|
112
122
|
## Later admin requests
|
|
113
123
|
|
|
114
124
|
For any later admin/management request, work as in STEP 4: your vertical's seed module first, else
|
|
115
|
-
|
|
125
|
+
consult official Wix API documentation using the documentation skill available in your environment.
|
|
126
|
+
Keep admin calls on the connected Wix connector.
|
|
116
127
|
|
|
117
128
|
**A change to what the business data COLLECTS is one of these, however UI it sounds** — a new form
|
|
118
129
|
field, product option or service setting. Change it on Wix first per the vertical's `seed/SEED.md`,
|
|
@@ -23,7 +23,7 @@ Everything is under `.agents/skills/wix-vibe-headless/references/`.
|
|
|
23
23
|
**shapes**, fieldsets, and paging.
|
|
24
24
|
- `app/{components,pages,hooks,context}/…` — a **reference UI** (+ hooks/providers) built on that data
|
|
25
25
|
layer; the field shapes and route patterns it uses (e.g. `/product/:slug`) are the data contract.
|
|
26
|
-
- `seed/seed-*.
|
|
26
|
+
- `seed/seed-*.cjs` — build-time **seeding functions** that create content.
|
|
27
27
|
- `INSTRUCTIONS.md` — the vertical's build guide + field-shape snippets; `seed/SEED.md` — how the seed
|
|
28
28
|
module is run.
|
|
29
29
|
|
|
@@ -31,15 +31,15 @@ Everything is under `.agents/skills/wix-vibe-headless/references/`.
|
|
|
31
31
|
|
|
32
32
|
| vertical | `app/rest/` data layer | seed module |
|
|
33
33
|
|---|---|---|
|
|
34
|
-
| storefront | `wix-store-catalog.js`, `wix-store-cart.js` — products & variants; server cart + checkout redirect | `seed-store.
|
|
35
|
-
| bookings | `wix-bookings-services.js`, `wix-bookings-checkout.js` — services/categories/slots; booking + checkout | `seed-bookings.
|
|
36
|
-
| blog | `wix-blog.js` — posts (list + by-slug), categories, tags | `seed-blog.
|
|
37
|
-
| events | `wix-events-browse.js`, `wix-events-registration.js` — events & categories; RSVP / ticketing + checkout | `seed-events.
|
|
38
|
-
| portfolio | `wix-portfolio.js` — collections, projects, galleries | `seed-portfolio.
|
|
39
|
-
| restaurants | `wix-restaurants-menu.js`, `-ordering.js`, `-reservations.js` — menu; online ordering; table reservations | `seed-restaurants.
|
|
34
|
+
| storefront | `wix-store-catalog.js`, `wix-store-cart.js` — products & variants; server cart + checkout redirect | `seed-store.cjs` |
|
|
35
|
+
| bookings | `wix-bookings-services.js`, `wix-bookings-checkout.js` — services/categories/slots; booking + checkout | `seed-bookings.cjs` |
|
|
36
|
+
| blog | `wix-blog.js` — posts (list + by-slug), categories, tags | `seed-blog.cjs` |
|
|
37
|
+
| events | `wix-events-browse.js`, `wix-events-registration.js` — events & categories; RSVP / ticketing + checkout | `seed-events.cjs` |
|
|
38
|
+
| portfolio | `wix-portfolio.js` — collections, projects, galleries | `seed-portfolio.cjs` |
|
|
39
|
+
| restaurants | `wix-restaurants-menu.js`, `-ordering.js`, `-reservations.js` — menu; online ordering; table reservations | `seed-restaurants.cjs` |
|
|
40
40
|
| forms | `wix-forms.js`, `wix-forms-submissions.js` — any visitor-fillable form: read the schema; upload attachments, create a submission (schema accessors ship alongside in `lib/wix-form-schema-utils.js`) | *(none — REST shapes in `seed/SEED.md`)* |
|
|
41
|
-
| cms | `wix-cms.js` — Wix Data collections: list / detail / filter | `seed
|
|
42
|
-
| pricing-plans | `wix-pricing-plans.js` — plans list + subscribe/checkout | `seed-pricing-plans.
|
|
41
|
+
| cms | `wix-cms.js` — Wix Data collections: list / detail / filter | *(none — see `seed/SEED.md`)* |
|
|
42
|
+
| pricing-plans | `wix-pricing-plans.js` — plans list + subscribe/checkout | `seed-pricing-plans.cjs` |
|
|
43
43
|
| members | `wix-members-auth.js` — custom login/signup (email+password, social, SSO), session, account | *(none — members sign up at runtime; nothing to seed)* |
|
|
44
44
|
|
|
45
45
|
Anything in the docs about the **host's own setup** — copying files into `src/`, its `@/` alias, its
|
|
@@ -57,7 +57,7 @@ within each. **One exception — `forms` must be seeded before its UI is built;
|
|
|
57
57
|
### 1 · Install the skills
|
|
58
58
|
|
|
59
59
|
Two skills, into `.agents/skills/`: **`wix-vibe-headless`** (this build guide + the seed modules —
|
|
60
|
-
self-contained) and **`wix-docs`** (
|
|
60
|
+
self-contained) and **`wix-docs`** (search/read the Wix API reference).
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
63
|
CI=1 npx skills@latest add wix/skills/skills/wix-vibe-headless --yes
|
|
@@ -110,8 +110,9 @@ V=<vertical>
|
|
|
110
110
|
find .agents/skills/wix-vibe-headless/references/$V/seed -name '*.js' -exec tail -n +1 {} +
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
They encode the Wix API sequences (incl. app-install + provisioning-race handling)
|
|
114
|
-
|
|
113
|
+
They encode the Wix API sequences (incl. app-install + provisioning-race handling). For anything
|
|
114
|
+
they don't cover, consult the official Wix API documentation using the documentation skill available
|
|
115
|
+
in your environment. Content queries return `REQUIRED_APP_NOT_INSTALLED` until the app is
|
|
115
116
|
installed + seeded (expected; the seed modules install it first). Image seeding = two Wix Media calls
|
|
116
117
|
(`generate-upload-url` → `PUT` the bytes) before attaching.
|
|
117
118
|
|
|
@@ -40,16 +40,9 @@ end). (Files missing? the install's `deploy` result lists what it wrote; re-run
|
|
|
40
40
|
`references/blog/app/` → `src/`.)
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
## STEP 2 — Theme
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
`--border`, `--radius`, `--font-*`) via shadcn Tailwind classes (`bg-card`, `text-foreground`,
|
|
47
|
-
`bg-primary`, `text-muted-foreground`, `border-border`, `rounded-lg`, `font-display`). Those tokens
|
|
48
|
-
are **already set to the brand by the design phase**, so the shipped pages are themed with zero work
|
|
49
|
-
here. To adjust the palette, edit `index.css` (`:root` **and** `.dark`) — the base44 way; **never add
|
|
50
|
-
a parallel theme file (e.g. a `theme.css`) or restyle the shipped JSX.** Build the Home/Header you add
|
|
51
|
-
(STEP 3) from the **same** base44 tokens/classes so it matches automatically. A dark brand is just
|
|
52
|
-
base44's dark palette in `index.css` — no per-component work.
|
|
43
|
+
## STEP 2 — Theme
|
|
44
|
+
Use the existing Base44 theme in `src/index.css` so your pages and the shipped components
|
|
45
|
+
share the same colors and typography.
|
|
53
46
|
|
|
54
47
|
## STEP 3 — Wire routes + provider (surgical `find_replace` on `src/App.jsx`, never a rewrite)
|
|
55
48
|
**No file reads needed to wire this.** Every shipped page and `WixManageBanner` is a default export that takes **no props** — wire them exactly as the snippet shows; nothing in those files needs looking up.
|
|
@@ -206,10 +199,9 @@ reference page inline.
|
|
|
206
199
|
included; add them as an authenticated `wixApiRequest` call).
|
|
207
200
|
|
|
208
201
|
Fallback only — when you hit an error or need something not shown here: read the relevant shipped file
|
|
209
|
-
under `src/`, or look it up via the
|
|
202
|
+
under `src/`, or look it up via the documentation skill available in your environment.
|
|
210
203
|
|
|
211
204
|
## Hard rules
|
|
212
|
-
- Style via base44 design tokens (`index.css` / shadcn Tailwind classes), never by rewriting the shipped components or adding a parallel theme file.
|
|
213
205
|
- Header/footer live in a `Layout` around `<Outlet/>` (STEP 3) — never edit the shipped `Blog`/`PostDetail`/category/tag pages to add chrome.
|
|
214
206
|
- The Layout's fixed top region owns positioning: `<WixManageBanner/>` above `<Header/>`; your `Header` is plain in-flow markup (not `position:fixed`).
|
|
215
207
|
- Route by `slug` through the shipped helpers — never hand-build a post/category/tag URL. Display categories/tags by `.label` (not `.name`).
|
|
@@ -226,7 +218,6 @@ connector) — separate from this client build; run in parallel.
|
|
|
226
218
|
|
|
227
219
|
## Verify (before declaring done)
|
|
228
220
|
- [ ] Client files copied into `src/`; `WIX_CLIENT_ID` set (not the placeholder).
|
|
229
|
-
- [ ] Brand palette lives in `index.css` (`:root`/`.dark`); no parallel theme file; shipped components/pages not restyled or rewritten.
|
|
230
221
|
- [ ] **Opened the vertical's data route(s)** (not just the home page) — `/blog` and a post detail page (plus a category/tag page) — and confirmed the shipped components render themed (surface, text, brand) with images.
|
|
231
222
|
- [ ] `Layout` (fixed `<WixManageBanner/>` + `<Header/>` region, then `<Outlet/>` + Footer) wraps all routes; shipped `Blog`/`PostDetail`/`CategoryPage`/`TagPage` untouched; content clears the fixed chrome; `<TaxonomyProvider>` wraps the tree.
|
|
232
223
|
- [ ] Feed lists live published posts (newest first) and paginates via `nextCursor`; post detail loads by `slug`; a bad slug shows the not-found state (no invented post).
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Blog — seeding
|
|
2
2
|
|
|
3
|
-
Seed a Wix Blog (Blog V3) by **calling `seed-blog.
|
|
3
|
+
Seed a Wix Blog (Blog V3) by **calling `seed-blog.cjs`** — don't hand-write the REST calls. It's
|
|
4
4
|
a build-time module (run via `exec_tool`, not shipped in the app) that abstracts every Wix Blog
|
|
5
5
|
seed operation. `require` it and call the functions with plain data.
|
|
6
6
|
|
|
7
7
|
> **NOT yet live-verified — transcribed from `setup-blog.md`.** Endpoints/fields mirror the recipe
|
|
8
|
-
> exactly; if a call returns an unexpected shape, use the
|
|
8
|
+
> exactly; if a call returns an unexpected shape, use the documentation skill available in your environment (never guess).
|
|
9
9
|
|
|
10
10
|
**DEFAULT — one call.** `setupBlog(ctx, plan)` runs the whole flow (memberId → categories/tags →
|
|
11
11
|
posts → covers), keeping every id in memory. Pass category/tag **names** and it resolves them to
|
|
@@ -15,11 +15,7 @@ for you (Blog binds the cover by the Wix Media file id, not a url).
|
|
|
15
15
|
```js
|
|
16
16
|
// build-time exec_tool
|
|
17
17
|
const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix");
|
|
18
|
-
const
|
|
19
|
-
// exec_tool's require can return EMPTY exports for these build-time modules — load the file itself:
|
|
20
|
-
const seed = (() => { const m = { exports: {} };
|
|
21
|
-
new Function("module", "exports", "require", fs.readFileSync("/app/.agents/skills/wix-vibe-headless/references/blog/seed/seed-blog.js", "utf8"))(m, m.exports, require);
|
|
22
|
-
return m.exports; })();
|
|
18
|
+
const seed = require(require("path").resolve(".agents/skills/wix-vibe-headless/references/blog/seed/seed-blog.cjs"));
|
|
23
19
|
const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
|
|
24
20
|
|
|
25
21
|
const result = await seed.setupBlog(ctx, {
|
|
@@ -88,7 +84,7 @@ first** (`installBlogApp`, idempotent), so seeding works even if the site doesn'
|
|
|
88
84
|
|
|
89
85
|
## Reference
|
|
90
86
|
If a call returns a shape you didn't expect, or you need an operation this module doesn't cover,
|
|
91
|
-
use the
|
|
87
|
+
use the documentation skill available in your environment to search + read the live Wix Blog API reference — never guess. The
|
|
92
88
|
authoritative source recipe is `wix-headless/references/inline-recipes/setup-blog.md`.
|
|
93
89
|
|
|
94
90
|
Read a method's page before writing its call: it carries the exact body shape, the required
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
//
|
|
7
7
|
// Usage (build-time exec_tool):
|
|
8
8
|
// const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix"); // Base44
|
|
9
|
-
// const seed = require("/app/.agents/skills/wix-vibe-headless/references/blog/seed/seed-blog.
|
|
9
|
+
// const seed = require("/app/.agents/skills/wix-vibe-headless/references/blog/seed/seed-blog.cjs");
|
|
10
10
|
// const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
|
|
11
11
|
// const memberId = await seed.getAuthorMemberId(ctx); // STEP 1 — required for every post
|
|
12
12
|
// const cats = await seed.createCategories(ctx, ["Recipes", "Brewing"]); // STEP 3 — only if the brief groups posts
|
|
@@ -22,8 +22,7 @@
|
|
|
22
22
|
// await seed.attachPostCovers(ctx, posts.map((p, i) => ({ postId: p.id, fileId: files[i].id })));
|
|
23
23
|
//
|
|
24
24
|
// Live-verified end-to-end (members author, categories, posts single+bulk, tags, covers, idempotent
|
|
25
|
-
// re-runs). If any call ever fails with a shape the caller didn't expect, fall back to the
|
|
26
|
-
// skill (search + read the live Wix Blog API reference) — never guess. Source recipe:
|
|
25
|
+
// re-runs). If any call ever fails with a shape the caller didn't expect, fall back to the documentation skill available in your environment (search + read the live Wix Blog API reference) — never guess. Source recipe:
|
|
27
26
|
// wix-headless/references/inline-recipes/setup-blog.md.
|
|
28
27
|
|
|
29
28
|
const API = "https://www.wixapis.com";
|
|
@@ -51,16 +51,9 @@ the end). (Files missing? the install's `deploy` result lists what it wrote; re-
|
|
|
51
51
|
`references/bookings/app/` → `src/`.)
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
## STEP 2 — Theme
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
`--muted`, `--border`, `--radius`, `--font-*`) via shadcn Tailwind classes (`bg-card`,
|
|
58
|
-
`text-foreground`, `bg-primary`, `text-muted-foreground`, `border-border`, `rounded-lg`,
|
|
59
|
-
`font-display`). Those tokens are **already set to the brand by the design phase**, so the shipped
|
|
60
|
-
pages are themed with zero work here. To adjust the palette, edit `index.css` (`:root` **and**
|
|
61
|
-
`.dark`) — the base44 way; **never add a parallel theme file (e.g. a `theme.css`) or restyle the
|
|
62
|
-
shipped JSX.** Build the Home/Header you add (STEP 3) from the **same** base44 tokens/classes so it
|
|
63
|
-
matches automatically. A dark brand is just base44's dark palette in `index.css` — no per-component work.
|
|
54
|
+
## STEP 2 — Theme
|
|
55
|
+
Use the existing Base44 theme in `src/index.css` so your pages and the shipped components
|
|
56
|
+
share the same colors and typography.
|
|
64
57
|
|
|
65
58
|
## STEP 3 — Wire routes (surgical `find_replace` on `src/App.jsx`, never a rewrite)
|
|
66
59
|
**No file reads needed to wire this.** Every shipped page and `WixManageBanner` is a default export that takes **no props** — wire them exactly as the snippet shows; nothing in those files needs looking up.
|
|
@@ -207,7 +200,7 @@ window.location.href = checkoutUrl; // hosted checkout; on return the booking
|
|
|
207
200
|
## Extending the client
|
|
208
201
|
The shipped flow covers **APPOINTMENT and CLASS** services (`listSlotsForService` routes by
|
|
209
202
|
`service.type`). For anything beyond that, add a helper on `wixApiRequest`, looking the endpoint up
|
|
210
|
-
|
|
203
|
+
using the documentation skill available in your environment first (never guess):
|
|
211
204
|
- **COURSE** enrollment — a course is enrolled as a *whole*, not per session; `listEventTimeSlots`
|
|
212
205
|
returns no slots for it, so the slot-picker flow doesn't apply (course-specific flow).
|
|
213
206
|
- **Service variants / participants** (duration- or person-based pricing), **add-ons**, and
|
|
@@ -217,7 +210,7 @@ in the **`wix-docs`** skill first (never guess):
|
|
|
217
210
|
them see their own appointments.
|
|
218
211
|
|
|
219
212
|
Fallback only — when you hit an error or need something not shown here: read the relevant shipped
|
|
220
|
-
file under `src/`, or look it up via the
|
|
213
|
+
file under `src/`, or look it up via the documentation skill available in your environment. Each helper in
|
|
221
214
|
`wix-bookings-services.js` / `wix-bookings-checkout.js` links its own reference page inline; these are
|
|
222
215
|
the areas they sit in:
|
|
223
216
|
- Bookings (services, categories, bookings): https://dev.wix.com/docs/api-reference/business-solutions/bookings.md
|
|
@@ -269,7 +262,6 @@ identical.
|
|
|
269
262
|
- **One unit type per service.** A room rented by the hour *and* by the day is two services.
|
|
270
263
|
|
|
271
264
|
## Hard rules
|
|
272
|
-
- Style via base44 design tokens (`index.css` / shadcn Tailwind classes), never by rewriting the shipped components or adding a parallel theme file.
|
|
273
265
|
- Header/footer live in a `Layout` around `<Outlet/>` (STEP 3) — never edit the shipped
|
|
274
266
|
`Services`/`ServiceDetail` to add chrome.
|
|
275
267
|
- The Layout's fixed top region owns positioning: `<WixManageBanner/>` above `<Header/>`; your
|
|
@@ -297,7 +289,6 @@ build; run in parallel.
|
|
|
297
289
|
|
|
298
290
|
## Verify (before declaring done)
|
|
299
291
|
- [ ] Client files copied into `src/`; `WIX_CLIENT_ID` set (not the placeholder).
|
|
300
|
-
- [ ] Brand palette lives in `index.css` (`:root`/`.dark`); no parallel theme file; shipped components/pages not restyled or rewritten.
|
|
301
292
|
- [ ] **Opened `/services` and a service detail page** (not just the home page) and confirmed the shipped cards render themed (surface, text, brand color) with images.
|
|
302
293
|
- [ ] `Layout` (fixed `<WixManageBanner/>` + `<Header/>` region, then `<Outlet/>` + Footer) wraps all
|
|
303
294
|
routes; shipped `Services`/`ServiceDetail` untouched; content clears the fixed chrome.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Bookings — seeding
|
|
2
2
|
|
|
3
|
-
Seed a Wix Bookings catalog by **calling `seed-bookings.
|
|
3
|
+
Seed a Wix Bookings catalog by **calling `seed-bookings.cjs`** — don't hand-write the REST calls.
|
|
4
4
|
It's a build-time module (run via `exec_tool`, not shipped in the app) that abstracts every Wix
|
|
5
5
|
Bookings seed operation. Load it and call **`setupBookings` — the one-call path** — with plain data.
|
|
6
6
|
|
|
@@ -9,11 +9,7 @@ Bookings seed operation. Load it and call **`setupBookings` — the one-call pat
|
|
|
9
9
|
```js
|
|
10
10
|
// build-time exec_tool
|
|
11
11
|
const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix");
|
|
12
|
-
const
|
|
13
|
-
// exec_tool's require can return EMPTY exports for these build-time modules — load the file itself:
|
|
14
|
-
const seed = (() => { const m = { exports: {} };
|
|
15
|
-
new Function("module", "exports", "require", fs.readFileSync("/app/.agents/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.js", "utf8"))(m, m.exports, require);
|
|
16
|
-
return m.exports; })();
|
|
12
|
+
const seed = require(require("path").resolve(".agents/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.cjs"));
|
|
17
13
|
const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
|
|
18
14
|
|
|
19
15
|
// ONE call: install → resolve staff → categories → services → CLASS sessions → images, all in the
|
|
@@ -103,12 +99,12 @@ same body; don't loop and don't re-create the ones that already succeeded.
|
|
|
103
99
|
|
|
104
100
|
## Rentals
|
|
105
101
|
|
|
106
|
-
`seed-rentals.
|
|
102
|
+
`seed-rentals.cjs` is the rentals half — the same transport, a different create order and payload.
|
|
107
103
|
Wix Rentals has no APIs of its own, so a rental is a Bookings service with rentals-specific
|
|
108
104
|
field values.
|
|
109
105
|
|
|
110
106
|
```js
|
|
111
|
-
const seed = require("
|
|
107
|
+
const seed = require(require("path").resolve(".agents/skills/wix-vibe-headless/references/bookings/seed/seed-rentals.cjs"));
|
|
112
108
|
await seed.setupRentals(ctx, {
|
|
113
109
|
resourceTypeName: "Meeting rooms",
|
|
114
110
|
resources: ["Room A", "Room B"], // parallel capacity = MORE RESOURCES
|
|
@@ -144,7 +140,7 @@ than a multi-service group. Pass `workingHours` only when the brief names openin
|
|
|
144
140
|
|
|
145
141
|
## Reference
|
|
146
142
|
If a call returns a shape you didn't expect, or you need an operation this module doesn't cover,
|
|
147
|
-
use the
|
|
143
|
+
use the documentation skill available in your environment to search + read the live Wix API reference — never guess. The
|
|
148
144
|
authoritative source recipe is `wix-headless/references/inline-recipes/setup-bookings.md`.
|
|
149
145
|
|
|
150
146
|
Read a method's page before writing its call: it carries the exact body shape, the required
|
package/skills/wix-vibe-headless/references/bookings/seed/{seed-bookings.js → seed-bookings.cjs}
RENAMED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
//
|
|
9
9
|
// Usage (build-time exec_tool):
|
|
10
10
|
// const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix"); // Base44 (generic: use $TOKEN)
|
|
11
|
-
// const seed = require("/app/.agents/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.
|
|
11
|
+
// const seed = require("/app/.agents/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.cjs");
|
|
12
12
|
// const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
|
|
13
13
|
//
|
|
14
14
|
// await seed.installBookingsApp(ctx); // if the site doesn't have Wix Bookings yet
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
// // await seed.attachServiceImage(ctx, { serviceId: s.id, revision: s.revision, image: { id: file.id, url: file.url, width: 1024, height: 1024 } });
|
|
33
33
|
//
|
|
34
34
|
// If any call fails with a shape the caller didn't expect, or you need an operation this module
|
|
35
|
-
// doesn't cover, fall back to the
|
|
35
|
+
// doesn't cover, fall back to the documentation skill available in your environment (search + read the live Wix API reference) —
|
|
36
36
|
// never guess. Source recipe (authoritative): wix-headless/references/inline-recipes/setup-bookings.md.
|
|
37
37
|
|
|
38
38
|
const API = "https://www.wixapis.com";
|