createPlan( )


Creates a pricing plan. The specified plan object must contain a pricing model. A pricing model can be 1 of the following:

  • A subscription: A subscription with recurring payments and how often the plan occurs. Subscriptions can have free trial days.
  • A plan that doesn't renew: A single payment for a specific duration that doesn't renew.
  • An unlimited plan: A single payment for an unlimited amount of time (until canceled). Pricing plans are available to the Wix user in the Pricing Plans section in a site's dashboard.
Authentication

This function requires elevated permissions and runs only on the backend and on dashboard pages.

Permissions
Manage Pricing Plans
Learn more about app permissions.
Method Declaration
Copy
function createPlan(plan: Plan): Promise<Plan>;
Method Parameters
planPlanRequired

Information for the plan being created.

Returns
Return Type:Promise<Plan>
JavaScript
import { plans } from "wix-pricing-plans.v2"; /* Sample plan value: * { * allowFutureStartDate: true, * buyerCanCancel: true, * description: 'Fun content for our younger users', * formId: 'ee62cefa-bdc2-4b5d-baab-6faeef83cecb', * maxPurchasesPerBuyer: 1, * name: 'Junior', * perks: { * values: [ * 'Multiplayer', * 'Multiple devices', * 'No ads", * 'Unlimited access' * ] * }, * pricing: { * price: { * currency: 'USD', * value: '10.00" * }, * subscription: { * cycleCount: 12, * cycleDuration: { * count: 1, * unit: 'MONTH' * } * } * }, * public: true, * termsAndConditions: 'No sharing access with others!' * } */ export async function myCreatePlanFunction(plan) { try { const newPlan = await plans.createPlan(plan); const planId = newPlan._id; const pricingObject = newPlan.pricing; const perks = newPlan.perks; return newPlan; } catch (error) { console.error(error); // Handle the error } } /* Promise resolves to: * { * "_createdDate": "2024-01-21T07:06:06.993Z", * "_id": "046371ff-7e5d-4bdb-a01d-a00ff462bed8", * "_updatedDate": "2024-01-21T07:06:06.993Z", * "allowFutureStartDate": true, * "archived": false, * "buyerCanCancel": true, * "description": "Fun content for our younger users", * "formId": "ee62cefa-bdc2-4b5d-baab-6faeef83cecb", * "hasOrders": false, * "maxPurchasesPerBuyer": 1, * "name": "Junior", * "perks": { * "values": [ * "Multiplayer", * "Multiple devices", * "No ads", * "Unlimited access" * ] * }, * "pricing": { * "price": { * "currency": "USD", * "value": "10.00" * }, * "public": true, * "slug": "junior", * "subscription": { * "cycleCount": 12, * "cycleDuration": { * "count": 1, * "unit": "MONTH" * } * }, * "termsAndConditions": "No sharing access with others!" * } * } */
Errors
400Invalid Argument

There are 12 errors with this status code.

428Failed Precondition

There is 1 error with this status code.

This method may also return standard errors. Learn more about standard Wix errors.

Did this help?