Skip to main content
Wingback.js pricing module dynamically renders pricing pages to let new customers choose the plan to buy and sign up with your services.

1. Creating a Pricing Page

Before displaying a pricing page you have to create it from the pricing pages option of Wingback’s app portal. To create a pricing page you’ll have to enter a name, a slug and select at least one plan. In the pricing pages editor you will be able to select the plans to offer, edit the name of the pricing page, specify a custom callback url, and set more options that will determine how the pricing page will be displayed. Pricing Page Creation in the Wingback Application The pricing page slug si composed of your wb_customer slug and the pricing page slug, separated by a forward slash, e.g. MY_COMPANY/BASIC_PRICING. It uniquely identifies the pricing page, and you will need it to tell the pricing module which pricing page to display. If you don’t remember it you can go to the pricing editor and click on the slug to copy it: Copying the Pricing Page Slug from Wingback Application The Callback url is where the customer will be redirected after he chooses to buy a plan. If not specified, customer will be redirected to Wingback’s signup page.

2. Adding a dynamic Pricing Page to your website

To integrate the pricing page into your own website you need to include the Wingback.js library and call the Wingback.pricing.render function, passing as parameter either a CSS selector (e.g. #pricing) or a DOM element where the pricing page should be rendered, and the pricing page slug. A minimal example would look like this:
index.html
You can also display a pricing page without any integration task on your part by just navigating to https://billing.wingback.com/pricing/[wb_customer_slug]/[pricing_page_slug] For example, if you navigate to https://billing.demo.wingback.com/pricing/BETTERBUTTONS/BB_PRICING you’ll see the following: Sharing a Link to your Dynamic Pricing Page Take into account that this it not just a preview, it’s a valid and live pricing page. You can share it with any potential customer and he’ll be able to chose the plan, enter the units he wants to buy, his payment method and billing information, and he’ll sign up to your services. If you need a quick way to let someone buy your services, this is an easy and valid alternative.

4. Signing up a New Customer

After the customer clicks on the “Choose plan” button he’ll be redirected to the signup form. There he’ll be able to select the units to buy, enter the payment method and billing information, and buy the plan.
You can specify a different callback in the pricing page editor to redirect the user to your own signup page.
New Customer Signup form After the customer completes the information and clicks the Buy button, he’ll be redirected to the Billing Portal, where he’ll be able to manage his contract. Customer Billing Portal showing the recently signed up contract

5. Wingback.pricing.render parameters

The Wingback.pricing.render method accepts the following parameters:
HTMLElement | string
required
The dom element or the id of the container where the pricing table will be rendered.
string
required
The slug of the pricing table you created in the Wingback application (e.g. ‘COMPANY_SLUG/PRICING_SLUG’).
object
A set of options to customize the rendering of the pricing page.

6. Customizing the Pricing Page appearance

The generated pricing page provides the following style classes structure to let you customize the appearance of the pricing page using css selectors:
This detailed CSS selector structure gives you unprecedented level of control to completely customize each pricing page component to your needs, just by applying custom CSS rules targeting the specific element you want to customize. Wingback.js pricing also generates specific class names for plans (using the plan slug and the plan name) and features (using the plan feature) to let you target a specific plan. For example, given a plan named ‘Enterprise Cloud-Hosted Edition’ with a slug ‘PP123456789’ you would get the following clases:
Which will allow you to target that specific plan and the elements within it by slug or by name. Accordingly, if you have a feature with the slug ‘SUPPORT_CALL’ you would get the following clases: