@wix/agent-skills 1.16.1 → 1.16.2

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.
Files changed (67) hide show
  1. package/package.json +1 -1
  2. package/skills/wix-app/SKILL.md +72 -8
  3. package/skills/wix-app/references/CODE_QUALITY.md +0 -1
  4. package/skills/wix-app/references/DASHBOARD_MODAL.md +21 -14
  5. package/skills/wix-app/references/DASHBOARD_PAGE.md +30 -184
  6. package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +1 -0
  7. package/skills/wix-app/references/WIX_PATTERNS_DOCS.md +172 -0
  8. package/skills/wix-app/references/dashboard-page/WDS_LAYOUT.md +187 -0
  9. package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +31 -2
  10. package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +6 -1
  11. package/skills/wix-app/references/editor-react-component/FUNCTION-HANDLERS.md +167 -0
  12. package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +2 -2
  13. package/skills/wix-base44-connector/SKILL.md +185 -0
  14. package/skills/wix-base44-connector/scripts/utils.js +212 -0
  15. package/skills/wix-design-system/SKILL.md +19 -15
  16. package/skills/wix-docs/SKILL.md +75 -1
  17. package/skills/wix-manage/SKILL.md +12 -16
  18. package/skills/wix-manage/references/domains/domain-search-purchase-and-connect.md +2603 -0
  19. package/skills/wix-manage/references/events/create-wix-event.md +112 -90
  20. package/skills/wix-manage/references/events/manage-wix-events.md +33 -94
  21. package/skills/wix-manage/references/sites/create-headless-site.md +1 -0
  22. package/skills/wix-manage/references/sites/manage-oauth-apps.md +154 -0
  23. package/skills/wix-manage/references/sites/read-site-context.md +125 -0
  24. package/skills/wix-manage/references/stores/create-product-catalog-v3.md +273 -0
  25. package/skills/wix-vibe-headless/install/deploy.cjs +1 -2
  26. package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed.md +104 -0
  27. package/skills/wix-vibe-headless/platforms/base44-ecom-light.md +74 -0
  28. package/skills/wix-vibe-headless/platforms/base44.md +3 -3
  29. package/skills/wix-vibe-headless/references/blog/seed/SEED.md +1 -1
  30. package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +1 -1
  31. package/skills/wix-vibe-headless/references/events/seed/SEED.md +1 -1
  32. package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +1 -1
  33. package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +1 -1
  34. package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +1 -1
  35. package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +68 -2
  36. package/skills/wix-vibe-headless/references/storefront/app/components/ProductCard.jsx +29 -86
  37. package/skills/wix-vibe-headless/references/storefront/app/components/ProductGrid.jsx +3 -8
  38. package/skills/wix-vibe-headless/references/storefront/app/components/VariantPicker.jsx +78 -105
  39. package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductCard.js +92 -0
  40. package/skills/wix-vibe-headless/references/storefront/app/hooks/useVariantOptions.js +76 -0
  41. package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +1 -1
  42. package/skills/wix-app/references/AUTO_PATTERNS_DASHBOARD.md +0 -326
  43. package/skills/wix-app/references/auto-patterns-dashboard/action-cell.md +0 -115
  44. package/skills/wix-app/references/auto-patterns-dashboard/app-config-structure.md +0 -264
  45. package/skills/wix-app/references/auto-patterns-dashboard/app-context.md +0 -37
  46. package/skills/wix-app/references/auto-patterns-dashboard/bulk-actions.md +0 -86
  47. package/skills/wix-app/references/auto-patterns-dashboard/collection-page-actions.md +0 -119
  48. package/skills/wix-app/references/auto-patterns-dashboard/collection-page.md +0 -103
  49. package/skills/wix-app/references/auto-patterns-dashboard/custom-actions-override.md +0 -76
  50. package/skills/wix-app/references/auto-patterns-dashboard/custom-columns-override.md +0 -82
  51. package/skills/wix-app/references/auto-patterns-dashboard/custom-components-override.md +0 -89
  52. package/skills/wix-app/references/auto-patterns-dashboard/custom-header-override.md +0 -124
  53. package/skills/wix-app/references/auto-patterns-dashboard/custom-sections-override.md +0 -91
  54. package/skills/wix-app/references/auto-patterns-dashboard/custom-slots-override.md +0 -71
  55. package/skills/wix-app/references/auto-patterns-dashboard/entity-page-actions.md +0 -70
  56. package/skills/wix-app/references/auto-patterns-dashboard/entity-page-view-actions.md +0 -73
  57. package/skills/wix-app/references/auto-patterns-dashboard/entity-page.md +0 -98
  58. package/skills/wix-app/references/auto-patterns-dashboard/example-patterns.json +0 -278
  59. package/skills/wix-app/references/auto-patterns-dashboard/pages-configuration.md +0 -94
  60. package/skills/wix-app/references/auto-patterns-dashboard/resolved-action.md +0 -43
  61. package/skills/wix-app/references/auto-patterns-dashboard/sdk-utilities.md +0 -66
  62. package/skills/wix-app/references/auto-patterns-dashboard/views.md +0 -76
  63. package/skills/wix-app/scripts/generate-auto-patterns.js +0 -510
  64. package/skills/wix-manage/references/domains/domain-search-and-purchase.md +0 -437
  65. package/skills/wix-manage/references/stores/create-product-from-image.md +0 -1031
  66. package/skills/wix-manage/references/stores/create-product-with-options-catalog-v3.md +0 -623
  67. package/skills/wix-manage/references/stores/setup-online-store-catalog-v3.md +0 -106
@@ -1,1031 +0,0 @@
1
- ---
2
- name: "Create Product from Image"
3
- description: "MANDATORY entry point for creating a product from an image. STEP 1 detects the site's catalog version (V1 / V3) automatically, then runs the appropriate flow inline. V3 supports up to 3 images, info sections, SEO, and options; V1 supports a single image. Use this for any 'create product from image' or 'create product from photo' request."
4
- ---
5
- # RECIPE: Create Product from Image
6
-
7
- > **ALWAYS use this recipe as the entry point** when the user wants to create a product from one or more images. Do NOT skip STEP 1 (version detection) — even if you believe you know the catalog version from dynamic context.
8
- >
9
- > **CRITICAL — IMAGE DESCRIPTION FIRST:** In your VERY FIRST response after seeing a product image, you MUST write a detailed text description of what you see in the image (product type, colors, materials, shape, branding). Output this description as text alongside your first tool call. This description will persist in conversation context and is the ONLY source of truth for product details in later steps. Do NOT attempt to re-analyze the image later — use the description you wrote here.
10
-
11
- This recipe creates a Wix Store product from an image. It first detects the site's catalog version, then runs the appropriate flow:
12
-
13
- - **V3 flow:** 6 interactive steps. Up to 3 images, multi-image variant detection, info sections (materials, care, specs), SEO meta, options/variants, atomic single-call create.
14
- - **V1 flow:** 3 sequential steps. Single image, product details inferred from the image, separate media-attach call after create.
15
-
16
- **Prerequisites:**
17
- - The user MUST provide at least one product image — uploaded directly to the chat or as a publicly accessible URL.
18
- - Up to 3 images are supported (V3 only — V1 supports only 1 image).
19
-
20
- ---
21
-
22
- ## STEP 1: Detect Catalog Version (no user interaction)
23
-
24
- **API Endpoint:** `GET https://www.wixapis.com/stores/v3/provision/version`
25
-
26
- No request body — this is a GET request.
27
-
28
- **Expected response:**
29
-
30
- ```json
31
- {
32
- "catalogVersion": "V3_CATALOG"
33
- }
34
- ```
35
-
36
- Possible values for `catalogVersion`:
37
-
38
- | Value | Action |
39
- |-------|--------|
40
- | `V3_CATALOG` | Run the **V3 Flow** below (V3 STEP 2 through V3 STEP 6) |
41
- | `V1_CATALOG` | Run the **V1 Flow** below (V1 STEP 2 through V1 STEP 4) |
42
- | `STORES_NOT_INSTALLED` | Stop. Inform the user: "The Wix Stores app is not installed on this site. Please install Wix Stores first before creating products. You can install it using the [Install Wix Apps](https://dev.wix.com/docs/api-reference/business-management/app-installation/skills/install-wix-apps) recipe." |
43
-
44
- ---
45
-
46
- # V3 Flow (catalogVersion = `V3_CATALOG`)
47
-
48
- > Run this section ONLY if STEP 1 returned `V3_CATALOG`. Otherwise jump to the V1 Flow further below.
49
-
50
- This is an interactive 5-step flow (STEP 2 through STEP 6). V3 STEP 4 and V3 STEP 5 require user interaction — do NOT skip them.
51
-
52
- ---
53
-
54
- ## V3 STEP 2: Collect Images and Upload to Wix Media Manager
55
-
56
- Ask the user to provide **1 to 3 images** of their product:
57
-
58
- > Upload 1-3 images of your product. If your product comes in different colors or sizes, feel free to upload images of those variants — I'll use them to set up product options automatically.
59
- >
60
- > You can upload images directly or provide public URLs.
61
-
62
- **Rules:**
63
- - Accept uploaded files (any image the user sends in the chat) OR publicly accessible URLs (`https://`).
64
- - Minimum: 1 image. Maximum: 3 images.
65
- - Supported formats: JPG, PNG, WEBP.
66
- - All images must be of the **same product**. If the images appear to show completely different products, respond: "It looks like these images show different products. For now, I can create one product at a time. Please upload images of a single product."
67
- - If an image is blurry or unrecognizable, respond: "I wasn't able to identify a product in this image. Try a clearer photo or add a description."
68
-
69
- **Optional free-text:** The user may include a text note with context (e.g., "handmade ceramic mug, usually around $25, available in blue and green"). Use this to supplement the image analysis.
70
-
71
- **Immediately upload each image** to the Wix Media Manager to get permanent public URLs:
72
-
73
- **API Endpoint:** `POST https://www.wixapis.com/site-media/v1/files/import`
74
-
75
- **For each image, send:**
76
-
77
- ```json
78
- {
79
- "url": "<image_url>",
80
- "mimeType": "image/jpeg",
81
- "displayName": "product-image-1.jpg"
82
- }
83
- ```
84
-
85
- **Expected response:**
86
-
87
- ```json
88
- {
89
- "file": {
90
- "id": "e6a89e_19dae9fef9bb48a6b5e392d0d2e5b95d~mv2.jpg",
91
- "displayName": "product-image-1.jpg",
92
- "url": "https://static.wixstatic.com/media/e6a89e_19dae9fef9bb48a6b5e392d0d2e5b95d~mv2.jpg",
93
- "parentFolderId": "media-root",
94
- "mediaType": "IMAGE",
95
- "operationStatus": "PENDING"
96
- }
97
- }
98
- ```
99
-
100
- **After uploading, save the `file.url` (wixstatic.com URL) for each image.** You need these in V3 STEP 3 and V3 STEP 6.
101
-
102
- **Fallback:** If the upload fails (e.g., the source URL is not publicly accessible, or `operationStatus: "FAILED"`), ask the user: "I couldn't upload that image. Could you provide a publicly accessible URL for it (e.g., from Unsplash, Imgur, or any https:// link)?"
103
-
104
- **Media assignment:**
105
- - The **first** successfully uploaded image becomes `media.main`.
106
- - **All** images go into `media.itemsInfo.items[]`.
107
-
108
- ---
109
-
110
- ## V3 STEP 3: Analyze Images and Generate Product Details
111
-
112
- **Use the image description you wrote at the start of this conversation** (in your first response, per the CRITICAL instruction at the top of this recipe). That description is the source of truth for all product fields. Do NOT attempt to re-analyze the image — use the text description already in context.
113
-
114
- **Use ONLY details from your earlier image description to generate the fields below.** Do NOT use generic names like "Product" or hallucinate new details. If you did not write an image description earlier, ask the user for clarification instead of guessing.
115
-
116
- **Generate the following fields based on what you see in the image(s)** (and any free-text note from the user):
117
-
118
- ### 4a. Product Name
119
- A concise, appealing product name optimized for e-commerce discoverability. Maximum 80 characters. Follow the naming convention: `[Brand/Style] [Material] [Product Type]`.
120
-
121
- Example: `"Artisan Stoneware Ceramic Mug"` — not generic names like `"Mug"` or `"Product"`.
122
-
123
- ### 4b. Sample Existing Product Tone (silent — no user interaction)
124
-
125
- Before writing the description, check whether the site already has products to match their tone:
126
-
127
- **API Endpoint:** `POST https://www.wixapis.com/stores/v3/products/query`
128
-
129
- ```json
130
- {
131
- "query": {
132
- "paging": {
133
- "limit": 2
134
- }
135
- }
136
- }
137
- ```
138
-
139
- - If the response contains products with non-empty `description` fields, analyze their writing style (casual, professional, playful, luxury, technical, etc.) and note it as the **site tone**.
140
- - If no products exist or descriptions are empty, use a neutral e-commerce tone.
141
- - This query is best-effort — if it fails, proceed with neutral tone. Do NOT block the flow.
142
-
143
- ### 4c. Product Description
144
- A marketing description of 2-4 sentences. Highlight key features, materials, and use case. **Match the site tone detected in 4b** — if the existing products use casual language, write casually; if they use formal/luxury language, match that style. If no site tone was detected, adapt tone to the product type (artisanal for handmade, technical for electronics, warm for home goods). This will be formatted as rich text nodes in V3 STEP 7.
145
-
146
- ### 4d. Price with Market Range
147
- - Suggest a retail price based on the product type and industry averages.
148
- - Also determine an approximate **market range** for annotation (e.g., "avg. market: $28-$42"). This range is shown to the user in V3 STEP 5 but is NOT sent to the API.
149
-
150
- ### 4e. Info Sections (only if relevant)
151
- Based on the product type and what's visible in the image, generate category-specific info sections. **Only include sections that are relevant — omit entirely if not applicable.**
152
-
153
- | Product Category | Possible Info Sections |
154
- |-----------------|----------------------|
155
- | Clothing/Textiles | "Materials & Composition" (e.g., "100% Organic Cotton"), "Care Instructions" (e.g., "Machine wash cold, tumble dry low") |
156
- | Candles/Fragrance | "Burn Time & Care" (e.g., "Approx. 45 hours burn time. Trim wick to 1/4 inch before each use.") |
157
- | Furniture/Home | "Dimensions & Specs" (e.g., "Height: 30cm, Width: 15cm"), "Assembly" if applicable |
158
- | Electronics | "Technical Specifications", "What's Included" |
159
- | Food/Beverages | "Ingredients", "Nutritional Info", "Storage Instructions" |
160
- | Jewelry | "Materials" (e.g., "Sterling Silver 925"), "Sizing Guide" |
161
- | Skincare/Beauty | "Ingredients", "How to Use" |
162
-
163
- Each info section needs: a `uniqueName` (lowercase-hyphenated, e.g., `"care-instructions"`), a `title` (display name, e.g., `"Care Instructions"`), and a description (2-3 sentences).
164
-
165
- ### 4f. SEO Meta Description
166
- A short meta description (120-160 characters) optimized for search. Include the product type, key materials, and primary use case.
167
-
168
- Example: `"Handcrafted stoneware ceramic mug with a matte glaze finish. Perfect for coffee and tea lovers. Microwave and dishwasher safe."`
169
-
170
- ### 4g. Suggested Options (from images)
171
- Examine the images for visible product attributes that should become variant options.
172
-
173
- **CRITICAL: Do NOT invent or infer attributes.** Only suggest options that meet **one** of these evidence thresholds:
174
- - **Visually confirmed** in the image(s) — you can see distinct values (e.g., two different colors across two images, a size label printed on packaging)
175
- - **Explicitly stated** by the user in their text note (e.g., "available in blue and green", "comes in S, M, L")
176
-
177
- **Do NOT suggest standard industry options based on product category.** For example, do NOT suggest Size: S, M, L, XL, XXL for apparel just because it is a clothing item. If no size information is visible in the image and the user did not mention sizes, report no size options detected.
178
-
179
- **Negative example:** Image shows a single t-shirt with no size labels visible and the user did not mention sizes → do NOT suggest a Size option. Report: "No variant options detected from the image."
180
-
181
- **Multi-image variant detection:**
182
- - If multiple images show the **same product in different colors** (e.g., one red shirt, one blue shirt), suggest a Color option with **only those visible colors** as choices.
183
- - If multiple images show the **same product from different angles**, treat them as additional product media — NOT as separate variants.
184
- - If only one image is provided and a distinctive color is visible, suggest that single color as a choice and ask the user if the product comes in other colors.
185
-
186
- ### 4h. Subscription Eligibility Detection (silent — no user interaction)
187
-
188
- Based on the product name, description, and image analysis, determine whether this product is **subscription-eligible**. A product qualifies if it is a consumable that gets depleted at a predictable rate — something customers buy repeatedly on a regular schedule.
189
-
190
- **Eligible categories (examples):**
191
- - Food & beverage: coffee beans/pods, tea, protein powder, meal kits
192
- - Supplements & health: vitamins, probiotics, protein supplements
193
- - Pet: pet food, flea/tick treatments, cat litter
194
- - Personal care: skincare routine products, razor blades/cartridges, deodorant, shampoo/conditioner
195
- - Household: cleaning supplies, paper towels, toilet paper, laundry detergent
196
- - Baby: diapers, formula, wipes
197
- - Media: print/digital newspapers, magazines
198
- - Candles (daily-use scented candles with high burn frequency)
199
-
200
- **NOT eligible (do not suggest):**
201
- - Furniture, art, décor (one-time purchase)
202
- - Electronics, tools, appliances
203
- - Standard clothing, apparel, shoes (not subscription-typical)
204
- - Jewelry, watches
205
- - Books (single title), games, toys
206
- - Any unique or collectible item
207
-
208
- Store the result internally as `subscription_eligible: true/false`. If `true`, also note a brief reason (e.g., `"coffee beans — daily consumable"`). No user interaction at this step.
209
-
210
- ---
211
-
212
- ## V3 STEP 4: Present Review Card to User (INTERACTIVE)
213
-
214
- **Present ALL generated fields to the user so they can review and refine them.** This is a content preview for editing — NOT the create approval. The single confirmation before creating happens later, in V3 STEP 6. Do not ask the user to approve creation at this step.
215
-
216
- Present a structured review card using the markdown format below. This provides a visual product-card-style layout:
217
-
218
- ```
219
- ---
220
-
221
- ### [Product Name]
222
-
223
- **$[price]** · _avg. market: $[low]-$[high]_
224
-
225
- > [Generated description text — the full 2-4 sentence description]
226
-
227
- ---
228
-
229
- | Detail | Value |
230
- |--------|-------|
231
- | Images | [count] uploaded |
232
- | SEO | [first 60 chars of meta description]… |
233
- | Tone | [Matched from existing site products / Neutral e-commerce] |
234
- | Subscription | [e.g. Monthly · 10% off] or [Not applicable] |
235
-
236
- **Info Sections**
237
- - **[Title 1]:** [one-line summary]
238
- - **[Title 2]:** [one-line summary]
239
-
240
- **Detected Options:** [option summary, e.g. "Color: Slate Blue, Terracotta" or "None detected"]
241
-
242
- ---
243
- ```
244
-
245
- After the card, offer the ways they can adjust the content:
246
-
247
- > 1. **Refine** — tell me what to change (e.g., "make the description shorter", "the price should be lower")
248
- > 2. **Regenerate** — I'll start the analysis over, optionally with additional context from you
249
- > 3. **Looks good** — continue to the next steps (options / subscription)
250
-
251
- If the user provided a text note that **contradicts** what's visible in the image (e.g., image shows blue but note says "available in red"), ask the user to clarify before proceeding.
252
-
253
- Apply any corrections the user requests. When they're happy (or have no changes), continue to the next step. **Do NOT treat this as the final create approval** — that single confirmation comes once, at V3 STEP 6.
254
-
255
- ---
256
-
257
- ## V3 STEP 4.5: Suggest Subscription (INTERACTIVE, conditional)
258
-
259
- > **Run this step ONLY if `subscription_eligible: true` was set in V3 STEP 3 section 4h.** Otherwise skip directly to V3 STEP 5.
260
-
261
- Present a short, non-pushy suggestion card:
262
-
263
- ---
264
-
265
- **This product looks like a great candidate for a subscription plan.**
266
- Customers who subscribe to *[product name]* get auto-refills on a schedule they choose — boosting repeat revenue for you.
267
-
268
- Would you like to add a subscription option?
269
- - **Yes** — set it up now (takes ~30 seconds)
270
- - **No** — create as a one-time purchase only
271
-
272
- ---
273
-
274
- If the user says **No**, proceed directly to V3 STEP 5.
275
-
276
- If the user says **Yes**, ask the following 4 questions (can be presented together as a single form):
277
-
278
- **Q1 — Billing frequency**
279
- > "How often should subscribers be charged and receive this product?"
280
-
281
- | Choice | `frequency` | `interval` |
282
- |--------|------------|-----------|
283
- | Every week | `WEEK` | `1` |
284
- | Every 2 weeks | `WEEK` | `2` |
285
- | Every month *(Recommended)* | `MONTH` | `1` |
286
- | Every 2 months | `MONTH` | `2` |
287
- | Every 3 months | `MONTH` | `3` |
288
- | Every 6 months | `MONTH` | `6` |
289
- | Every year | `YEAR` | `1` |
290
-
291
- **Q2 — Duration**
292
- > "How long should the subscription run?"
293
-
294
- - **Ongoing** — renews automatically until the customer cancels (omit `billingCycles`)
295
- - **Fixed** — ends after N cycles (ask: "How many cycles?") → set `billingCycles: N`
296
-
297
- **Q3 — Subscriber discount (optional incentive)**
298
- > "Would you like to offer a discount to customers who subscribe?"
299
-
300
- - No discount (omit `discount` block)
301
- - **10% off** *(Recommended)* → `type: "PERCENTAGE", amount: 10`
302
- - Custom percentage → ask for value → `type: "PERCENTAGE", amount: [value]`
303
- - Fixed amount off → ask for value → `type: "AMOUNT", amount: [value]`
304
-
305
- **Q4 — Allow one-time purchase alongside subscription**
306
- > "Can customers also buy this product as a one-time purchase (without subscribing)?"
307
-
308
- - **Yes — sell both ways** *(Recommended)* → `allowOneTimePurchases: true`
309
- - No — subscription only → `allowOneTimePurchases: false`
310
-
311
- After collecting the user's answers, show a brief confirmation line before moving on:
312
-
313
- > Subscription plan configured: [e.g. Monthly · Ongoing · 10% off · One-time purchases also allowed]
314
-
315
- Store the collected subscription data for use in V3 STEP 6.
316
-
317
- ---
318
-
319
- ## V3 STEP 5: Suggest Options and Ask User (INTERACTIVE)
320
-
321
- **Present the detected options from V3 STEP 4g and ask the user if they want to add product options.**
322
-
323
- If options were detected:
324
-
325
- > **Based on your image(s), I suggest the following product options:**
326
- >
327
- > - **[Option Name]:** [Choice 1], [Choice 2], ...
328
- >
329
- > Would you like to:
330
- > 1. Use these options as suggested
331
- > 2. Add more choices (e.g., additional colors or sizes)
332
- > 3. Add entirely new options
333
- > 4. Skip options and create a simple product (no variants)
334
-
335
- If no options were detected:
336
-
337
- > I didn't detect any variant attributes from the image(s). Would you like to add product options, or should I create a simple product without variants?
338
-
339
- **Wait for user response.** Collect the final list of options and choices based on their answer.
340
-
341
- ---
342
-
343
- ## V3 STEP 6: Create the Product
344
-
345
- > **CRITICAL — THIS IS THE ONLY CREATE CONFIRMATION. ASK EXACTLY ONCE.** The review card in V3 STEP 4 was a content preview for editing, not an approval. Here you ask for the single go-ahead before creating. Do NOT summarize-and-ask more than once — one clear confirmation is enough.
346
-
347
- Ask the user once:
348
-
349
- > Everything is ready. Shall I create the product now?
350
- > - **Yes, create it** — I'll submit the product to your store now.
351
- > - **No, go back** — return to a previous step to make changes.
352
-
353
- **Wait for confirmation.** Only proceed with the API call if the user says Yes. If the user already said something like "just create it", treat that as the confirmation and proceed without asking again.
354
-
355
- ---
356
-
357
- **API Endpoint:** `POST https://www.wixapis.com/stores/v3/products`
358
-
359
- Build the request body with all confirmed fields. The write must be **atomic** — either all fields save or none do.
360
-
361
- **If a subscription was configured in V3 STEP 4.5**, include a `subscriptionDetails` block in the product body (see rules below). Otherwise omit it entirely.
362
-
363
- **`subscriptionDetails` rules:**
364
- - `title`: auto-generate from frequency (e.g. `"Monthly Subscription"`, `"Weekly Subscription"`, `"Quarterly Subscription"`)
365
- - `description`: if a discount was set, write a short sentence referencing it (e.g. `"Subscribe and save 10% on every order."`). Omit if no discount.
366
- - `visible`: always `true`
367
- - `frequency` + `interval`: from user's Q1 answer
368
- - `billingCycles`: include only for fixed-duration subscriptions (from Q2). Omit for ongoing.
369
- - `discount`: include only if a discount was chosen (from Q3). Omit the entire block if no discount.
370
- - `allowOneTimePurchases`: from user's Q4 answer
371
-
372
- **Example `subscriptionDetails` block (monthly, ongoing, 10% off, one-time also allowed):**
373
-
374
- ```json
375
- "subscriptionDetails": {
376
- "subscriptions": [
377
- {
378
- "title": "Monthly Subscription",
379
- "description": "Subscribe and save 10% on every order.",
380
- "visible": true,
381
- "frequency": "MONTH",
382
- "interval": 1,
383
- "discount": {
384
- "type": "PERCENTAGE",
385
- "amount": 10
386
- }
387
- }
388
- ],
389
- "allowOneTimePurchases": true
390
- }
391
- ```
392
-
393
- **Example with fixed duration and flat amount discount (every 2 months, 6 cycles, $5 off, subscription only):**
394
-
395
- ```json
396
- "subscriptionDetails": {
397
- "subscriptions": [
398
- {
399
- "title": "Bi-Monthly Subscription",
400
- "description": "Subscribe and save $5 on every order.",
401
- "visible": true,
402
- "frequency": "MONTH",
403
- "interval": 2,
404
- "billingCycles": 6,
405
- "discount": {
406
- "type": "AMOUNT",
407
- "amount": 5
408
- }
409
- }
410
- ],
411
- "allowOneTimePurchases": false
412
- }
413
- ```
414
-
415
- ---
416
-
417
- ### Path A: Simple Product (No Options)
418
-
419
- Use this if the user chose to skip options in V3 STEP 6.
420
-
421
- **Exact request example:**
422
-
423
- ```json
424
- {
425
- "product": {
426
- "name": "Artisan Stoneware Ceramic Mug",
427
- "description": {
428
- "nodes": [
429
- {
430
- "type": "PARAGRAPH",
431
- "id": "desc1",
432
- "nodes": [
433
- {
434
- "type": "TEXT",
435
- "textData": {
436
- "text": "A beautifully handcrafted stoneware mug with a smooth matte glaze. Its generous 12oz capacity and comfortable handle make it perfect for your morning coffee or evening tea. Microwave and dishwasher safe."
437
- }
438
- }
439
- ],
440
- "paragraphData": {
441
- "textStyle": {
442
- "textAlignment": "AUTO"
443
- }
444
- }
445
- }
446
- ],
447
- "metadata": {
448
- "version": 1,
449
- "id": "product-desc-001"
450
- }
451
- },
452
- "productType": "PHYSICAL",
453
- "physicalProperties": {},
454
- "media": {
455
- "main": {
456
- "url": "https://static.wixstatic.com/media/e6a89e_abc123~mv2.jpg",
457
- "altText": "Artisan Stoneware Ceramic Mug - Front View"
458
- },
459
- "itemsInfo": {
460
- "items": [
461
- {
462
- "url": "https://static.wixstatic.com/media/e6a89e_abc123~mv2.jpg",
463
- "altText": "Artisan Stoneware Ceramic Mug - Front View"
464
- },
465
- {
466
- "url": "https://static.wixstatic.com/media/e6a89e_def456~mv2.jpg",
467
- "altText": "Artisan Stoneware Ceramic Mug - Side View"
468
- }
469
- ]
470
- }
471
- },
472
- "infoSections": [
473
- {
474
- "uniqueName": "materials-composition",
475
- "title": "Materials & Composition",
476
- "description": {
477
- "nodes": [
478
- {
479
- "type": "PARAGRAPH",
480
- "id": "info-materials-1",
481
- "nodes": [
482
- {
483
- "type": "TEXT",
484
- "textData": {
485
- "text": "Made from high-fired stoneware clay with a food-safe matte glaze finish. Lead-free and cadmium-free."
486
- }
487
- }
488
- ],
489
- "paragraphData": {
490
- "textStyle": {
491
- "textAlignment": "AUTO"
492
- }
493
- }
494
- }
495
- ],
496
- "metadata": {
497
- "version": 1,
498
- "id": "info-materials"
499
- }
500
- }
501
- },
502
- {
503
- "uniqueName": "care-instructions",
504
- "title": "Care Instructions",
505
- "description": {
506
- "nodes": [
507
- {
508
- "type": "PARAGRAPH",
509
- "id": "info-care-1",
510
- "nodes": [
511
- {
512
- "type": "TEXT",
513
- "textData": {
514
- "text": "Microwave and dishwasher safe. Hand washing recommended to preserve the glaze finish. Avoid sudden temperature changes."
515
- }
516
- }
517
- ],
518
- "paragraphData": {
519
- "textStyle": {
520
- "textAlignment": "AUTO"
521
- }
522
- }
523
- }
524
- ],
525
- "metadata": {
526
- "version": 1,
527
- "id": "info-care"
528
- }
529
- }
530
- }
531
- ],
532
- "seoData": {
533
- "tags": [
534
- {
535
- "type": "meta",
536
- "props": {
537
- "name": "description",
538
- "content": "Handcrafted stoneware ceramic mug with matte glaze finish. 12oz capacity, microwave and dishwasher safe. Perfect for coffee and tea lovers."
539
- }
540
- }
541
- ]
542
- },
543
- "price": {
544
- "actualPrice": {
545
- "amount": "34.99"
546
- }
547
- }
548
- }
549
- }
550
- ```
551
-
552
- ---
553
-
554
- ### Path B: Product with Options
555
-
556
- Use this if the user confirmed or provided options in V3 STEP 6. You MUST define both `options` and `variantsInfo.variants`.
557
-
558
- **Rules for variants:**
559
- - Generate ALL combinations of option choices as variants.
560
- - Each variant uses the same price unless the user specified different prices.
561
- - Set `visible: true` for all variants.
562
-
563
- **Exact request example (product with Color option detected from two images):**
564
-
565
- ```json
566
- {
567
- "product": {
568
- "name": "Artisan Stoneware Ceramic Mug",
569
- "description": {
570
- "nodes": [
571
- {
572
- "type": "PARAGRAPH",
573
- "id": "desc1",
574
- "nodes": [
575
- {
576
- "type": "TEXT",
577
- "textData": {
578
- "text": "A beautifully handcrafted stoneware mug with a smooth matte glaze. Its generous 12oz capacity and comfortable handle make it perfect for your morning coffee or evening tea. Microwave and dishwasher safe."
579
- }
580
- }
581
- ],
582
- "paragraphData": {
583
- "textStyle": {
584
- "textAlignment": "AUTO"
585
- }
586
- }
587
- }
588
- ],
589
- "metadata": {
590
- "version": 1,
591
- "id": "product-desc-001"
592
- }
593
- },
594
- "productType": "PHYSICAL",
595
- "physicalProperties": {},
596
- "media": {
597
- "main": {
598
- "url": "https://static.wixstatic.com/media/e6a89e_abc123~mv2.jpg",
599
- "altText": "Artisan Stoneware Ceramic Mug - Slate Blue"
600
- },
601
- "itemsInfo": {
602
- "items": [
603
- {
604
- "url": "https://static.wixstatic.com/media/e6a89e_abc123~mv2.jpg",
605
- "altText": "Artisan Stoneware Ceramic Mug - Slate Blue"
606
- },
607
- {
608
- "url": "https://static.wixstatic.com/media/e6a89e_def456~mv2.jpg",
609
- "altText": "Artisan Stoneware Ceramic Mug - Terracotta"
610
- }
611
- ]
612
- }
613
- },
614
- "options": [
615
- {
616
- "name": "Color",
617
- "optionRenderType": "TEXT_CHOICES",
618
- "choicesSettings": {
619
- "choices": [
620
- {
621
- "choiceType": "CHOICE_TEXT",
622
- "name": "Slate Blue"
623
- },
624
- {
625
- "choiceType": "CHOICE_TEXT",
626
- "name": "Terracotta"
627
- }
628
- ]
629
- }
630
- }
631
- ],
632
- "variantsInfo": {
633
- "variants": [
634
- {
635
- "choices": [
636
- {
637
- "optionChoiceNames": {
638
- "optionName": "Color",
639
- "choiceName": "Slate Blue",
640
- "renderType": "TEXT_CHOICES"
641
- }
642
- }
643
- ],
644
- "price": {
645
- "actualPrice": {
646
- "amount": "34.99"
647
- }
648
- },
649
- "physicalProperties": {},
650
- "visible": true
651
- },
652
- {
653
- "choices": [
654
- {
655
- "optionChoiceNames": {
656
- "optionName": "Color",
657
- "choiceName": "Terracotta",
658
- "renderType": "TEXT_CHOICES"
659
- }
660
- }
661
- ],
662
- "price": {
663
- "actualPrice": {
664
- "amount": "34.99"
665
- }
666
- },
667
- "physicalProperties": {},
668
- "visible": true
669
- }
670
- ]
671
- },
672
- "infoSections": [
673
- {
674
- "uniqueName": "materials-composition",
675
- "title": "Materials & Composition",
676
- "description": {
677
- "nodes": [
678
- {
679
- "type": "PARAGRAPH",
680
- "id": "info-materials-1",
681
- "nodes": [
682
- {
683
- "type": "TEXT",
684
- "textData": {
685
- "text": "Made from high-fired stoneware clay with a food-safe matte glaze finish. Lead-free and cadmium-free."
686
- }
687
- }
688
- ],
689
- "paragraphData": {
690
- "textStyle": {
691
- "textAlignment": "AUTO"
692
- }
693
- }
694
- }
695
- ],
696
- "metadata": {
697
- "version": 1,
698
- "id": "info-materials"
699
- }
700
- }
701
- },
702
- {
703
- "uniqueName": "care-instructions",
704
- "title": "Care Instructions",
705
- "description": {
706
- "nodes": [
707
- {
708
- "type": "PARAGRAPH",
709
- "id": "info-care-1",
710
- "nodes": [
711
- {
712
- "type": "TEXT",
713
- "textData": {
714
- "text": "Microwave and dishwasher safe. Hand washing recommended to preserve the glaze finish. Avoid sudden temperature changes."
715
- }
716
- }
717
- ],
718
- "paragraphData": {
719
- "textStyle": {
720
- "textAlignment": "AUTO"
721
- }
722
- }
723
- }
724
- ],
725
- "metadata": {
726
- "version": 1,
727
- "id": "info-care"
728
- }
729
- }
730
- }
731
- ],
732
- "seoData": {
733
- "tags": [
734
- {
735
- "type": "meta",
736
- "props": {
737
- "name": "description",
738
- "content": "Handcrafted stoneware ceramic mug with matte glaze finish. 12oz capacity, microwave and dishwasher safe. Perfect for coffee and tea lovers."
739
- }
740
- }
741
- ]
742
- },
743
- "price": {
744
- "actualPrice": {
745
- "amount": "34.99"
746
- }
747
- }
748
- }
749
- }
750
- ```
751
-
752
- ---
753
-
754
- **Expected response (partial):**
755
-
756
- ```json
757
- {
758
- "product": {
759
- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
760
- "name": "Artisan Stoneware Ceramic Mug",
761
- "visible": true,
762
- "productType": "PHYSICAL",
763
- "price": {
764
- "actualPrice": {
765
- "amount": "34.99"
766
- }
767
- }
768
- }
769
- }
770
- ```
771
-
772
- **On success:** Present a completion card summarizing what was created:
773
-
774
- ```
775
- ---
776
-
777
- ### Product Created
778
-
779
- **[Product Name]** · **$[price]**
780
-
781
- | | |
782
- |---|---|
783
- | Options | [option summary or "None"] |
784
- | Info Sections | [list of section titles] |
785
- | Images | [count] attached |
786
-
787
- **View in dashboard:** `https://manage.wix.com/dashboard/[siteId]/store/products/[productId]`
788
-
789
- ---
790
- ```
791
-
792
- Replace `[siteId]` with the site ID from the MCP context and `[productId]` with the `product.id` from the API response. This link lets the user immediately view and edit the product in the Wix dashboard.
793
-
794
- **On failure:** Show an error message and offer to retry. Do NOT leave a partially created product.
795
-
796
- ---
797
-
798
- ## V3 Completion Checklist
799
-
800
- Before reporting success to the user, verify ALL of the following:
801
-
802
- - [ ] STEP 1 completed: Catalog version detected as `V3_CATALOG`.
803
- - [ ] V3 STEP 2 completed: User provided 1-3 images, all uploaded to Media Manager with wixstatic.com URLs.
804
- - [ ] V3 STEP 3 completed: Images analyzed from user's message, all product fields generated based on what's visible in the image(s).
805
- - [ ] V3 STEP 4 completed: User reviewed and approved the generated details.
806
- - [ ] V3 STEP 4.5 completed (if applicable): Subscription eligibility was evaluated. If eligible, user was asked and their choice (Yes/No) was applied before proceeding to STEP 5.
807
- - [ ] V3 STEP 5 completed: User confirmed, modified, or skipped product options.
808
- - [ ] V3 STEP 6 completed: User confirmed "create now", product was created via API and you received a product ID.
809
-
810
- ---
811
-
812
- # V1 Flow (catalogVersion = `V1_CATALOG`)
813
-
814
- > Run this section ONLY if STEP 1 returned `V1_CATALOG`. Otherwise use the V3 Flow above.
815
-
816
- This is a 3-step sequential flow (STEP 2 through STEP 4). ALL steps MUST be completed in order. Do NOT report success until ALL steps have executed successfully.
817
-
818
- **V1 prerequisites:**
819
- - The user MUST provide at least one product image — uploaded directly to the chat or as a publicly accessible URL.
820
- - Both chat uploads and public URLs are accepted. Chat-uploaded images have a wixmp URL that works for Media Manager import.
821
-
822
- ---
823
-
824
- ## V1 STEP 2: Upload the Image to Wix Media Manager (MANDATORY)
825
-
826
- **API Endpoint:** `POST https://www.wixapis.com/site-media/v1/files/import`
827
-
828
- **Request body fields:**
829
-
830
- | Field | Type | Required | Description |
831
- |-------|------|----------|-------------|
832
- | `url` | string | Yes | The image URL. Can be a publicly accessible HTTP/HTTPS URL OR a wixmp URL from a chat-uploaded image. Both work with the Media Manager import API. |
833
- | `mimeType` | string | Recommended | The MIME type of the image. Use `image/jpeg` for .jpg/.jpeg files, `image/png` for .png files, `image/webp` for .webp files. |
834
- | `displayName` | string | No | A display name for the file in Media Manager. Include the file extension (e.g., `product-image.jpg`). |
835
-
836
- **Exact request example:**
837
-
838
- ```json
839
- {
840
- "url": "https://images.unsplash.com/photo-1563729784474-d77dbb933a9e?w=400",
841
- "mimeType": "image/jpeg",
842
- "displayName": "product-image.jpg"
843
- }
844
- ```
845
-
846
- **Expected response:**
847
-
848
- ```json
849
- {
850
- "file": {
851
- "id": "e6a89e_19dae9fef9bb48a6b5e392d0d2e5b95d~mv2.jpg",
852
- "displayName": "product-image.jpg",
853
- "url": "https://static.wixstatic.com/media/e6a89e_19dae9fef9bb48a6b5e392d0d2e5b95d~mv2.jpg",
854
- "parentFolderId": "media-root",
855
- "mediaType": "IMAGE",
856
- "operationStatus": "PENDING"
857
- }
858
- }
859
- ```
860
-
861
- **After this step, save these values — you need them later:**
862
- - `file.url` — the wixstatic.com URL (use in V1 STEP 4)
863
- - `file.id` — the media file ID
864
-
865
- **If the response contains `operationStatus: "FAILED"`:** The source URL is not accessible. Ask the user for a different image URL.
866
-
867
- ---
868
-
869
- ## V1 STEP 3: Create the Product (with image-based details)
870
-
871
- **API Endpoint:** `POST https://www.wixapis.com/stores/v1/products`
872
-
873
- **Use the image description you wrote at the start of this conversation** (in your first response, per the CRITICAL instruction at the top of this recipe). That description is the source of truth for the product name, description, and price. Do NOT attempt to re-analyze the image — use the text description already in context.
874
-
875
- **Use ONLY details from your earlier image description to set the product name, description, and price below.** Do NOT use generic text like "Product from image" or hallucinate new details. If you did not write an image description earlier, ask the user for clarification instead of guessing.
876
-
877
- **Request body fields:**
878
-
879
- | Field | Type | Required | Value |
880
- |-------|------|----------|-------|
881
- | `product.name` | string | Yes | A concise, appealing name describing the ACTUAL product in the image (max 80 chars). Example: `"Premium Spinning Fishing Reel"` — NOT `"Product from image"`. |
882
- | `product.description` | string | Yes | A 2-3 sentence marketing description of what you SEE in the image. MUST be wrapped in `<p>` tags. |
883
- | `product.visible` | boolean | Yes | `true` |
884
- | `product.productType` | string | Yes | `"physical"` |
885
- | `product.priceData.price` | number | Yes | A reasonable retail price based on the product type visible in the image |
886
-
887
- **Exact request example (using values from V1 STEP 3):**
888
-
889
- ```json
890
- {
891
- "product": {
892
- "name": "Premium Spinning Fishing Reel",
893
- "description": "<p>A sleek black-and-gold spinning fishing reel designed for smooth retrieves and dependable performance. Ideal for anglers targeting freshwater or light saltwater species.</p>",
894
- "visible": true,
895
- "productType": "physical",
896
- "priceData": {
897
- "price": 79.99
898
- }
899
- }
900
- }
901
- ```
902
-
903
- **Expected response (partial):**
904
-
905
- ```json
906
- {
907
- "product": {
908
- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
909
- "name": "Premium Spinning Fishing Reel",
910
- "visible": true,
911
- "productType": "physical",
912
- "priceData": {
913
- "price": 79.99
914
- }
915
- }
916
- }
917
- ```
918
-
919
- **After this step, save this value — you need it in V1 STEP 4:**
920
- - `product.id` — the product ID (a UUID string like `"a1b2c3d4-e5f6-7890-abcd-ef1234567890"`)
921
-
922
- ---
923
-
924
- ## V1 STEP 4: Attach the Image to the Product (MANDATORY — DO NOT SKIP)
925
-
926
- **API Endpoint:** `POST https://www.wixapis.com/stores/v1/products/{id}/media`
927
-
928
- Replace `{id}` in the URL with the `product.id` from V1 STEP 4.
929
-
930
- **Request body fields:**
931
-
932
- | Field | Type | Required | Description |
933
- |-------|------|----------|-------------|
934
- | `media` | array | Yes | Array of media objects to attach |
935
- | `media[].url` | string | Yes | The `file.url` (wixstatic.com URL) from V1 STEP 2. Do NOT use the original image URL — use the wixstatic.com URL returned by the Media Manager. |
936
-
937
- **Exact request example:**
938
-
939
- URL: `POST https://www.wixapis.com/stores/v1/products/a1b2c3d4-e5f6-7890-abcd-ef1234567890/media`
940
-
941
- ```json
942
- {
943
- "media": [
944
- {
945
- "url": "https://static.wixstatic.com/media/e6a89e_19dae9fef9bb48a6b5e392d0d2e5b95d~mv2.jpg"
946
- }
947
- ]
948
- }
949
- ```
950
-
951
- **Expected response:** Empty object `{}` — this means success.
952
-
953
- **This step is MANDATORY.** The product is not complete without its image. Do NOT report success to the user before this step returns successfully.
954
-
955
- ---
956
-
957
- ## V1 Completion Checklist
958
-
959
- Before reporting success to the user, verify ALL of the following:
960
-
961
- - [ ] STEP 1 completed: Catalog version detected as `V1_CATALOG`.
962
- - [ ] V1 STEP 2 completed: Image was uploaded to Wix Media Manager and you received a wixstatic.com URL.
963
- - [ ] V1 STEP 3 completed: You looked at the image, identified the product, and created it with accurate name/description/price.
964
- - [ ] V1 STEP 4 completed: Image was attached to the product using the Add Product Media endpoint.
965
-
966
- Only after ALL 4 steps succeed (STEP 1 + V1 STEP 2-4), report to the user: the product name, price, and that it was created with the image attached.
967
-
968
- ---
969
-
970
- # Troubleshooting and Error Handling
971
-
972
- ## Catalog version detection issues
973
-
974
- ### Get Catalog Version returns 404 or authorization error
975
- The API key may not have permission to access Stores APIs, or Stores may not be installed. Verify Stores is installed and the auth token has the correct scopes.
976
-
977
- ### Unsure which flow to run
978
- The response field is `catalogVersion`. Map it as follows:
979
- - `V3_CATALOG` -> run V3 Flow (V3 STEP 2 onward)
980
- - `V1_CATALOG` -> run V1 Flow (V1 STEP 2 onward)
981
- - `STORES_NOT_INSTALLED` -> stop and ask user to install Wix Stores
982
-
983
- ## V3 issues
984
-
985
- ### Image is blurry or unrecognizable
986
- Respond: "I wasn't able to identify a product in this image. Try a clearer photo or add a description."
987
-
988
- ### Images show different products
989
- Respond: "It looks like these images show different products. For now, I can create one product at a time. Please upload images of a single product."
990
-
991
- ### User text contradicts images
992
- If the user's free-text note conflicts with what's visible (e.g., image shows blue but note says "available in red"), ask the user to clarify before showing the review card.
993
-
994
- ### Description format error (V3)
995
- V3 requires rich text nodes, NOT HTML strings. Ensure the description is an object with `nodes` array.
996
-
997
- ### Variant count mismatch
998
- You must generate ALL combinations of option choices. For example, 2 colors x 2 sizes = 4 variants.
999
-
1000
- ### V3 API write fails
1001
- Show an error and offer to retry. Do NOT leave a partially created product.
1002
-
1003
- ## V1 issues
1004
-
1005
- ### "The url field must be a publicly accessible URL"
1006
- The URL may be a local file path or invalid reference. Both public HTTPS URLs and wixmp URLs from chat uploads work. If the error persists, ask the user for a different image source.
1007
-
1008
- ### Product created but no image visible (V1)
1009
- You used the original external URL instead of the wixstatic.com URL in V1 STEP 4. Always use the `file.url` from V1 STEP 2's response.
1010
-
1011
- ## Cross-version errors
1012
-
1013
- ### Image import fails (operationStatus: FAILED)
1014
- The source server blocks external requests. Ask the user for a different image URL. Reliable sources: Unsplash (`images.unsplash.com`), Pexels (`images.pexels.com`), Imgur, public S3/GCS buckets.
1015
-
1016
- ### 428 Precondition Required on product creation
1017
- You called the wrong endpoint for the site's catalog version. Re-run STEP 1 to detect the version and use the matching flow:
1018
- - V3 sites must use `POST /stores/v3/products` (V3 STEP 6)
1019
- - V1 sites must use `POST /stores/v1/products` (V1 STEP 4)
1020
-
1021
- # References
1022
-
1023
- - [Get Catalog Version](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-versioning/get-catalog-version)
1024
- - [Catalog Versioning Overview](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-versioning/introduction)
1025
- - [Create Product (Catalog V3)](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/create-product)
1026
- - [Create Product with Options (Catalog V3)](https://dev.wix.com/docs/api-reference/business-solutions/stores/skills/create-product-with-options-catalog-v3)
1027
- - [Info Sections API (Catalog V3)](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/info-sections-v3/introduction)
1028
- - [Create Product (Catalog V1)](https://dev.wix.com/docs/api-reference/business-solutions/stores/skills/create-product-catalog-v1)
1029
- - [Add Product Media (Catalog V1)](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v1/catalog/add-product-media)
1030
- - [Upload Media to Wix](https://dev.wix.com/docs/api-reference/assets/media/skills/upload-media-to-wix)
1031
- - [Install Wix Apps](https://dev.wix.com/docs/api-reference/business-management/app-installation/skills/install-wix-apps)