Custom pricing guide
This feature is currently in Early Availability (EA) status. For more information, see GraphQL API policy.
By default, a product displays the list price that has been set by the developer in the product definition. This list price allows for revenue shares to be divided between all stakeholders: the developer, AppDirect, the marketplace owner, and resellers affiliated with the marketplace.
However, the list price is only a suggested price. Marketplace owners are free to mark it up to increase their own revenue share, or to reduce their own share in order to encourage sales of the product by offering a discount to their own customers and/or resellers.
The marketplace offers several mechanisms for offering such custom prices. For a given product edition, marketplace owners can create or set the following:
-
Marketplace Sale Price—The general price displayed on the marketplace.
-
Wholesale Price—The default price shown to reseller users only.
-
Reseller Company Wholesale Price—A customized price offered to a specific reseller or resellers.
-
Price books—Sets of customized product edition prices offered to specific customers, or to customers who belong to a specific segment.
You can set custom prices for individual components within a product edition pricing plan: flat fees, recurring fees, setup fee, price per unit, and so on.
This guide explains how to use the GraphQL API to set these custom prices.
When adjusting prices on the marketplace, remember that the marketplace owner bears responsibility for meeting financial obligations:
-
The difference between a custom price and the Developer List Price accrues to the marketplace owner. If the price is higher, the marketplace owner receives the extra amount; but if it is lower, that difference comes out of the marketplace owner's share.
-
It is the responsibility of the marketplace owner to remit any applicable taxes to the correct tax authorities.
Marketplace and Wholesale prices
In the marketplace UI, a Marketplace Manager can specify the Marketplace Sale Price and Wholesale Price for each product edition in the catalog. The GraphQL API offers this same function through a set of mutations. See Set Marketplace Prices for more information.
Similarly, a Reseller Manager can use the marketplace UI to set the Reseller Wholesale Price offered to Resellers for product editions, or use the GraphQL API to do so. See Set Reseller Wholesale Prices for more information.
Price books
The overall sequence of steps is as follows. See the topics for mutation examples:
Prerequisites
Before you create custom prices through the GraphQL API:
-
In the user interface, a Marketplace Manager must create an API client with the following settings:
-
Client Type: Web server application
-
Grant Types: Authorization Code and Password
-
Redirect URL(s):
/oauth2/redirect
andhttps://oauth.pstmn.io/v1/callback
-
Under Allowed scopes:
-
OpenID Connect scopes: ID Token and Basic user information
-
User-level scopes: Marketplace Manager, or Reseller Manager (to set Reseller Wholesale Price only)
-
-
-
Retrieve the ID of the product whose prices you want to customize. For example, use the products query (or the REST List all products API command) to list all products on the marketplace, and note the value of the
id
for the desired product. Alternatively, you can use the vendor ID with the productsByVendorId query (or REST List all products by vendor API command) to find products offered by a specific vendor. -
With the id, use the product query (or REST Retrieve a product API command) to retrieve the product details. Note the
uuid
value in theeditions
array. The edition UUID is known as thepricingPlanId
in the price book API. to retrieve the product details -
Similarly, use the accounts or accountByExternalId query (or REST List all companies API) to retrieve the UUIDs of the companies that will have custom prices for the product, and note the
uuid
values for those companies. -
The user who sends price book API requests must have the Marketplace Manager role (
ROLE_CHANNEL_ADMIN
scope).
Was this page helpful?
Tell us more…
Help us improve our content. Responses are anonymous.
Thanks
We appreciate your feedback!