Skip to content

Discounts

Steps for

Discounts sit on top of price lists, so you can run a promotion without changing anyone's prices. To try them as a customer, sign in to our B2B demo store (opens in a new tab), add some products to your cart and use the coupon code SAVE10. New to SparkLayer? Speak to our team (opens in a new tab).

How discounts work

Every discount has three parts:

  • A type and reward: what the customer gets, such as 20% off the order or 5% off 24 or more units.
  • Requirements: who qualifies and when, such as a customer group, a date range, a minimum spend or a coupon code.
  • How it's applied: automatically, or when the customer enters a coupon code.
How a discount is applied to an order

Customer builds a cart

Signed in, with their B2B prices
(this flows forward)

Requirements checked

Group, dates, coupon, order limits
(this flows forward)

Reward applied

To the net sub-total, before tax and shipping
(this flows forward)

Order placed

With the discount details saved on the order
How it's appliedWhat happens
AutomaticSparkLayer applies the discount when the order meets the requirements you've set, for example spend over $1,000 and get $100 off.
Coupon codeSparkLayer applies the discount when the customer enters a coupon code in the My Cart Interface. See Cart and checkout for what you can customise.

What a discount is calculated on

An amount off an order comes off the order's sub-total, which is net of tax and excludes shipping. For example, if the sub-total is $200.00 and the discount is $100 off, the cart shows "Discounts applied -$100". Tax is calculated in the final step of checkout.

Discounts apply whichever payment method the customer chooses. On Shopify, to give a discount for one payment method, add a payment method rule. Those discounts apply after all your other discounts, whatever their Can be used with setting.

How many discounts apply to an order

By default, only one discount applies to an order. If several qualify, the one highest in your priority order applies. To change the order, go to Pricing,Discounts (opens in your SparkLayer Dashboard in a new tab), click Manage priorities, move the discounts and click Save. The button shows once you have 2 or more discounts. To let a discount be used alongside others, turn on its Compatible discounts requirement (see Allow discounts to be combined).

Discount types

Each discount has one type, which decides the reward the customer gets.

TypeWhat it gives
Give an amount off an orderA percentage or fixed amount off the order's sub-total. This is the default.
Give a free productAdds a product to the order at no cost.
Give a percentage off productsA percentage off specific products.
Give a shipping rewardMoney off shipping, or a fixed shipping charge. Only available if you use SparkLayer shipping rules.
Advanced requirements and rewardsOne or more rewards when the cart matches filters you set on SKUs or product data.
Advanced free productsOne or more free products when the cart meets requirements you set, such as "buy one get one free".

Create a discount

Try itPricing > Discounts
Guided tour

Pricing > Discounts

Walk through a working copy of Pricing > Discounts, step by step. Nothing you do here changes your store.

  1. Go to Pricing,Discounts (opens in your SparkLayer Dashboard in a new tab) and click Create discount, or click a ready-made discount to start from it.
  2. Under Summary, leave Enable this discount on.
  3. Enter a Discount internal name (for you), a Discount handle (or ID) (a short unique ID, such as vip-20-off) and a Discount public name (what customers see). See Summary settings.
  4. Under Type, choose a discount type. The Reward card changes to match.
  5. Set up the reward. See the section for your type below.
  6. Under Requirements, tick any requirements you need, such as Coupon codes or Customer groups. See Limit who can use a discount and when.
  7. Click Save in the save bar.

To change a discount later, click its name at Pricing,Discounts (opens in your SparkLayer Dashboard in a new tab), make your changes and click Save.

Summary settings

SettingWhat it does
Enable this discountTurns the discount on or off. A discount is only active when it's enabled and today falls within its schedule.
Discount internal nameA name for your own use. Only visible to you.
Discount handle (or ID)Identifies the discount when an order is placed. It appears in the order's discount data (discountSlugs).
Discount public nameShown to buyers when the discount applies to their order, for example "20% off your first B2B order".

To show customers a longer description under the public name, your developer can add one: see Show customers a description.

Give an amount off an order

  1. Create a discount and choose Give an amount off an order under Type.
  2. Under Reward, choose Percentage discount (e.g. 10% off) or Fixed amount discount (e.g. US$100 off).
  3. Enter the Percentage off (between 1 and 100) or the Amount off.

The reward is applied to the order's sub-total, excluding tax and shipping ("net"). For a fixed amount, check the currency requirement.

Set up volume tiers

Volume tiers give more off as the quantity goes up, for example 5% off 24 to 95 units and 10% off 96 or more. A discount has one reward level and one threshold, so each tier is its own discount.

To count every item in the order (Starter plan and above):

  1. Create a discount and choose Give an amount off an order under Type.
  2. Under Reward, choose Percentage discount (e.g. 10% off) and enter the Percentage off, for example 5.
  3. Under Requirements, tick Order item limits and choose Quantity across all line items.
  4. Enter 24 in Require at least and 96 in Up to. Up to isn't included, so this covers 24 to 95 units.
  5. Save the discount, then create one for the next tier: 10 in Percentage off, 96 in Require at least and nothing in Up to.

The ranges meet, so only one tier applies to an order. The percentage comes off the whole order.

To count and discount only some products, set the threshold on the products instead:

  • Up to 10 SKUs (Growth plan): Choose Give a percentage off products and add each SKU with its Percentage off. Under Rules, click New, add the SKUs and enter the Required quantity across all SKUs.
  • A product range (Pro plan): Choose Advanced requirements and rewards. Under Advanced requirements, click Add, choose a field such as Shopify Tags with Equals, enter the tag and the Quantity. Under Advanced rewards, click Requirements and enter the Percentage off. The reward covers every unit that matches the filter.

Click Save on each rule, filter or reward before you save the discount. These thresholds have no upper limit, so an order of 96 units qualifies for the 24+ tier and the 96+ tier, and only one applies. Put the biggest tier first with Manage priorities: see How many discounts apply to an order.

A tier counts units across every product the discount covers, not per product. For tiers that count each product on its own, and that show on product pages, use quantity pricing in a price list. To combine discounts with quantity pricing and pack sizes, follow Run volume pricing and promotions for trade customers.

Give a free product, products off or a shipping reward

Set up these types the same way: choose the type under Type, then set up the reward.

TypeWhat you set
Give a free productThe SKU of the product to add to the cart at no cost. It must be a valid SKU, and a different product from those already in the order. It also needs a price on the customer's price lists, or it shows as Unavailable.
Give a percentage off productsThe SKUs to discount, and the percentage off each, up to 25 SKUs. You add them one at a time: there's no CSV import. For more products, use Advanced requirements and rewards (Pro plan) or a price list.
Give a shipping rewardThe shipping method, and a percentage off, a fixed amount off, or a fixed charge. The amount is net of tax.
Advanced requirements and rewardsUnder Advanced requirements, the filters the cart must match, on SKU or a product field, each with a Quantity. Under Advanced rewards, add Subtotal, Shipping, Requirements (the products that match the filters) or Cart lines rewards. With 2 or more rewards, choose whether to apply them all, or only the lowest or highest value.
Advanced free productsThe requirements the cart must meet, the free products and quantities, and whether they're added once, every time the requirements are met, or up to a limit.

Restrict a discount to certain products

Use a rule to require certain SKUs in the order (Growth plan and above). Under Rules, click New, add up to 10 SKUs, enter the Required quantity across all SKUs and click Save. A discount can have up to 10 rules, and the order must meet all of them. A rule decides whether the discount applies, not which products it takes money off: to discount only those products, use Give a percentage off products.

For a product range or category, use Advanced requirements and rewards (Pro plan). Give every product in the range the same tag in your store, such as dog-toy, and filter on Shopify Tags, or filter on Shopify Vendor. Wix has Wix Tags and Wix Vendor, and BigCommerce has fields such as BigCommerce Brand ID and BigCommerce Category IDs. On Magento and WooCommerce, filter on SKU. Discounts can't match collections, so tag the products instead.

A tag filter has no limit on how many products it covers. For a fixed lower price on many products, a price list is usually simpler: it has no SKU limit, takes a CSV upload, and shows the price on product pages.

Limit who can use a discount and when

Requirements decide who gets a discount and when. A discount only applies when every requirement you've turned on is met.

The Requirements card lists 8 requirements, plus Currency when the discount needs it. Tick a requirement to turn it on, then set it up underneath.

RequirementDescription on screenSettings
Coupon codesRequire a coupon code to use this discountAdd a coupon code, then Add coupon
Customer groupsLimit discount to specific customer groupsThe Customer groups to include
SchedulingLimit the discount to a specific date rangeStart date and Expiry date (optional)
Order sub-total limitsRequire a minimum or maximum order sub-totalMinimum order sub-total and Maximum order sub-total
Order item limitsRequire a minimum or maximum number of itemsHow order quantities should be determined, Require at least and Up to
Usage limitsLimit number of uses per customerMaximum uses per customer
Exclude customersExclude specific customers from this discountThe Excluded customers
Compatible discountsLet this discount be used alongside othersThe discounts it Can be used with
CurrencyThe customer must be placing an order in the selected currency.The Currency. Shown only for a fixed amount or sub-total limits, and always on. See Set the discount currency

Require a coupon code

A coupon code makes a discount manual: it isn't applied until the customer enters the code.

  1. Tick Coupon codes.
  2. Enter the code under Add a coupon code and click Add coupon. Add more codes the same way. Click × on a code to remove it.

With a coupon, the customer clicks Discounts & codes in the cart or the Order Summary, enters the code and clicks Apply (see My Cart). When the order reaches your store, the coupon codes used are in the order's additional notes (see See discount details on an order).

  • Coupon codes are saved in capitals. For example, Code-Abc is saved as CODE-ABC.
  • You can save several coupon codes against one discount, for example CODE-ABC and CODE-123, to promote the same discount in different places.
  • The My Cart Interface accepts up to 3 coupon codes per order. If a customer has 3 coupons applied and adds a 4th, the 4th isn't applied.

Limit a discount to customer groups

By default, a discount applies to all customers. To restrict it to some customer groups:

  1. Tick Customer groups.
  2. Tick one or more groups. Only these groups get the discount.

To apply the discount to everyone again, untick Customer groups.

Schedule a discount

  1. Tick Scheduling.
  2. Choose a Start date and, if the discount should end, an Expiry date (optional), each with a time.
  • The dates use the time zone shown under them, for example Europe/London. For customers in another time zone, adjust the dates and times to match.
  • A time of 00:00 means the start of the selected date, and 23:59 the end.

Set minimum or maximum order requirements

Order sub-total limits set the spend needed to qualify, for example spend over $400 and get 5% off.

  1. Tick Order sub-total limits.
  2. Enter a Minimum order sub-total, a Maximum order sub-total, or both.

The discount applies when the order's sub-total (net of tax and shipping) is between these amounts. A maximum of 100 covers orders up to 99.99.

The amounts aren't converted between currencies. A discount with sub-total limits belongs to one currency, and only applies to customers ordering in it. If you sell in more than one currency, create one discount for each.

To give more off bigger orders without the discounts overlapping, make the ranges meet. For example, 1.5% off with a minimum of 5,000 and a maximum of 10,000, then 3.5% off with a minimum of 10,000. There's no setting to apply only the highest discount.

Order item limits set how many items the order must contain.

  1. Tick Order item limits.
  2. Under How order quantities should be determined, choose an option (see below).
  3. Enter Require at least, Up to, or both.
OptionWhat it countsExample: 1 Red Shoe, 5 Blue Shoes, 4 Green Shoes
Quantity across all line itemsThe total quantity of items across all products.10
Number of line itemsThe number of different items (lines) in the order.3

Limit uses per customer

  1. Tick Usage limits.
  2. Enter the Maximum uses per customer, for example 1 for a one-time discount.

Once a customer has used the discount this many times, it stops applying to their orders.

Exclude customers

  1. Tick Exclude customers.
  2. Under Excluded customers, tick the customers who should never get this discount. Each is listed by name and company.

Set the discount currency

A discount with a fixed amount or sub-total limits belongs to one currency. Currency appears under Requirements automatically, is always on, and starts on your store's currency.

  1. Under Currency, choose the currency, for example GBP.

The discount only applies to customers ordering in this currency. If you sell in several currencies, create one discount for each.

A percentage discount with no sub-total limits has no Currency requirement, so it applies in every currency.

Allow discounts to be combined

  1. Tick Compatible discounts.
  2. Under Can be used with, tick the discounts that can be used alongside this one in the same order. If you don't tick any, it can be combined with any discount.

Once your discounts are live, you manage them from the Discounts screen.

The Discounts screen

Pricing,Discounts (opens in your SparkLayer Dashboard in a new tab) lists your discounts, with Create discount at the top.

ColumnWhat it shows
DiscountThe discount's name, with a short description underneath, such as "Code TRADE10: 10% off". Click it to edit the discount.
TypeThe discount's type, such as Give an amount off an order.
Customer groupsThe groups the discount is limited to, or All.
StatusActive or Paused.
UsesHow many times the discount has been used.

With no discounts yet, the screen offers two ready-made discounts you can edit before saving: 20% off with coupon code 20-OFF and $100 off orders over $1,000.

Pause or delete a discount

To stop a discount for now, pause it; to remove it for good, delete it. Open the discount from Pricing,Discounts (opens in your SparkLayer Dashboard in a new tab) and use More actions at the top of the page:

ActionWhat happens
Pause discountStops the discount applying. Its status changes to Paused. Click Turn on discount to start it again.
Delete discountBuyers stop getting it straight away. Orders that already used it keep their discount. This can't be undone. Confirm with Delete discount.

See discount details on an order

When a customer uses a discount, SparkLayer saves details of it on the order:

  • The coupon codes applied.
  • The handles (IDs) of the discounts applied.
  • The order's value before the discount.
  • The amount taken off by the discount.

All amounts are in the currency the customer ordered in.

On the Shopify order, a SparkLayer discount shows as lower line item prices, not as a separate order-level discount.

The details are in the Additional details section of the Shopify order. You'll see:

  • B2B Discount Coupon Codes: a comma-separated list of the coupon codes used, kept separate so you can see it at a glance.
  • B2B Discount Data: the rest of the discount data, including the SKUs ordered, net pricing and the internal ID of the discount.
Discount data for your developer

In the Shopify API, the details are in note_attributes, and the discount data is a JSON string. For example:

{"subTotalPreDiscount":{"net":"10.00"},"subTotalDiscount":{"net":"5.00"},"lineItemDiscounts":[{"preDiscount":{"net":"10.00"},"discount":{"net":"5.00"},"sku":"t-shirt","itemKey":"73199196ee530866c9a5db11f50c1442"}],"discountSlugs":["50-off"]}

To read this data with code, use the Shopify API (see the Shopify Order API reference (opens in a new tab)).

Report on discount usage

SparkLayer doesn't have built-in reporting on discount usage.

Shopify only

On Shopify, use Shopify Flow (opens in a new tab), Shopify's automation tool, to tag orders that use a discount and then report on those tags. Download our example Shopify flow (opens in a new tab) and edit it to match your discounts. It works like this:

  1. An order is created by the customer (for example a draft order). The flow starts on Draft order created.
  2. The flow checks for a discount by looking at the B2B Discount Data field on the order (shown under Additional details in Shopify). It checks that a custom attribute key equals "B2B Discount Data" and its value includes a specific discount ID from discountSlugs, for example free-product-test.
  3. The flow tags the order, for example with b2b-free-product-test, using Add draft order tags.
  4. You report on the tag: filter the Orders section (opens in a new tab) by the tag, or use the Analytics section (opens in a new tab) in Shopify.

To find a discount's ID, edit the discount in SparkLayer and look at Discount handle (or ID).

Limitations

ItemLimitation
Combining discountsBy default, a customer can only apply one discount to an order. Use Compatible discounts to let discounts be used together.
Payment-specific discountsYou can't base a discount on the payment method, for example $10 off if the customer pays by card.
Discounts from a URLYou can't apply a discount from a link, for example $100 off for visiting mystore.com/?discount=ABC.
Platform discountsYour platform's own discounts can't be used alongside SparkLayer (see Compare platforms).
Number of discountsUp to 100 discounts in your account, and up to 25 applied to one cart.
SKUs in a discountUp to 25 SKUs in a discount that lists SKUs, and up to 10 in a rule. Use Advanced requirements and rewards (Pro plan) with a tag filter for more.

Plan availability

Discounts start on the Starter plan. See Plans and features and SparkLayer pricing (opens in a new tab).

PlanWhat it adds
StarterGive an amount off an order, with Coupon codes, Customer groups, Scheduling, Order sub-total limits and Order item limits.
GrowthGive a free product, Give a percentage off products, Give a shipping reward, Rules, Usage limits, Exclude customers and Compatible discounts.
ProAdvanced requirements and rewards and Advanced free products, including filters on product tags and vendors.

If your plan doesn't include something:

  • On Basic, the Discounts screen shows Reward bigger orders with a button to start Starter, and there's no Create discount.
  • On Starter and Growth, a type that needs a higher plan is greyed out with Upgrade to Growth or Upgrade to Pro.
  • On Starter, Rules, Usage limits, Exclude customers and Compatible discounts show the plans that include them, with an upgrade button.

See Your plan and usage for how trials work.

For developers

These changes are made in your SparkLayer Core Script, so they're usually done by your developer or agency. You don't need them to set up or run discounts.

Show customers a description

A discount description can be shown to customers when a discount is applied to their order, under its public name. For example: "For this month only, all customers will get 20% off their first order!" Add a language string of discount.[handle].description to your Core Script, replacing [handle] with the discount's Discount handle (or ID). See Languages and international for how language strings work.

Core Script
/* [handle] should be replaced with the discount's handle,
shown in the discount's Summary card. */
translations: {
  en: {
    "discount.[handle].description": "Include a description here",
  }
},

Change the cart text

To change the discount text customers see in the My Cart Interface, such as the coupon field's placeholder or the success message, add these language strings to your Core Script and edit the values. See Languages and international.

Core Script
translations: {
  en: {
     "cart.checkout.coupons.apply": "Apply",
     "cart.checkout.coupons.input-placeholder": "Enter discount code here and click 'Apply'",
     "cart.checkout.coupons.not-found": "Discount code ''{couponCode}'' not found",
     "cart.checkout.coupons.already-applied": "Discount code ''{couponCode}'' already applied",
     "cart.checkout.coupons.successful-apply": "You've successfully added discount code ''{couponCode}''!",
     "cart.checkout.coupons.max-reached": "You can only add a maximum of 3 discount codes",
     "cart.checkout.discount.cta": "Enter a discount here or view discounts",
     "cart.checkout.discount.success-message": "Discounts have successfully been applied to your order",
     "cart.checkout.discount.totals-row-text": "Discounts Applied",
     "cart.checkout.discount.no-of-discounts-applied": "{numberOf} {numberOf, plural, =1 {discount applied} other {discounts applied}}"
  }
},  

Troubleshooting and FAQs

Was this page helpful?

Last updated