Promotions
In this guide you'll learn how to create and manage promotions for your products.
Overview
Promotions can be created for stores by suppliers. These can be time limited and offer different types of discount for product prices based on different conditions.
Promotion conditions
There are six different conditions that can be configured to determine which products a promotion applies to. A product must meet all of the defined conditions for the promotion to be applied.
Products
can be included by selecting their product identifiers.Variants
can be included by selecting their variant identifiers.Categories
can be selected to include all products within them.Brands
can be selected to include all products that match.Manufacturers
can be selected to include all products that match.Countries
can be selected to include all products that are sold in them.Currencies
can be selected to include all products that are priced in them.
Promotion actions
Amount off
An absolute discount from the price e.g. a discount of $100
.
Percentage off
A percentage discount from the price e.g. a discount of 20%
.
Fixed Amount
A fixed price to sell the product at e.g. $51.50
.
Promotion Resolution
Here is the logic for how prices are calculated:
- The system first fetches the base price for the product based on the quantity, country and currency of the buyer.
- If there are any promotions of type fixed_price, they are applied first. These promotions override the base price.
- If there are no fixed_price promotions, it applies percentage_off promotions first, and then amount_off promotions.
- percentage_off promotions are applied one after the other, each time reducing the running price by a certain percentage.
- amount_off promotions are applied one after the other, each time reducing the running price by a certain amount.
- If the running price becomes less than 0 after applying all promotions, it is set to 0.
- Finally, the method returns the base price and the final price after applying all promotions.
The order of application and the type of promotion (percentage off or amount off) can affect the final price.
Promotion Approvals
The B2B relationship is very different to the B2C relationship in that there is a need for auditability and approval of all price changes from procurement, including through promotions.

Guides
I am a supplier, how do I add a promotion for my client?
To create a promotion for a store:
Head over to the
Promotions
page then click+ New Promotion
to begin creating a new promotionSelect the Promotion Type from the options then click continue
Continue
.Choose a name, and optionally choose description, promotional message, promotion URL, start date and end date. If no start date is provided it will begin from the moment of creation. If no end date is provided it will continue indefinitely until edited or deleted.
Choose your client's store from the dropdown
Click
+ Add condition
then select the desired condition type. Select conditionality for every condition chosen type chosen. Finally, clickSave Condition
. Repeat to add more conditions.Click
Save
on the upper right part of the page to complete the promotion creation.
Promotion Type
Choose and configure the action for the promotion.

Fixed Price
Configure a fixed price to sell the product at e.g. £50
.

Percentage Off
Configure a percentage discount from the price e.g. a discount of 20%
.

Amount Off
Configure an absolute discount from the price e.g. a discount of £5
.

Promotion Conditions
You can configure one or more conditions for the promotion. To add your first condition, click + Add Condition
, then select the condition type.
Conditions can be either type include
(only selected items) or all
. To finish adding a condition, click Save Condition
.


Products
If type include is selected, you can search for specific products to include in your condition.

Categories
If type include
is selected, you can select specific categories to include in your condition.

Brands
You can enter and add specific brands to include in your condition.

Manufacturers
You can enter and add specific manufacturers to include in your condition.

Countries
If type include
is selected, you can select specific countries to include in your condition.

Currencies
If type include
is selected, you can select specific currencies to include in your condition.

How do I see if my promotions have been approved?
Navigate to the Promotions
page and find the desried promotion/s within the table. Here you can see the status of each promotion: Pending, Approved or Rejected.
Complex Pricing Models
If volume or graduated pricing models are selected, the currency must be selected, and then the table can be populated.
New rows/tiers can be added to the table by clicking + Add another tier
, and can be deleted with the trash icon.
For each row of a volume pricing model table, the last unit value refers to the inclusive cutoff quantity for that tier. Per unit is the price per unit for all units, if the total quantity falls within that tier, and flat amount is an optional additional price for that tier.
For each row of a graduated pricing model table, the last unit value refers to the inclusive cutoff quantity for that tier. Per unit is the price per unit for just the units within that tier, and flat amount is an optional additional price for that tier.
Create a Promotion with the API
Choosing the Store
The store ID must be provided in the request URL. To find the Store ID for a particular store, search for the store on the Stores
page.

Promotion Fields
When creating a promotion, you will be asked to provide certain information. Here is a description of each field:
- Name (required): This is the name of the promotion. It should be unique and descriptive, so that it's easy to identify.
- Description (optional): You can provide a brief description of the promotion. This can be helpful for your own reference or for other users who might need to understand the purpose of the promotion.
- Promotional Message (optional): You can provide a message for the user.
- Promotion URL (optional): A link to more information on the promotion if available
- Start Date (optional): If you want the promotion to be valid from a specific date, you can specify that date here. If you leave this field blank, the promotion will be valid from the time of creation.
- End Date (optional): If you want the promotion to be valid until a specific date, you can specify that date here. If you leave this field blank, the promotion will be valid indefinitely.
- Conditions (optional) If you want to specify certain conditions to include one or more products in the promotion, use this field.
- Actions (required) This is the action the promotion performs, e.g. 10% off, and must be populated.
https://api.axiomdata.io/api/suppliers/promotions/stores/:storeId
Examples
Amount off promotion
New promotion for store ID 1 with a discount of $10 for all products in category ID 2.
curl --location --request POST 'https://api.axiomdata.io/api/suppliers/promotions/stores/1' \
--data-raw '{
"name": "Promotion Name",
"description": "A description of the promotion",
"promotion_message": "Check out this promotion",
"promotion_url": "http:\/\/www.example.info",
"conditions": [
{
"categories": {
"type": "include",
"ids": [
2
]
}
}
],
"actions": {
"amount_off": [
{
"currency": "USD",
"unit_amount": 10,
"billing_scheme": "standard"
}
]
}
}'
Percentage off promotion
New promotion for store ID 1 with a discount of 10% for product identifiers product1
, product2
and product3
.
curl --location --request POST 'https://api.axiomdata.io/api/suppliers/promotions/stores/1' \
--data-raw '{
"name": "Promotion Name",
"description": "A description of the promotion",
"promotion_message": "Check out this promotion",
"promotion_url": "http:\/\/www.example.info",
"conditions": [
{
"products": {
"type": "include",
"ids": [
"product1",
"product2",
"product3"
]
}
}
],
"actions": {
"percentage_off": [
{
"percentage": "20",
"billing_scheme": "standard"
}
]
}
}'
Fixed amount promotion
New promotion for store ID 1 with a fixed price of $50 for variant identifier variant1
.
curl --location --request POST 'https://api.axiomdata.io/api/suppliers/promotions/stores/1' \
--data-raw '{
"name": "Promotion Name",
"description": "A description of the promotion",
"promotion_message": "Check out this promotion",
"promotion_url": "http:\/\/www.example.info",
"conditions": [
{
"products": {
"type": "include",
"ids": [
"variant1"
]
}
}
],
"actions": {
"fixed_price": [
{
"currency": "USD",
"unit_amount": 10,
"billing_scheme": "standard"
}
]
}
}'
Complex amount off promotion
Amount off promotion
New promotion for store ID 1 with a graduated discount for all products with a brand of Example
.
curl --location --request POST 'https://api.axiomdata.io/api/suppliers/promotions/stores/1' \
--data-raw '{
"name": "Promotion Name",
"description": "A description of the promotion",
"promotion_message": "Check out this promotion",
"promotion_url": "http:\/\/www.example.info",
"conditions": [
{
"brands": {
"type": "include",
"names": [
"Example"
]
}
}
],
"actions": {
"amount_off": [
{
"currency": "GBP",
"billing_scheme": "graduated",
"tiers": [
{
"up_to": 10,
"flat_amount": "5",
"unit_amount": "10"
},
{
"up_to": 100,
"flat_amount": "5",
"unit_amount": "20"
},
{
"up_to": 1000000000,
"flat_amount": "5",
"unit_amount": "25"
}
]
}
]
}
}'
Edit a Promotion
To edit a promotion, either click the row in the promotions table, or open the menu for the row and select Edit
.

Delete a Promotion
To delete a promotion, open the menu for the row and select Delete
.

Other Common Scenarios
Question | Answer |
---|---|
How do I change a promotion? | Click on a promotion in the promotions table to begin editing the promotion. Click Save once finished. |
How do I create a store specific promotion? | Promotions have to be created for a single store, the store operator will then be notified and must approve it. |
What if I don't provide an end date for the promotion? | The promotion will run indefinitely. |
- Overview
- Promotion conditions
- Promotion actions
- Amount off
- Percentage off
- Fixed Amount
- Promotion Resolution
- Promotion Approvals
- Guides
- I am a supplier, how do I add a promotion for my client?
- Promotion Type
- Fixed Price
- Percentage Off
- Amount Off
- Promotion Conditions
- Products
- Categories
- Brands
- Manufacturers
- Countries
- Currencies
- How do I see if my promotions have been approved?
- Complex Pricing Models
- Create a Promotion with the API
- Choosing the Store
- Promotion Fields
- Examples
- Amount off promotion
- Percentage off promotion
- Fixed amount promotion
- Complex amount off promotion
- Amount off promotion
- Edit a Promotion
- Delete a Promotion
- Other Common Scenarios