Discounts
Are you looking to setup discounts and promotions for your B2B customers? The SparkLayer Discount Engine gives you a powerful way to customise promotions that also work alongside any B2B price list rules you have set up. It's a great way to offer incentives and rewards that can play an important part in helping increase sales and customer retention for your B2B business!
Want to try out discounts? Head over to our B2B Demo store and give it a go! Once signed in, add some products to your cart and use coupon code SAVE10 Looking to try SparkLayer for the first time? Speak to our team
SparkLayer currently supports the following range of discount configurations.
Item | Details |
---|---|
Discount Example |
|
How they are applied |
|
Specific requirements |
|
Eligibility |
|
Scheduling & timing |
|
Advanced Settings |
|
Combinations |
|
To get started with using discounts, please go to the Discounts section of the SparkLayer Dashboard. If you're viewing this for the first time, you can simply click "Create Discount" to start setting up a discount.
Once you begin adding discounts, you'll see an overview of all your discounts in one central location.
You can also quickly see any discount requirements you've set by mousing over the icons within the "Discount Requirements" column.
The Discount section will categorise your discounts by "Active" and "Inactive" allowing you to easily see which discounts can be used by your customers.
Type | Details |
---|---|
Active | These are discounts that:
|
Inactive | These are discounts that:
|
Discounts can be applied in one of two ways:
Method | Details |
---|---|
Automatic | The discount is automatically applied to the customer's order based on the configurations you've set (e.g. spend over $200 and get $50 off) |
Manual | The discount is applied when the customer enters a coupon code during the checkout process. If the discount is applicable, the rewards will be applied to the order (e.g. $10 off) |
Learn more about coupon codes You can learn more about how coupon codes work and what can be customised in our guide, Cart & Checkout
At this time, it is only possible to apply one discount at a time to a customer's order. If you have multiple discounts setup that are applicable to a customer, the first one shown within the discounts section will be applied.
Please note SparkLayer will soon support the ability to apply multiple discounts to a customer's order.
It's important to note that when a discount is set up that applies an "amount off an order", this will apply against the sub-total of the customer's B2B order.
In our example above, the sub-total is $200.00 and the discount is applied against this total (e.g. $100 off, 20% off). This total is "net" of tax and any applicable tax calculations will be applied during the final step of the checkout.
Please note Discounts will be applied to a customer's order regardless of which payment method is selected
If you're creating a new discount or editing an existing, you'll be presented with a range of options to customise how your discount works.
The Summary section allows you to set up the basic information for your discount.
Item | Details |
---|---|
Status | You can set a discount as enabled or disabled. If disabled, the discount cannot be applied to the customer's order |
Discount internal name | This is the name used for your internal purposes and only ever shown in the SparkLayer Dashboard |
Discount public name | This is the name shown to customers when the discount is applied to their order and shows in the My Cart Interface. |
You can optionally add a discount description that shows to your customers when a discount is successfully applied to their order.
It works by adding a special language string to your website that you can customise as required.
The Discount Type section allows you to specify how you want your discount to work. Based on the options you select, this will then allow you to set rewards and configurations as required. You can select from the following discount types:
Type | Details |
---|---|
Give an amount off an order | This will apply a discount that reduces the "sub-total" of the customer's B2B order, either by a percentage discount or a fixed amount discount |
Give a free product | This will apply a discount that adds a specific product to an order at 0.00 cost (free). |
Based on the discount type selected (see above), you can then specify the "Reward Type" you would like to apply to the customer's order.
Give an amount off an order
If you've selected "Give an amount off an order", you can then choose what type of reward to give the customer, with a choice between a percentage or fixed amount discount.
Please note the following on "Give an amount off an order"
- The discount reward will be applied against the sub-total of the order, exclusive of tax and shipping.
Give a free product
If you've selected "Give a free product", you can specify which product SKU you want to be added to the customer's order. Once added, this will then show at 0.00 cost (i.e. free) within their order.
Please note the following on "Give a free product"
- A valid SKU must be specified for it to apply to the customer's order
- When the customer is redeeming the free product, it must be a different product to what is already within the customer's order
Give a percentage off products
The "Give a percentage off products" reward type lets you specific specific SKUs you want to discount when the discount is applied. Simply enter the SKU and the percentage off and this will then reflect in the customer's order when they checkout.
Please note the following on "Give a percentage off products"
- You can have a maximum of 25 SKUs
Order rules let you set specific requirements that the customer must meet before the discount is applied.
Currently, SparkLayer supports the ability to set "Product Rules" that allow you to apply discounts based on the customer having specific product(s) within their order. To get started, click the "New Product Rule" button and then add the SKUs you'd like the discount to apply against.
Once you've specified the SKUs, you can then set the total quantity the customer must have before the discount applies. This quantity can apply to any combination of the SKUs you've entered. For example, you may have entered:
- SKU: abc
- SKU: xyz
- Required quantity of 2
The customer could meet the discount requirements with any of the following combinations:
- 2 x abc
- 2 x xyz
- 1 x abc and 1 x xyz
Please note the following on "Order Rules"
- Valid SKUs must be specified for the discount to apply to the customer's order
- You can have a maximum of 10 order rules
- You can have a maximum of 10 SKUs per order rule
By default, discounts will be applied to all customers however it's possible to restrict your discount to specific Customer Groups.
The Customer groups section lets you select which customer groups are applicable to your discount and will have the discount reward applied.
You can also select multiple customer groups if you'd like the discount to be used by more than one customer group.
If you want to set up a time-based discount, you can set a "Schedule" for the discount.
There are two dates that can be selected, both of which are optional:
Item | Details |
---|---|
Start date of discount | This is the date and time the discount will be applicable from |
Expire date of discount | This is the date and time the discount will expire |
Please note the following on time configurations
- The scheduling will use the timezone of your specific computer. For example, if you are based in Germany but you're setting up a discount for Canada, please be aware that you will need to change the date and time accordingly.
- Selecting a time of 00:00 will start the discount at the beginning of the date selected
- Selecting a time of 23:59 will start the discount at the end of the date selected
Coupon codes allow you to specify a unique code that the customer must enter in order to qualify for the discount reward. This is termed a "manual discount" in that the customer won't have the discount automatically applied by default, unless they manually add the coupon code.
To add a coupon code, you can simply type in your coupon code reference into the field below.
Once you've added a coupon code, this will then be required to apply the discount. When the customer then goes through the checkout, they can simply apply the coupon to their order. When the order comes through to your website, you'll then see the coupon codes used within the order's "Additional notes".
Please note the following on coupon codes
- Coupon codes will automatically be saved in uppercase. For example, if you type in Code-Abc, this will be saved as CODE-ABC
- You can save multiple coupon codes against a discount. For example, you may have the same discount promoted in different locations but you want to set up different codes. For example, you could add CODE-ABC and CODE-123
- On your website, the My Cart Interface will only allow the customer to apply a maximum of 3 coupon codes against an order. For example, if a customer has 3 coupons applied to their order and they add a 4th, the most recently added coupon will not be applied.
It's possible to set "order sub-total limits" that allow you to specify the sub-total rules the customer must meet before being able to qualify for the discount. For example, you may want the customer to reach a certain amount before they can qualify for a discount (e.g. spending over $400 and getting 5% off).
Once enabled, you'll see the option to enter a minimum and maximum sub-total.
Please note the following on order sub-total limits
- When setting this up, please bear in mind the discount is calculated based on the sub-total of the customer's order. The is the total without tax and shipping costs being added to the order.
Order item limits allow you to set requirements on how many items the customer must have in their order to qualify for the discount. There are two ways to define the order item limits:
Type | Details |
---|---|
Quantity across all line items | This is the total quantity of items within the customer's order across all products. For example, the customer may have: 1 x Red Shoe 5 x Blue Shoe 4 x Green Shoe SparkLayer would calculate this as a quantity of 10 |
Number of line items | This is the total unique items within the customer's order across all products. For example, the customer may have: 1 x Red Shoe 5 x Blue Shoe 4 x Green Shoe SparkLayer would calculate the number of line items as 3 |
For each option selected, you can then define the minimum and maximum number that the customer must have within their order to qualify.
The usage limits configuration lets you define how often a customer can qualify for the discount. For example, you may want to restrict the discount to only be used once by a customer, or a specific number of times.
Please note the following on usage limits
- The limit will apply to the specific customer placing the order and is applied against their specific customer record.
If you've set your discount to "Get an amount off an order" with a "Fixed amount discount", you can also specific the currency that the discount should be applicable to.
Please note the following on currency
- By default, this configuration will automatically set the currency as the "default" currency of your store (e.g. USD, GBP, EUR)
- If you have multiple currencies setup for your Price Lists which are then assigned to a customer, the currency must match the currency the customer is placing orders in.
By default, when you create a discount, it cannot be used in conjunction with other discounts and customers can only apply a maximum of one discount.
If you would prefer discounts to be used alongside others, you can enable this within the "Compatible discounts" section of the discount edit screen.
Once enabled, you can then select the discounts that are compatible by selecting them from the menu.
Please note the following on compatible discounts
- You can set the priority in which they apply against a customer's order by using the "Discount priorities" feature (see below).
By default, customers can apply a maximum of one discount to their order. If you have multiple discounts setup that are applicable to your customers, you may want to specify the order in which they get applied. This is particularly useful if you have multiple "competing" discounts and you need to ensure your customers have the right one applied.
When you have more than one discount setup, you'll see a Manage Priorities button within the Discounts section . To get started, click this button and you'll then see all discounts listed.
You can then simply drag the discounts up and down in the priority you'd like them to apply. When a customer then qualifies for a discount, it'll use the highest one in the list.
If you have discounts that aren't active (see above "Active versus Inactive"), you can also manage the priority of these within the list.
Please note You can also manage which discounts are compatible by editing a discount and going to "Compatible discounts" (see below).
If you'd like to update the text shown to customers in the My Cart Interface, you can update the default language strings on your store.
When a customer uses a discount, this will store a range of data against the order that will give you further details about the discount that has been applied. This data includes:
- The coupon codes applied
- The IDs/Handles of the discounts applied (discount slugs)
- The cost of the order pre discount
- The amount taken off by the discount
Please note: All monetary values are in the currency the customer used to place the order.
The discount data is stored in the "Additional Details" section of the Shopify Order. From the Shopify API this is called note_attributes and you'll see the following:
- B2B Discount Coupon Codes - a comma separated list of the coupon codes used. This is separate so you can easily view it at a glance
- sparkDiscountData - the rest of the discount data, stored in a JSON string including SKUs order, net pricing, and the internal "ID" of the discount.
If you need to access this data through code, you can use the Shopify API to access the order data (learn more).
Currently, there isn't built-in reporting with SparkLayer to analyse your discounts usage however, we have some recommended approaches that we have included below.
Shopify has a built in automation tool called Shopify Flow. Using Shopify Flow, it's possible to perform actions based on discounts being used by your B2B customers.
Our example Shopify flow works as follows:
An order is created by the customer (e.g. draft order)
The Flow detects if a discount has been applied by searching the "B2B Discount Data" field applied to an order. You'll see this when viewing an order in Shopify under "Additional details".
If the "B2B Discount Data" field includes a specific discount ID (within the discountSlugs data), it will then automatically add a tag to the order. In our example above, the discountSlugs is set to free-product-test and this subsequently adds a tag of b2b-free-product-test to the order.
You can find the ID of a discount within SparkLayer by editing a discount and viewing "Discount Handle (or ID)".
Once a tag has been added to a B2B order, within Shopify you can then easily segment order data by this. Either by going to the Analytics section or by filtering within the Orders section in Shopify
Get started with Shopify Flow You can download and edit our sample discount-specific Shopify flow here.
The SparkLayer discount system will be subject to many ongoing improvements, however please be aware of the following limitations currently.
Item | Description |
---|---|
Discount usage | At this time, it is only possible to apply a maximum of 4 discounts at a time to a customer's order. If you have multiple discounts setup that are applicable to a customer, you can use the "Discount Priority" feature to set the order. |
Collection-specific discounts | It is not possible to set up discounts based on items from a specific collection (i.e. "category). For example, 10% off items from the "Jewellery Collection". |
Tag-specific discounts | It is not possible to set up discounts based on products that have a specific tag. For example, 20% off for all products with tag xyz |
Payment-specific discounts | It is not possible to set discounts based on the payment methods the customer uses. For example, $10 if the customer pays by "Pay Online by Card" |
Applying a discount via a URL | It is not possible to apply a discount via the customer entering a URL. For example, $100 if visiting mystore.com/?discount=ABC |
By default, all plans benefit from our Discount functionality and there are some additional features that are available on our Growth plan and above. These include:
- Give a free product
- Give a percentage off products
- Order rules
- Usage limits
- Compatible discounts
The SparkLayer Discount Engine will be undergoing constant improvements and you can expect to see the following updates in due course.
Item | Details |
---|---|
Get an amount off shipping | It will be possible to apply discounts that apply to shipping costs. For example, spend over $100 and get free shipping. Available on: Pro plan and up |
Multiple rewards | It will be possible to allow customers to apply multiple rewards to an order. For example, spend over $1,000 and get 10% off and free shipping Available on: Pro plan and up |