Discounts & Offers

Discounts & Offers are powerful marketing strategies which can draw customers to your shop, increase short-term sales, move surplus stock, build loyalty, and so on.

In Dynamicweb Ecommerce there are two types of discounts:

  • Order discounts apply to and are triggered by orders
  • Product discounts apply to and are triggered by products

Both types of discounts are created and managed from the Ecommerce area, under the Discounts & Offers node (Figure 1.1). As you can see, this node contains several subnodes - this makes it possible to set permissions and limit access to discounts for backend users. 

Figure 1.1 The discounts node & list

As you can see, all existing discount of a particular type are listed under each node. You can right-click the list of column headers and add or remove columns.

Both types of discounts are created in the same manner and consist of the same types of properties:

  • A set of general properties
  • A set of discount properties
  • A set of triggers and restrictions

These properties can be combined in a multitude of ways to create various types of discounts - see a couple og examples below, or read more about the various discount properties below.

Please note

The Discounts & Offers feature is incredibly flexible and allows you to create very specific conditions for triggering discounts, but it is also super easy to create combinations which make no sense in the real world - or simply don't work at all. This is intentional, if only because flexibility also implies the flexibility to create something nonsensical.

For debugging purposes consider using the discount validation loop.

The section with general properties is used to define some basic properties of the discount, e.g. the name, a description, and to mark it as active and set a timespan during which is is applied (Figure 4.1).

Figure 4.1 General properties

The following properties are available:

#

Property

Used for

Comments

1

Name

-

Available i frontend

2

Description

-

Available i frontend

3

Campaign name, image & color

Associate the discount with a campaign name, an image, and a color.

Available i frontend

4

Active

Activate or deactivate the discount.

Inactive discounts will not be applied during checkout.

5

Assignable from product catalog

Check this to allow this discount to be applied from the product catalog.

 

6

Valid from & Valid to

Set a timespan during which the discount is applied.

 

7

Priority

Set a discount priority & toggle Stop further rules processing

Discounts with a priority are applied first – combine with the Stop further rules processing check to stop all other discounts with a lower priority - which means a higher priority number - from being applied

The section with Discount properties is used to define the type of discount and how it is applied (Figure 5.1).

Figure 5.1 The Discount section

A discount can be applied in three ways (1):

  • An Order Discount (Exclusive) is applied and calculated based on the order price BEFORE any other discounts have been applied
  • An Order Discount (Inclusive) is applied and calculated AFTER product discounts have been applied
  • A Product discount applies to products (and not the whole order)

There are six Discount Types (2):

Discount type

Effect

Comments

Amount

Subtracts a fixed amount from the price

 

Percentage

Subtracts a fixed percentage from the price

 

Product

Adds a specific product to an order free of charge

 

Free shipping

Cancels any shipping fees incurred for an order

Order discounts only

Amount from field

Subtracts a fixed amount from the price – amount is retrieved from the specified custom product field.

Product discounts only. Custom product field must be of the type decimal number.

Custom percentage discount

Custom amount discount

Variable discount percentages/amounts Assignable from frontend using the setdiscount cart command as a part of an cart management or order draft setup.

Assigning user must have impersonation rights to the user owning the cart.
Loyalty discount Convert loyalty points to currency when paying for an order Order discount only

Depending on the selected discount type, several additonal fields for controlling the discount are shown – these are detailed below.

Properties for Amount discounts:

Property

Used for

Comments

Amount

Enter an absolute amount to subtract from the price

 

Currency

Specify a currency for the amount being subtracted

 

Free shipping (3)

Include free shipping for eligible shipping methods

The shipping method must have the ’Allow free shipping’ checkbox checked

Usage per customer

Specifies how many times a user can use this discount

Based on user ID or email – a value of ’0’ means as many times as they want

Properties for Percentage discounts:

Property

Used for

Comments

Percentage

Enter a percentage to subtract

 

Apply to

Choose between applying the discount to All products, the Cheapest product, or the Most expensive product

Only order discounts

Only apply to products without a discount

Exclude products with another discount set

 

Limit discount amount

Specify a max value subtracted by this discount in each currency

 

Free shipping (3)

Include free shipping for eligible shipping methods

The shipping method must have the ’Allow free shipping’ checkbox checked

Usage per customer (4)

Specifies how many times a user can use this discount

Based on user ID or email – a value of ’0’ means as many times as they want

Properties for Product discounts:

Property

Used for

Comments

Product

Select a product to add to cart free of charge when this discount is triggered

 

Only apply to products without a discount

Exclude products with another discount set

 

Free shipping (3)

Include free shipping for eligible shipping methods

The shipping method must have the ’Allow free shipping’ checkbox checked

Usage per customer (4)

Specifies how many times a user can use this discount

Based on user ID or email – a value of ’0’ means as many times as they want

Properties for Free shipping discounts:

Property

Used for

Comments

Usage per customer (4)

Specifies how many times a user can use this discount

Based on user ID or email – a value of ’0’ means as many times as they want

Properties for Amount from field discounts:

Property

Used for

Comments

Custom field

Specify a custom field to retrieve the amount from

The custom field must be a product field of the type decimal number.

Usage per customer (4)

Specifies how many times a user can use this discount

Based on user ID or email – a value of ’0’ means as many times as they want

Finally three other properties can be set:

  • Free shipping (3) combines this discount with free shipping for all shipping methods marked as Eligible for free shipping in the fee settings
  • Usage per customer (4) limits this discount to a certain number of uses for each customer
  • Check for validation reason (5) adds this discount to a loop showing discounts which were not applied - which makes it possible to e.g. render a section with Buy for X more to get 10% off! and similar.

Below the discount properties, a set of properties are used to define when and how a discount is triggered (Figure 6.1).

Figure 6.1 Triggers & Restrictions

Discounts where nothing is configured apply to all products on a solution. This means that you must configure each discount in a manner so it only triggers when you want it to.

The following properties are used to define when a discount triggers – co-dependent properties are grouped together:

Restriction Group

Properties

Restriction

Comments

(1) Users and groups

User

A single user

 

 

User group

All users in a single user group

 

 

Customer number

All users with the specified customer number

 

(2) Total Price

Condition, Total Price, & Currency

Select a Condition, such as Equal to or Greater than, to combine with the Total Price property and the Currency property

The discount triggers for orders matching the condition & the total price specified – e.g. Greater than 100 USD.

(3) Product Catalog

Shop

All shops/a specific shop

 

 

Language

All ecommerce languages/a specific ecommerce language

 

 

Products and/or groups

The selected products and/or the products in the specified product groups

Only for product discounts

 

Excluded products and/or groups

Specifically NOT the specified products and/or products in the specified product groups

Only for product discounts

(4) Order

Context

Only applies to orders in the selected order context

 

 

Country

All countries/the selected country

Triggered by the delivery country, and if that's not available the customer country, and if that's not available the context country set in the website Ecommerce settings.

 

Shipping

All shipping methods/the selected shipping method

 

 

Payment

All payment methods/the selected payment method

 

(5) Product Quantity

Quantifier & Product Quantity

Select a quantifierAny product or Same product – and combine it with a quantity.

The discount triggers only when the product quantity of the quantifier is reached, e.g. 5 of the same product.

 

Check Apply discount only once if appropriate.

(6) Fields and Vouchers

Order field

Only triggers if a particular value is entered in the selected field.

Select a type of field – the Default Voucher Code Field or a product field.

 

Specify a value or a voucher list used to trigger the discount.

database

There is no database specific information for this subject.

EcomDiscount

Contains discount setup from the Ecommerce > Order Discounts node.

Field name Data type Length
DiscountId bigint 8
DiscountType int 4
DiscountName nvarchar 255
DiscountActive bit 1
DiscountValidFrom datetime 8
DiscountValidTo datetime 8
DiscountDiscountType int 4
DiscountAmount float 8
DiscountCurrencyCode nvarchar 3
DiscountPercentage float 8
DiscountProductId nvarchar 30
DiscountProductVariantId nvarchar 255
DiscountGroupId nvarchar 50
DiscountShopId nvarchar 255
DiscountLanguageId nvarchar 50
DiscountProductQuantification int 4
DiscountProductQuantity float 8
DiscountAccessUserId int 4
DiscountAccessUserGroupId int 4
DiscountAccessUserCustomerNumber nvarchar 255
DiscountCountryCode2 nvarchar 2
DiscountShippingId nvarchar 50
DiscountPaymentId nvarchar 50
DiscountOrderFieldName nvarchar 255
DiscountOrderFieldValue nvarchar Max
DiscountVoucherListId int 4
DiscountOrderTotalPriceCondition int 4
DiscountOrderTotalPrice float 8
DiscountApplyOnce bit 1
DiscountExcludedProductsAndGroups nvarchar Max
DiscountProductsAndGroups nvarchar Max
DiscountAssignableFromProducts bit 1
DiscountProductIdByDiscount nvarchar 30
DiscountProductVariantIdByDiscount nvarchar 255
DiscountDescription nvarchar Max
DiscountOrderContextId nvarchar 50
DiscountAmountProductFieldName nvarchar 255
DiscountApplyToProduct int 4
DiscountCampaignName nvarchar 255
DiscountCampaignImage nvarchar 255
DiscountCampaignColor nvarchar 50
DiscountCreatedDate datetime 8
DiscountUpdatedDate datetime 8
DiscountCreatedBy int 4
DiscountUpdatedBy int 4
DiscountOnlyApplyToNonDiscountedItems bit 1
DiscountStopFurtherProcessing bit 1
DiscountAddFreeShipping bit 1
DiscountUsePerCustomer int 4
DiscountPriority int 4
DiscountMaximumLimits nvarchar Max
DiscountExtenderType nvarchar 255
DiscountExtenderSettings nvarchar Max
DiscountOrderTotalPriceCurrencyCode nvarchar 3
DiscountCheckForValidationReason bit 1
DiscountLoyaltyPointsRate float 8
DiscountExternalId nvarchar 250
DiscountAmountIncludesVat bit 1

EcomDiscountTranslation

Contains data for discounts (DiscountTranslationDiscountId) and their translations (DiscountTranslationLanguageId).

Field name Data type Length
DiscountTranslationAutoId bigint 8
DiscountTranslationDiscountId bigint 8
DiscountTranslationLanguageId nvarchar 255
DiscountTranslationName nvarchar 255
DiscountTranslationDescription nvarchar Max
DiscountTranslationCampaignName nvarchar 255

EcomSalesDiscount

Contains setup data for sales discounts as defined in the Ecommerce -> Sales discounts node.

Field name Data type Length
SalesDiscountId nvarchar 50
SalesDiscountName nvarchar 255
SalesDiscountDiscountType nvarchar 255
SalesDiscountCustomersAndGroups nvarchar Max
SalesDiscountParameters nvarchar Max
SalesDiscountActive bit 1
SalesDiscountDescription nvarchar Max
SalesDiscountValueType nvarchar 50
SalesDiscountValueFixed float 8
SalesDiscountValuePercentage float 8
SalesDiscountValueProducts nvarchar Max
SalesDiscountDateFrom bigint 8
SalesDiscountDateTo bigint 8
SalesDiscountConvertedToNewFormat bit 1
SalesDiscountXMLParamsBackup nvarchar Max
SalesDiscountShop nvarchar 255
SalesDiscountCountries nvarchar Max
SalesDiscountAutoId int 4
SalesDiscountMinimumBasketSize float 8

EcomSalesDiscountCurrencies

Keeps track of which currencies (SalesDiscountCurrenciesCurrencyCode) a sales discount (SalesDiscountCurrenciesDiscountId) is valid for.

Field name Data type Length
SalesDiscountCurrenciesDiscountId nvarchar 50
SalesDiscountCurrenciesCurrencyCode nvarchar 3
SalesDiscountCurrenciesDiscountValue float 8
SalesDiscountCurrencyAutoId int 4

EcomSalesDiscountLanguages

Keeps track of which languages (SalesDiscountLanguagesLanguageId) a sales discount (SalesDiscountLanguagesDiscountId) is valid for.

Field name Data type Length
SalesDiscountLanguagesDiscountId nvarchar 50
SalesDiscountLanguagesLanguageId nvarchar 50
SalesDiscountLanguagesName nvarchar 255
SalesDiscountLanguagesDescription nvarchar Max
SalesDiscountLanguageAutoId int 4