All skills
wix avatar

/wix-manage

@4895cc9 official
by Wix.comwix/skills33 stars
33

REST recipes to configure and manage a Wix site's business solutions — stores, bookings, payments, CMS, and more. Open the matching recipe for the exact endpoint, method, and payload before calling — never guess a Wix API, never write Wix dashboard URL from memory. Routes to: stores, bookings, get-paid, CMS, contacts, forms, media, app-installation, pricing-plans, restaurants, ricos rich-content, sites, blog, calendar, domains, events, site-properties, ecommerce, marketing, google-ads, google-business-profile, analytics, accessibility, seo, dashboard-navigation.

Use this Skill: https://skilld.dev/gh/wix/skills/wix-manage

This session only. Nothing lands on disk.

referencesecommercepricing-promotionsecom-pricing-flow-bundle-and-save.md

≈2.3k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Flow: Bundle & Save Campaign

Before executing this skill, read Create Discount Rule with ReadFullDocsArticle — it contains the discount-rule mechanics and the pre-create guardrails (conflict/stacking, margin floor, %-sanity).

Creates a discount that rewards customers for purchasing multiple items, encouraging product discovery and cross-selling. The discount activates when the cart contains a minimum number of items, and targets categories or products where bundling makes strategic sense.

Prerequisites

  • Products exist in the catalog across multiple categories (siteData.hasCatalog === true, checked at context load)
  • Categories with 2+ products suitable for bundling

Required APIs


Step 1: Use pre-loaded catalog data

Catalog analytics and product data are already in conversation context — do NOT re-fetch:

  • siteData.catalogAnalytics — category groups with min(price), max(price), avg(profitMargin), count(). Loaded by the eCommerce Load Context.
  • siteData.productCatalogData — per-product list sorted price DESC, ordersCount DESC for BUNDLE_AND_SAVE goal. Loaded by the run-a-sale orchestrator Step 5.

Extract the following from context:

  • min_price, max_price — from the "All Products" group in siteData.catalogAnalytics
  • avg_profit_margin — sets the discount ceiling
  • count — catalog breadth; more products = more bundling options
  • Top products by price and order count — from siteData.productCatalogData

Step 2: Analyze cross-sell patterns

Evaluate the catalog for bundling opportunities:

  1. Category diversity: Look for categories with multiple products at complementary price points (e.g., a $50 main item + $15 accessories).
  2. Price range suitability: Wide price ranges (large gap between min_price and max_price) suggest tiered bundles. Narrow ranges suggest quantity-based bundles.
  3. High-margin categories: Categories with above-average profit margin are better candidates because the discount erodes less absolute profit.
  4. Popular + discoverable: Pair best-selling products (high ordersCount) with lower-visibility products to drive discovery.

Step 3: Set minimum item quantity

Determine the minItemQuantity based on catalog characteristics:

Catalog Profile Recommended minItemQuantity Rationale
High-price items (avg price > price_p75) 2 Customers are less likely to buy 3+ expensive items
Medium-price items 2-3 Standard bundle size
Low-price items (avg price < price_p25) 3-4 Lower price per item makes larger bundles feasible
Many items in category (count > 10) 3 More products to choose from
Few items in category (count <= 5) 2 Limited selection constrains bundle size

Default to minItemQuantity: 2 if data is ambiguous.


Step 4: Select discount percentage

Scale the discount to the average margin, rewarding multi-item purchases without eroding profitability:

Margin Tier Condition Recommended Discount
Low margin avg_profit_margin < 25% 10%
Medium margin 25% <= avg_profit_margin <= 50% 15%
High margin avg_profit_margin > 50% 20%
No data Margin unavailable 10%

Verify that the discount respects the global cap of 25% and the minimum margin threshold of 15% (discount <= avg_profit_margin - 15%).


Step 5: Determine discount scope

Select the scope based on bundling analysis:

  • CATEGORY (preferred): When analytics show a clear category with cross-sell potential — multiple products, high margin, complementary items. Target that category.
  • ITEMS: When specific complementary products are identified for bundling (max 5 productIds). Use when cross-sell pairs are specific rather than category-wide.
  • SITE: When the goal is store-wide multi-buy incentive. Less targeted but simpler.

Step 6: Convert category names to GUIDs (if CATEGORY scope)

If scope is CATEGORY, call getCategoryIds to convert category names to GUIDs.

  • Never use category names as scope IDs — always use the GUID.
  • Exclude the "All Products" system category.
  • Max 3 categoryIds per discount rule.

Step 7: Run guardrail checks

Run the pre-create guardrails in Create Discount Rule → "Guardrails" before creating the rule. Bundle discounts are especially prone to scope-overlap stacking (a customer buying 3 items in a category with both a bundle discount and a catalog-wide sale gets both) and coupon stacking — present any conflicts to the merchant and confirm.


Step 8: Create the discount rule with minItemQuantity condition

Endpoint: POST https://www.wixapis.com/ecom/v1/discount-rules

Request — Buy 2+ items from a category, get 15% off:

{
  "discountRule": {
    "name": "Buy 2+, Save 15% on Accessories",
    "active": true,
    "discounts": [
      {
        "discount": {
          "discountType": "PERCENTAGE",
          "percentage": 15
        },
        "scope": {
          "id": "accessories-category-guid",
          "type": "COLLECTION"
        }
      }
    ],
    "conditions": {
      "itemQuantityRange": {
        "from": 2
      }
    }
  }
}

Response:

{
  "discountRule": {
    "id": "d4e5f6a7-b8c9-0123-def0-234567890123",
    "revision": "1",
    "name": "Buy 2+, Save 15% on Accessories",
    "active": true,
    "discounts": [
      {
        "discount": {
          "discountType": "PERCENTAGE",
          "percentage": 15
        },
        "scope": {
          "id": "accessories-category-guid",
          "type": "COLLECTION"
        }
      }
    ],
    "conditions": {
      "itemQuantityRange": {
        "from": 2
      }
    }
  }
}

Request — Buy 3+ specific items, get 10% off:

{
  "discountRule": {
    "name": "Bundle 3 Best Sellers, Save 10%",
    "active": true,
    "discounts": [
      {
        "discount": {
          "discountType": "PERCENTAGE",
          "percentage": 10
        },
        "scope": {
          "id": "product-uuid-1",
          "type": "SPECIFIC_PRODUCTS"
        }
      },
      {
        "discount": {
          "discountType": "PERCENTAGE",
          "percentage": 10
        },
        "scope": {
          "id": "product-uuid-2",
          "type": "SPECIFIC_PRODUCTS"
        }
      },
      {
        "discount": {
          "discountType": "PERCENTAGE",
          "percentage": 10
        },
        "scope": {
          "id": "product-uuid-3",
          "type": "SPECIFIC_PRODUCTS"
        }
      }
    ],
    "conditions": {
      "itemQuantityRange": {
        "from": 3
      }
    }
  }
}

Save the returned id and revision for later management.


Step 9: Verify the rule is active

  1. Query discount rules to confirm the new rule exists and is active: true
  2. Verify the minItemQuantity condition is correctly set
  3. Report to the merchant:

    "Bundle discount is live: {discount}% off when buying {minItemQuantity}+ items from {scope description}. This encourages customers to explore more products and increases items per order."


Branching logic

Merchant intent Scope minItemQuantity Discount
"Encourage people to buy more" Determined by analytics 2-3 Margin-tiered
"Bundle accessories together" COLLECTION with category GUID 2 Margin-tiered
"Buy 3 get 20% off these products" (explicit) SPECIFIC_PRODUCTS with product GUIDs 3 (user override) 20% (user override)
"Multi-buy deal on everything" CATALOG (site-wide) 2 Margin-tiered
"Promote these 4 items as a set" SPECIFIC_PRODUCTS (max 5) 2-4 Margin-tiered

Error Handling

Error Cause Fix
DISCOUNT_RULE_NOT_FOUND Rule ID doesn't exist Re-query discount rules for current IDs
REVISION_MISMATCH Revision doesn't match Re-fetch rule for latest revision, then retry
Too few products in category Category has only 1 product — bundling not viable Switch to SITE scope or suggest a different category
Margin data unavailable No profit margin data in catalog Default to 10% discount
Category GUID not found Category name doesn't match any collection Re-query categories or fall back to SITE scope
Max items exceeded More than 5 productIds specified Reduce to top 5 by ordersCount or switch to CATEGORY scope

References

Source: SKILL.md on GitHub

1 warning1d4 checks · Risk SAFE
  • Gen Agent Trust Hub1d

    The wix-manage skill is an extensive collection of management recipes for Wix sites, covering business solutions such as eCommerce, Bookings, SEO, and site provisioning. It utilizes official Wix REST endpoints and incorporates robust safety patterns, including mandatory user confirmation for sensitive operations and careful validation of site data before mutation.

  • Socket1d

    No alerts

  • Snyk1d

    Risk: MEDIUM · 1 issue

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 4895cc9. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated yesterday
compatibility
Requires Wix REST API access (API key or OAuth).
  • wix
  • rest-api
  • ecommerce
  • bookings
  • cms
  • contacts
  • blog
  • domains
  • restaurants
  • site-configuration
  • api-integration

README badge

README badge for wix/skills/wix-manage

REST API operations for configuring Wix business solutions including stores, bookings, CMS, contacts, domains, and ecommerce. Routes to site setup, entity management (products, services, staff), bulk administrative operations, and server-to-server integrations across Wix's business app ecosystem.

Generated from the current SKILL.md.

Do I need API credentials to use these recipes?
Yes. The skill requires Wix REST API access via either an API key or OAuth token to execute any management operations.
Can I use these recipes to display data on my site frontend?
No. These recipes are for backend REST API operations only — site configuration, entity management, and administrative tasks. They do not cover frontend development or displaying data to users.
What business domains do these recipes cover?
The skill covers stores, bookings, payments, CMS, contacts, forms, media, apps, pricing plans, restaurants, rich content, sites, blogs, calendars, domains, and site properties.
Do these recipes handle OAuth authentication with external services like Google Calendar?
Yes. The external calendar integration recipe covers OAuth-based setup with Google Calendar, Microsoft Outlook, and Apple Calendar for bidirectional event sync.

Generated from the current SKILL.md. These answers refresh after source changes.