Offering Volume Discounts
Volume discounting allows you to offer your buyers a special offer if they buy multiple licenses.
You can add bulk discounting to your Paddle checkout in a number of ways, depending on your requirements. While we don’t currently support defining discount tiers through the dashboard, the logic can be added directly to the checkout fairly simply using our Pay Link API. This API generates a unique checkout URL which can be displayed as an overlay with Paddle.js using the override parameter.
Server-side function
This approach defines a function in your server-side code that receives a request containing a quantity and returns a checkout URL with the quantity and discounted pricing applied.
First set your vendor ID and auth code and retrieve the required quantity, product ID and customer country from the post parameters:
preparing...
You can retrieve the detected user location on the checkout page using our Localized Prices API and reading the country field from the response.
Having read the POST parameters, either set the base unit price of the product or fetch the dashboard price from your settings:
preparing...
Next, calculate the discount you wish to apply to each tier:
preparing...
Then, generate and return the Pay Link URL:
preparing...
Client-side function
A volume pricing setup can also be implemented client-side by pre-generating checkout override links at your required tiers:
preparing...
After collecting quantity, open the checkout for the correct volume tier:
preparing...
If you are using the client-side option, you should obfuscate all functions and variable names to protect your volume pricing code.
Multiple-currency volume pricing
Offering volume discounts with multiple currencies enabled may require more work. If you have set your product pricing to track the base currency then you can simply override the base currency when creating Pay Link URLs and other prices will also be adjusted accordingly.
If your local prices are all set independently, you will need to override all available currencies in the Pay Link API call.