Discount promotions
How it works
Discount promotions are a marketing tool for getting new players and increasing sales.
Main features:
- Configure a discount for one or several items.
- Apply an unlimited number of discount promotions to one item.
- Create a catalog of items with automatic calculation of pricing for items. Methods for building a catalog return the
price
object for every item. This object contains prices for items with current discount and without them.
- json
"price": {
"amount": "2.3900000000000000",
"amount_without_discount": "2.9900000000000000",
"currency": "USD"
}
Restrictions:
- You can set the discount only in percentage value in the range from 1 to 99.
- You can’t apply regional restrictions to discount promotions.
You can set up promotions for any number of items. Apply an unlimited number of discount promotions to one item.
You can set up different types of promotions for a game or list of games: discounts, coupons, promo codes, and bonuses.
If several promotions are valid for a game or list of games at the time of purchase, discounts are applied to the item one by one. The order in which discounts are applied does not matter.
For example:
The price of a game key is $10. In Publisher Account, the following promotions have been created for the game keys:
- Black Friday discount promotion with a discount of 10% from November 4–30
- Sale discount promotion with a discount of 20% from November 15 – December 15
- promotion with a promo code for a 5% discount from November 4–30
If the game key is purchased on November 20, both discount promotions and a promotion with a promo code are valid.
The total cost of the key is then calculated as (($10 - 10%) - 20%) - 5% and will be $6.84.
User can see information about promotions:
- when viewing the game catalog
- when placing an order
If you use Site Builder to create your store, the game catalog displays the discount amount, the crossed out price without a discount, and the price with a discount.
If you create your own version of the store, implement the display of promotions in the catalog based on the data received in the Get games list method. In the response, you get the following information about promotions in addition to information about the game:
- title
- start and end date
- size of the discount for a promotion with the Discount type
- item price with and without a discount for a promotion with the Discount type
- bonus item for a promotion with the Bonus type
- json
{
"items": [
{
"sku": "game_1",
"name": "Game name",
"groups": [
{
"external_id": "all",
"name": "All games"
},
{
"external_id": "Xsolla",
"name": "Xsolla games"
}
],
"type": "unit",
"unit_type": "game",
"description": "Game description",
"image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
"attributes": {
"$ref": "../examples/client-attribute-game.yaml#/value"
},
"promotions": [],
"unit_items": [
{
"sku": "game_key_01",
"type": "game_key",
"is_free": false,
"price": {
"amount": "30.5",
"amount_without_discount": "30.5",
"currency": "USD"
},
"virtual_prices": [],
"can_be_bought": true,
"drm_name": "Steam",
"drm_sku": "steam",
"has_keys": true,
"is_pre_order": true,
"release_date": "2020-08-11T10:00:00+03:00"
},
{
"sku": "game_key_02",
"type": "game_key",
"is_free": false,
"price": {
"amount": "30.5",
"amount_without_discount": "30.5",
"currency": "USD"
},
"virtual_prices": [],
"can_be_bought": true,
"drm_name": "Origin",
"drm_sku": "origin",
"has_keys": false,
"is_pre_order": false,
"release_date": null
}
]
},
{
"sku": "game_2",
"name": "Game name",
"groups": [
{
"external_id": "all",
"name": "All games"
}
],
"type": "unit",
"unit_type": "game",
"description": "Game description",
"image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
"attributes": [
{
"external_id": "OS",
"name": "OS",
"values": [
{
"external_id": "9d5c5efb7c0f00a00fe4e3583f1215b0050bc723",
"value": "Windows"
}
]
}
],
"promotions": [],
"unit_items": [
{
"sku": "game_key_01",
"type": "game_key",
"is_free": false,
"price": {
"amount": "30.5",
"amount_without_discount": "30.5",
"currency": "USD"
},
"virtual_prices": [],
"can_be_bought": true,
"drm_name": "Steam",
"drm_sku": "steam",
"has_keys": false,
"is_pre_order": false,
"release_date": null
}
]
}
]
}
When placing an order, the following information is shown about the applied promotions:
- the result of applying a discount promotion:
- discount amount for the promotion
- crossed out price without discount
- discount price
- the result of applying the bonus promotion:
- bonus items
- Free value in the price line for bonus items
- the result of applying the promo code
- discount amount for the promo code
- crossed out price without discount
- discount price
- bonus items
- Free value in the price line for bonus items
How to get it
Set up discount campaign
You can set up discount campaigns in one of the following ways:- via Publisher Account
- via API methods
Set up via Publisher Account
If you set up discount promotions via Publisher Account, you have the following options:- Set up a discount with the integer percentage value.
- Set up discount promotions that are available for a limited time.
- Set up discounts that apply to one or more packages of game keys for specific platforms.
- Set up discounts with fractional values.
- Set up discounts with an unlimited time period.
- Edit discount promotions with an Active status.
You can use API methods to enhance your discount promotions configuration options.
- Go to Store > Promotions and rewards and click Create promotion in Publisher Account.
- Specify the required parameters:
- Enter the promotion title.
- Choose Discount as a promotion type.
- Decide the discount amount.
- Choose the product type.
- Choose one or several items that will have a discount.
- Click Next.
- You can limit number of times one user can use promotion. To set it up, on the Condition and limit page, set Limit number of times one user can use promotion to On and specify the limit.
- To set up personalized promotions, set Promotion for only specific users to On and follow this instruction.
- Click Next.
- Set the campaign start and end dates.
- Click Next.
- Check the settings and click Save and exit.
- To activate a promotion:
- Find the promotion in your promotions catalog.
- Click the ••• menu button and select Edit promotion.
- In the upper right corner, open the drop-down menu and choose Activate promotion.
Set up via API methods
To work with discount promotions, you can use the methods from the Discount subsection from the Promotions method group.
To create the promotion via API methods:
- Call the Create discount promotion for item method with required parameters.
- Call the Update item promotion method with the
“is_enabled”:true
parameter to activate the promotion.
To edit the promotion via an API, call the Update item promotion method with new promotion parameters. You can also edit the promotion that has the
When creating or editing a discount promotion via API methods, you can also:
- Configure a discount to all items in the project. Pass the
“items”:null
parameter to Create discount promotion for item or Update item promotion methods.
- json
"items": null
- Configure a discount for physical goods. Pass an array with SKUs of physical goods to Create discount promotion for item or Update item promotion methods.
- json
"items": [{
“sku”: “strw2030”
}, {
“sku”: “strw4060”
}, {
“sku”: “cupred200”
}
]
- Configure a discount with the fraction percentage value. Pass the
discount.percent
parameter with a fraction discount to Create discount promotion for item or Update item promotion methods.
- json
"discount": {
“percent”: ”49.9”
}
- Configure a discount for items of different types. Pass an array with SKUs of required items to Create discount promotion for item or Update item promotion methods.
- json
"items": [{
“sku”: “storm_shield”
}, {
“sku”: “heaven_crystals_pack_x500”
},{
“sku”: “strw2030”
}
]
- Configure a discount for definite DRMs of the game. Pass an array with SKUs of required DRMs to Create discount promotion for item or Update item promotion methods.
- json
"items": [{
“sku”: “brilliant_game_sku_steam”
}
]
- Configure discount promotion that doesn’t have a specified time period. Pass the
“date_end”:null
parameter to Create discount promotion for item or Update item promotion methods.
- json
“date_end”: null
- Set up promotion for first-time buyers. For this, pass in the Create discount promotion for item for item API or in the Update item promotion API an object in array
attribute_conditions
:
- json
"attribute_conditions": [
{
"attribute": "has_purchase",
"operator": "eq",
"value": "0",
"type": "number"
}
],
"limits": {
"per_user": 1
}
Customize conditions of a discount promotion
You can set up a discount that is applied only if some conditions are met. For example:- discount that is applied to a definite sum of a cart
- discount that is applied only if the cart has enough items
- discount on one item if users buy another item
Found a typo or other text error? Select the text and press Ctrl+Enter.