borkoldocs

Selling

Discounts

Create discount codes and automatic promotions for your storefront.

View as Markdown

Discounts live under Webshop → Discounts. A discount is either a code the shopper types at checkout or an automatic promotion that applies on its own, and it can target the whole order, specific products, shipping, or work as a buy-X-get-Y deal.

The discounts list

The list shows 25 discounts per page with search (matches as you type), three filters, and a sortable Name column.

  • Method filter: All / Code / Automatic.
  • Type filter: All / Order / Products / Shipping / Buy X get Y.
  • Status filter: All / Active / Inactive. This filter only looks at the on/off flag, so filtering on Active can still return discounts whose badge shows Scheduled or Expired.
ColumnDescription
NameThe discount's name, linked to its edit page
MethodThe code itself (for code discounts) or "Automatic"
TypeOrder / Products / Shipping / Buy X get Y
Value10% for percent discounts, a money amount for fixed
UsageUses against the total limit, for example 3/100, or 3/∞ when unlimited
WindowThe start–end date window; an em-dash for a missing side
StatusDerived status badge (see below)

Discount status

The badge is derived from the discount's on/off flag and its date window:

StatusMeaning
ActiveSwitched on and inside (or without) a date window
ScheduledSwitched on, but the start date is in the future
ExpiredSwitched on, but the end date has passed
DisabledSwitched off

Bulk actions

Select rows with the checkboxes to use Activate, Deactivate, or Delete (destructive). Each asks for confirmation and reports the result as "{n} updated, {m} failed" with per-row failure reasons. Bulk Delete is the only way to delete a discount; there is no delete button on the edit form.

Create a discount

Click New discount. The form is grouped into cards; Create discount stays disabled until the requirements are met, with a hint explaining what is missing.

Basics

FieldDescription
NameRequired
MethodCode (shopper enters a code) or Automatic (applies on its own). Default: Code
CodeShown only for the Code method, required for it. Automatically uppercased as you type (for example SUMMER10)
ActiveSwitch, on by default

Value

FieldDescription
TypeOrder, Products, Shipping, or Buy X get Y. Default: Order
Value typePercent or Fixed amount tabs. Hidden for Shipping and Buy X get Y, which are always percent-based
PercentThe percentage, when value type is Percent
AmountThe fixed amount in major units (for example 10.50), when value type is Fixed amount

Two types behave specially:

  • Shipping has no value input at all: it is always free shipping. The form says so: "Free shipping — this discount waives the shipping cost in full."
  • Buy X get Y applies a percentage to the free/discounted items, defaulting to 100 ("Discount applied to each free item, 100% makes it free").

Targeting (Products and Buy X get Y only)

For Products discounts this card is called Targeting; for Buy X get Y it is titled Buy and defines what the customer must purchase.

FieldDescription
ProductsSearch-driven multi-select: type 2+ characters and pick from the results (name + SKU). Selected products appear as removable badges
CategoriesCheckbox tree of your category hierarchy (hidden when you have no categories)
Minimum buy quantityBuy X get Y only; how many qualifying items must be bought. Default 1

Leaving targeting empty makes a Products discount apply to the whole order.

Get (Buy X get Y only)

FieldDescription
Free/discounted productsWhich products the customer gets, using the same product picker
Get quantityHow many discounted items the customer receives. Default 1

The get quantity applies once per qualification: the engine divides the qualifying buy quantity in the cart by the minimum buy quantity (rounded down) and multiplies the get quantity by that number, capped at the quantity of the cheapest get line. Buy 2 get 1 with 6 qualifying items and 3 get items discounts all 3; with 5 qualifying items it discounts 2.

Conditions

FieldDescription
Minimum order amountOrder total required before the discount applies, in major units. Empty = no minimum
AudienceAll customers, B2B only, or B2C only. Default: All customers
Total usage limitMaximum total uses. Empty = unlimited
Usage limit per customerMaximum uses per customer. Empty = unlimited
Starts at / Ends atOptional date-time window
First order onlySwitch: restrict to a customer's first order
Customer groupsCheckboxes to restrict the discount to specific groups. This section only appears when the Customers module is available and at least one active group exists

Combinations

Three switches control whether this discount can stack with other discounts on the same order:

FieldDescription
Combine with order discountsDefault off
Combine with product discountsDefault off
Combine with shipping discountsDefault on

Click Create discount to save. On success you see the toast "Discount created." and return to the list. Validation problems appear under the matching field.

Edit a discount

Open a discount from the list. The edit page uses the identical form with everything pre-filled. Click Save changes; on success ("Discount saved.") you return to the list.