Creates a pricing plan.
The createPlan()
function returns a Promise that resolves to a newly-created pricing plan after is has successfully been created.
The passed plan
object must contain a pricing model. A pricing model can be one of the following:
Pricing plans created by this function are available to the site owner in the Pricing Plans section in the Dashboard.
This function requires elevated permissions and runs only on the backend and on dashboard pages.
function createPlan(plan: Plan): Promise<Plan>;
Information for the plan being created.
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!"
* }
* }
*/
This method doesn’t return any custom errors, but may return standard errors. Learn more about standard Wix errors.