magento_2:special-promotions

For more details see the Special Promotions for Magento 2 extension page.

Add 16 additional promo actions to your default cart price rules. Run numerous promotions to easily attract customers with new irresistible offers and increase sales.

- Promotions for cheapest/most expensive items
- Deals with free products
- Create fixed and percent discounts
- Offer specials with quantity steps
- Launch promo campaigns based on spent amount

What is the difference between product **conditions** in the Actions tab and in the Conditions tab?

Conditions in the **'Conditions' tab** control *when* the rule will be applied. For example, if the Subtotal has reached a certain value or if there are some specific products in the cart.

Conditions on the Actions tab control to *which products* discount will be applied. For example, you can restrict discount application on the product from only a certain category.

To Configure general extension settings please go to **Stores → Configuration → Special Promotions**

**Check Special Options Values** - If the option is set to 'Yes' the custom options for the rule conditions will be enabled. Thus, you can use the ‘Custom option SKU’ condition, for example, to trigger a discount rule only when a particular Special Option was selected for a product. See the example of custom options below.

If you set custom options for any specific products in your store, you can use them for creating flexible rules. Specify the necessary custom option value or custom option SKU to apply only to particular products.

**Skip Items with Special Price** - Set this option to ‘Yes’, if you don't want to apply coupons and shopping cart price rules to the products with a special price.

Items with special prices from the Catalog Price Rules will be skipped as well.

**Skip Items with Tier Price** - Set this option to ‘Yes’, if don't want to apply coupons and shopping cart price rules to the products with tier price.

**Skip Configurable Items when Child has Special Price** - Set this option to ‘Yes’, if don't want to apply coupons and shopping cart price rules to configurable products if their child items have a special price.

To create promotion rules please go to the admin panel → **Marketing** → **Cart Price Rules** and click **‘Add New Rule’** button.

These settings are common among most of the actions and work quite the same.

**Discount Amount**- the percentage of the fixed value which is deducted from the order totals when the promotion rule is activated.**Maximum Qty Discount is Applied To**- the maximum number of items to which the discount can be applied. For example, if your promotion is set to apply a discount on each second product in the cart and you set this setting to '2', the discount will be applied only twice even if a customer has 5 or more items in the cart.**Discount Qty Step (Buy X)**- in most cases, this setting controls the step by which a discount will be iterated. For example, if you set '2', the discount will be applied to every second product in the cart: 2, 4, 6, etc.**Apply to Shipping Amount**- when it's enabled, the discount will be applied to the sum of the Subtotal + the Shipping Rate.**Discard subsequent rules**- enable this option to stop the rules with lower priority when the rule with this setting is activated.**Calculate Discount Based On**- this setting controls how the discount value is calculated.

*Price (Special Price is Set)* - the calculation will be based on a)the price configured by any of the applied cart price rules or b)the special price, that was set in the product settings.

*Price After Previous Discount* - the calculation will be based on the price configured after the previous discount is applied.

*Original Price* - the calculation will be based on the price before any changes are applied.

**Max Amount of Discount**- sets the maximum discount amount that can be applied to one rule.**Skip Items with Special Price**- when this option is enabled, the rule will be applied to all products in the cart except the items with the Special Price.

———————————

The Cheapest action is designed to apply a discount based on the price of cheapest products in the shopping cart.

This rule is set up to give 10% discount on the cheapest product in the cart.

Let's have a look how to configure the settings for this action.

**Discount Amount** - set here the amount of the discount(%) you would like to give. In our case, it's 10%.

**Maximum Qty Discount is Applied To** - here, we set the maximum number of items to which the discount can be applied. For example, if your promotion is set to apply a discount on 1 cheapest product in the cart and you set this setting to '1', the discount will be applied only once. If you want to get a discount to 2 cheapest products in the cart - set this option to '2'. In our case, we set 1.

**Discount Qty Step (Buy X)** - here you specify a step by which a discount will be iterated. For example, if you set '2', the discount will be applied for every second product in the cart: 2, 4, 6, etc. In our case, we need to set '1'.

**Apply to Shipping Amount** - enabled this option only if you want to apply the discount to the sum of the Subtotal + the Shipping Rate. We don't need this for our promotions, so we set to 'No'.

**Discard subsequent rules** - enable this option to stop other rules with lower priorities if this rule is applied. We don't need this for our promotions, so we set to 'No'.

**Calculate Discount Based On** - this setting controls how the discount value is calculated.

**Max Amount of Discount** - set the maximum discount amount that can be applied to one rule. It means that no matter how you configured the previous settings, the final discount can be more than you specify here. In our case, we'll not set any limitations.

**Skip Items with Special Price** - when this option is enabled, the rule will be applied to all products in the cart except the items with the Special Price.

Let's see the rule in action.

Example rule setup

The cheapest product, in this case, is 'Argus All-Weather Tank' which is priced at $22.00. The discount amount is $2.20 which is exactly 10% of $22.00. Spot on!

**The Most Expensive** action works just the same as **The Cheapest**, but instead of calculating discount based on cheapest product, it checks the price of most expensive product instead.

The rule is set to give 10% discount on most expensive product. And here's the result

'Fusion Backpack' is the most expensive product in this case priced at $59.00. 10% of that value will be $5.90, and looking at Discount value we see a match.

With this action you can configure promotions like 'Get $10 off every $300 in the cart'.

This rule is set to give $1 every $20 spent. This it how it looks in action

Subtotal value is $135.00. Our discount should apply 6 times (135/20=6.75, rounding to the lower value) and give $6 discount. Which it does!

This rule group can be used when you want to give a discount on certain product or selection of products, but only if there is specific, different, product present in the cart. Example promotion: 'Buy White Shirt and get Red Bow-tie with 15% discount'.

Let's set up a rule like **'Buy Pushup Grips and get fitness video with 15% discount'**. This is how the rule might look like

This one requires some explanation.

**Promo Categories** and **Promo SKU** sections is where you define the Y product in **Buy X get Y** formula. Product X is defined in condition tree at the bottom. So you can use any attribute as condition for Product X, but Product Y can be defined only by SKU or category.

Also please note **Number of X Products** and **Number of Y Products** fields. In my example we have 'one for one' logic, but if you want to, for example, give discount like **Buy 5 X and get 2 Y** then 'Number of X Products' should be set to '5' and 'Number of Y Products' to '2'.

But let's see how our rule works now

Discount amount is $2.10 which is exactly 15% of $14 for our fitness video.

This action works exactly the same as **Percent Discount: Buy X get Y Free** above, but it will give fixed amount of discount instead of percent discount.

This action works exactly the same as **Percent Discount: Buy X get Y Free** above, but it will set fixed price for **Product Y** instead of percent discount.

This action can be used in promotions like **Get 20% off each 5-th product in the cart**.

The action applies the discount for each N-th item in the cart.

Let's set up a rule **Get 10% off each second item in the cart**. The rule will look like this

Then let's see how it worked on our cart here

Since **Each N-th** setting was set to '2' and quantity of ' LifeLong Fitness IV' is lower than that value, then discount can't be applied to this item. But we have 6 Pushup Grips in the cart. 6/2=3, so we can apply discount to three Pushup Grips items. Price of 1 item is $19, 10% of $19 will be $1.9. Multiply $1.9 by 3 and we get **$5.7 total discount**. Match!

This action works exactly the same as **Percent Discount: each 2-d, 4-th, 6-th with 15% Off** above, but it will give fixed amount of discount instead of percent discount.

This action works exactly the same as **Fixed Discount: each 3-d, 6-th, 9-th with $15 Off** above, but it will give a fixed price for each N-th product instead of a fixed amount of discount.

Set up the **At first apply discount to** setting to sort the products, to which the rule is applied, starting from the cheapest or the most expensive ones. When it is set to **Cheapest products**, then the discount will be applied to the cheapest products first.

This action can be used in promotions like **10% off on all products after fifth one!**

The trick with this action is that you can give discount not only on all products after certain threshold is reached, but you can set the rule to give discount for each second, third, and so forth instead.

This is what **Each Product (step)** and **After N** setting control.

For example, we've set **After N** to '3' (as we wanted to discount items after the third one) and **Each Product (step)** to '2' (to give discount for each second item). How the rule will be applied in this case you can see from the diagram below:

But that is not all. To better understand how the calculation logic works, below you can find step-by-step explanation:

- From total quantity of products in the cart value set in
**After N**setting is subtracted. - Result of previous operation then divided by the value from
**Each Product (step)**. - Then all products in the cart are sorted by price, from lowest price to highest.
- Discount will be applied to products with lowest price.

Example of the above. Let's say we've set **After N** to '3', **Each Product (step)** is set to '1' and in the cart we have products priced $10, $20, $30, $40, $50 and $60. And we want to give 10% discount. So let's work the steps:

- Total qty is '6',
**After N**is '3'. 6-3=3. **Each Product (step)**is '2', so 3/2=1.5, rounding to bigger value and getting *2*. Then we're going to apply discount on**two products**.- After sorting the products we have this array: $10, $20, $30, $40, $50, $60
- $10 and $20 products are the cheapest in this case. 10% of $10 is $1 and 10% of $20 is $2. 1+2=3. Quick math. So the
**resulting discount will be $3**.

**Get 20% off any product after the fifth one in the cart** sounds like a nice enough promotion, let's try it.

Here's how the rule might look like in this case

And this is how it will affect the cart

If you've checked the explanation on action login above then you can calculate the result yourself. Otherwise this is how the result was achieved:

- Total qty is '7',
**After N**is '5'. 7-5=2. **Each Product (step)**is '1', so 2/1=2. Then we're going to apply discount on**two products**.- After sorting the products we have this array: $14, $19, $19, $19, $19, $19, $36
- $14 and $29 products are the cheapest in this case. 20% of $14 is $2.80 and 20% of $19 is $3.80. 2.8+3.8=6.6. So the
**resulting discount will be $6.60**. Exact match!

This action works exactly the same as **Percent Discount: each 1st, 3rd, 5th with 15% 0ff after 5 items added to the cart** above, but it will give fixed amount of discount instead of percent discount.

This action works exactly the same as **Fixed Discount: each 3d, 7th, 11th with $15 0ff after 5 items added to the cart** above, but it will set a fixed price for the product instead of a fixed amount of discount.

Keep in mind, that you can choose to which products, matching the rule conditions, discounts should be applied first:

**Get 5 shirts for $200** promotion is an example of how this action can be used.

The logic behind this action is quite simple:

**Discount Amount**is a price for the group of items**Discount Qty Step (Buy X)**value determines how many products will be in one group.**Max Amount of Discount**- the max. discount amount that can be got with the rule.- Products in the cart are sorted by the price, from lowest to highest.
- Products in the cart are divided into groups and each group has a discount applied individually.

Example can be seen below.

The example #1

Let's try making simple rule without product restrictions

This rule is set to apply fixed price of $50 for group of three products. Any products, no restrictions. But if you want to limit the products which will be used in calculation and hence have discount applied, please use conditions tree in Actions tab to define these products.

Some explanation is required here. Let's work the logic steps:

**Discount Qty Step (Buy X)**is set to '3'. We have 5 products in the cart so discount will be applied only once.- After sorting products in the cart by the price we have this array: $14, $19, $19, $19, $19
- $14, $19, and $19 products are the cheapest three in the cart, so the discount will be applied to them.

Calculations:
14+19+19=52. **$52 is the original price** of these three products. But we've set to give a fixed price of $50 for a group. So the total discount will be **$52-$50=$2**. Looks like exactly what we have in Discount line.

The example #2

According to the rule, the groups will be formed of 3 items and the price for each set will be $30.

All the items in the cart are sorted by the price, thus, we have the following array: 2 2 19 19 45 45 54 54 54

The extension selects first 3 items. Their sum (23) is less than the price for the group in the rule (30). Thus, the first element is skipped and the extension selects the next 3 elements, started with the second element: 2+19+19 = 40. The sum is bigger than the price for the group in the rule (30), so the discount will be the following: 40 – 30 = 10

As the rule doesn't have any discount limits, the extension continues forming the groups for the discount.

The next group is 45 45 54. The sum(45+45+54 = 144) is bigger than the price for the group (30), so the discount is 144 - 30 = 114

The next group is 54 54. The number of items is less than it should be for making up the group, so the extension doesn't calculate the discount.

The final discount is 10+114=124

This action works the same as **Fixed Price: Each 5 items for $50** but instead of giving the fixed price for a group of products, it applies a percent discount to them.

This action can be used in promotions like **Buy shirt, pants and shoes just for $100** and alike.

Let's have a look what does the settings mean for this action.

**Discount Amount** - product set's price

**Max Number of Sets Discount Applied To** - the max number of sets that can be gathered by the rule. (If you leave this field empty the number of sets is unlimited.)

**Max Amount of Discount** - the max discount amount that can be applied. (the discount for the set is the difference between the sum of all products' prices in the set and the price for the set)|

**Promo SKU** - here you put down the SKUs of the products that make up the set.

As an example I will set a promotion, where I give 50% discount for a purchase of combination of Pushup Grips, Watch and fitness video. Here's my rule

Please note **Promo Categories** and **Promo SKU** fields. This is where you define which products will be in the product set discount will be applied to.

I have only products from the product set in the cart, total for products is $14+$19+$54=$87.00 and 50% of that value is $43.50. Seems correct.

This action works exactly the same as **Percent discount for product set** above, but it will give a fixed amount of discount instead of percent discount.

**The example #1 Two sets**

We created a promo rule, that offers a set for $20. The set is comprised of the following items. Go-Get'r Pushup Grips, Clamber Watch and Antonia Racer Tank.

The result:

In the example, there are 2 of each promo items in the cart, thus, 2 sets can be created. According to this:

The discount is: (38+108+4) – 2*20 = 110

The subtotal is: 240 – 110 = 130

**The example #2 Compatibility with another cart price rule**

The configuration of the rule #1 (The priority is 0)

The configuration of the rule #2 (The priority is 1)

The result:

In this example, the products Go-Get'r Pushup Grips, Clamber Watch, Antonia Racer Tank can be made up as a set for $20 (watch the rule with 0 priority).

In the example, there are 2 or more promo items in the cart, so 2 sets can be created.

The discount for this set will be the following: (38+108+4) – 2*20 = 110

2 of 3 Clamber Watches was got into the first set. But the remaining Clamber Watch item can be grouped in another set for $30( watch the set with the priority 1).

The discount for this set: (54+45) – 30= 69

The discount for 3 sets: 69+110 = 179

The subtotal: 294 – 179 = 115

**The example #3**

Now let's change the priorities of the rules from the example #2.

Clamber Watch и Overnight Duffle are grouped in a set for $30 with the rule's priority 0. As there are 2 Clamber Watch and 2 Overnight Duffle items in the cart, we can create 2 sets.

Thus, the discount is: (54*2+45*2) – 30*2 = 138

After the first set was grouped, only 1 Clamber Watch item left. Therefore, for the rule with the priority 1 only one set for $20 can be created.

The discount: (19+54+2) – 20 = 55

The final discount for 3 sets: 138+55 = 193

The subtotal: 294 – 193 = 101

**The example #4 The rule with the specified max.amount of discount **

In this example, we restrict the max.amount of the discount that can be applied to the rule. The discount shouldn't be more than $100.

As we have 2 of each promo items in the cart, 2 sets for $20 can be grouped.

The discount is: (38+108+4) – 2*20 = 110

But according to the rule, we have a restriction on the max. discount amount for the set ($100), so in this case, the discount that will be applied is $100.

The subtotal: 294 – 100 = 194

**The example #5 The rule with the specified max. number of sets **

The result:

As we have 2 of each promo items in the cart, 2 sets for $20 can be grouped.

But according to the rule, we have a restriction on the max.number of sets that can be formed (1), so in this case, the discount will be applied just for 1 set.

The discount will be the following: (19+54+2) – 20 = 55

The subtotal: 294-55=239

**The example #6 The rule with the specified max. amount of discount and specified max. number of sets**

As we have 2 of each promo items in the cart, 2 sets for $20 can be grouped.

The discount is: (19+54+2) – 20 = 55

But according to the rule, we have a restriction on the max. number of sets that can be formed (1), so in this case, the discount will be applied just for 1 set.

Also, we have a restriction on the max. discount amount for the set ($30), so in this case, the maximum discount that can be applied is $30.

The final discount is: 294 – 30 = 264

The subtotal is: 294 - 30 = 264

**Special Promotions Pro for Magento 2** expands **Special Promotions for Magento 2** capabilities by introducing a set of conditions which check customers' purchase history and account details.

**Customer Attributes**condition group will check values of attributes saved in customer account.**Number of Completed Orders**will check the orders placed on the store and select customers which completed defined number of orders**Total Sales Amount**will sum up totals of completed orders placed by the same customer and compare the results with the value defined in condition.**Orders subselection**is very similar to**Number of Completed Orders**and**Total Sales Amount**but allows to define orders statuses and order dates which will be checked, instead of checking all orders with Complete status only as for the conditions above.

———————————

**Loyalty Program for Magento 2** extension has all the features from both **Special Promotions for Magento 2** and **Special Promotions Pro for Magento 2** modules but also adds a page to a customer account where you can display information about the loyalty program you run on your store with goals, levels and discounts for each level along with the purchase history overview.

Extensions settings are located here: **Stores** - **Configuration** - **Amasty Extensions** - **Loyalty Program**.

Enabling the **Customer Account** feature will allow you to add a description of your loyalty program. You can use simple HTML tags to style the text in the **Description** field.

This is how the result of settings above may look like on the **Loyalty Program** page:

magento_2/special-promotions.txt · Last modified: 2018/06/19 05:13 by karpova