Discounts
A discount code is a unique code that corresponds to a discount rate or rule inside of an e-commerce platform. A code is provided by a Shopper at checkout to activate the discount. This is a method often used to provide discounts to select groups and individuals, or to collect data regarding certain actions. These codes can be used as incentives and are often provided by merchants as part of a marketing campaign.
Discounts can also be referred to as promo codes, however, these are different from ‘promotions’.
Violet defines ‘promotions’ as automatic changes to the price of a cart based on preset rules. These are applied without the presence of a code. For example a “Retail Price” vs a “Sale Price”. Violet supports promotions according to this definition when using the basic checkout flow here.
How Discount Codes Work
Discount Code Creation
Discounts and discount codes are controlled by Merchants on their E-Commerce platforms. For a merchant to create a discount code, they need to take the following steps in their platform:
- Find the discount code / coupon area
- Some platforms put it under marketing
- Click on new discount code / coupon
- Some platforms call them price / cart rules
- Add all the rules and conditions for the discount code
- Define the discount code
- Save
- Provide the generated code to the user or channel
Getting the discount
If a discount code has been created by a Merchant, during checkout, the discount code is entered into a field usually marked as “discount” or “coupon code” by the shopper.
If this code is valid, the platform will automatically apply the discount to the order total which will be reflected in the price of the cart in Violet. The discount can be a percentage off the total purchase price, fixed dollar amount off the total purchase price, free shipping, etc.
When to use a Discount Code
1. Merchants provide a code to their shoppers
In this scenario, the Shopper has the code and they would enter this value into either the Merchants website or your experience. Violet ensures the discount codes that would work on their website will also work on in your app. This means your shoppers will not be incentivised to purchase from the merchant directly if they have a discount code.
2. Merchants provide a code to a partner or Channel for certain discounts
There may be a scenario in which you want to offer an agreed upon discount for certain products or rules in relationship with a merchant. One way to handle this is for the merchant to create a discount code with the appropriate rules, and provide it to you directly. This code would not be distributed to their shoppers as normal, but instead could be integrated into your code or distributed only to your users.
How to use a Discount Code with Violet
Discount codes can be added during cart creation ([POST]/checkout/cart
) or through an exclusive endpoint ([POST]/checkout/cart/:cart_id/discounts
) by providing the code
and merchant_id
. For more information, see our API Reference
Every discount code provided is validated against the platform to check for its existence, validity and to get the total discount amount if applicable.
Discount statuses
PENDING
- Discount added to cart, but not applied to merchant platform yetAPPLIED
- Discount added to cart, validated and applied to merchant platformINVALID
- Invalid discount in merchant platform, check order errors for detailsNOT_SUPPORTED
- Platform currently not supportedERROR
- Unexpected error applying discount, check order errors for detailsEXPIRED
- Discount previously applied that is no longer valid in the merchant platform
Supported Platforms
Platforms | Discount Code via API | Applied Immediately | (Re-) Checked During Cart Pricing |
---|---|---|---|
BigCommerce | ✅ | ✅ | ✅ |
Magento | ✅ | ✅ | ✅ |
WooCommerce | ✅ | Code is in PENDING state until cart is priced | ✅ |
ECWID | ✅ | Code is in PENDING state until cart is priced | ✅ |
Shopify* | ✅ | ✅ | ✅ |
Wix | ✅ | ✅ | ✅ |
*The following Shopify discount types are not currently supported:
- Buy X Get Y
- Customer Segments
- Once Per Customer
Potential Errors
Discount errors are not blocking. They are set to the error status along with an error message and will be removed during order submission if not fixed.
Invalid discounts
Discount codes not recognized by platforms are set as INVALID
, and an error message is added to the order.
Error sample:
Solutions:
- Ignore
INVALID
discounts and they will be removed from cart during submission. - Remove
INVALID
discounts and add a different discount code.
Multiple discounts
Most platforms supports only one discount code at a time, so for such platforms the discounts are set as INVALID
and an error message is added to the order.
Currently only WooCommerce supports multiple discount codes.
Error sample:
Solutions
- Ignore
INVALID
discounts and they will be removed from cart during submission. - Remove
INVALID
discounts and add a single discount code again.
Expired discounts
Discount codes that were previously applied but are not valid in the platform anymore are set to EXPIRED
and later removed from the order.
Example
- A valid discount code is added to cart, priced and set to
APPLIED
- This same discount code is disabled in the merchant platform for any reason
- Discount code reached usage limit
- Merchant changed rules and it doesn’t apply to cart anymore
- Merchant manually disabled it
- When cart is priced again, or during cart submission, Violet will check the discount codes again in the platform. If they no longer apply to cart, the discount is now considered
EXPIRED
- Finally, since discounts are non-blocking, any
EXPIRED
discount is removed from cart during submission
Solutions
- Ignore
INVALID
discounts and they will be removed from cart during submission. - Remove
INVALID
discounts and add a different discount code.
Unexpected error
In the case of an unexpected error, the discount is set to ERROR
and an error message is added to the order. The channel has the option to ignore it and continue the cart through checkout. If it is still present in the ERROR
state at the time of order submission, it will be removed.
Solutions
- Ignore
ERROR
discounts and they will be removed from cart during submission. - Remove
ERROR
discounts and add the discount code again.- If problem persists reach out to Violet.
Customer Restricted Discounts
Some discount codes may have customer limitations such as “Once Per Customer” or “New Customers Only”, etc. The external commerce platforms typically require an email address in order to determine if the discount code can be used by the current customer. For this reason it is recommended that a customer email address is available to provide to the external commerce platform when the discount code is being applied.
There are currently two ways to solve for this requirement.
Cart Level Email Address
Use the email address on the cart. If you apply a customers email address to a cart before you add the discount code that email address will be provided to the external commerce platform for code validation. This behavior also applies if you are adding the discount code on cart creation, so long as you also include a customers email address on cart creation.
Discount Level Email Address
Provide an email address directly with the discount code. When applying a discount code you can include a customer email address in the email
property of the discount object. When this property is populated it will take priority over any previously applied customer email address on the cart. Any value provided is limited to the discount itself and will not change the email address on the cart. This method is recommended if you use a catch-all email address to prevent abandoned cart emails until the point of order submission. See the following example for applying a customer email address with the discount code.
Was this page helpful?