magento_2:special-promotions

For more details see the Gift Card 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

The product conditions available on Actions tab are quite similar to conditions in Conditions tab. But there is a major difference between them.

Conditions on the tab 'Conditions' control *when* the rule will be applied. Like if Subtotal has reached certain value or if there are some specific product in the cart.

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

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 rule conditions will be enabled.
This option allows you to use the ‘Custom option SKU’ condition to, for example, 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‘d like coupons and shopping cart price rules not to be applied to the products with special price. **NOTE:** Items with special prices from Catalog Price Rules will be skipped as well.

**Skip Items with Tier Price** - Set this option to ‘Yes’, if you‘d like coupons and shopping cart price rules not to be applied to the products with tier price.

**Skip Configurable Items when Child has Special Price** - Set this option to ‘Yes’, if you‘d like coupons and shopping cart price rules not to be applied to configurable products if their child items have a special price.

Below you can find usage examples for the promo actions included in the Special Promotions extension.

To create promotion rules please go to 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**- percentage of fixed value which will be deducted from the order totals when the promotion rule activates.**Maximum Qty Discount is Applied To**- quantity of the items to which discount can be applied. For example, if your promotion is set to apply discount on each second product in the cart, but you've set this setting to '2' then discount will be applied only twice if you have 6 or more items in the cart.**Discount Qty Step (Buy X)**- in most cases, this setting controls the step by which discount will iterate. For example, if you set '2' here, then discount will apply for every even product in the cart: 2, 4, 6, etc.**Apply to Shipping Amount**- when enabled, discount will be applied to sum of cart Subtotal and Shipping Rate.**Discard subsequent rules**- while enabled, this setting will block rules with lower priority from applying when the rule with this setting activates.**Calculate Discount Based On**- controls how the discount value is calculated.**Max Amount of Discount**- sets the maximum discount value for a rule.**Skip Items with Special Price**- when enabled, products with active Special Price won't be taken into account when discount is calculated.

———————————

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

This rule is set up to give 10% discount on cheapest product in the cart. Let's see the rule in action

Cheapest product in this case is 'Argus All-Weather Tank' which is priced at $22.00. 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 of the **same product** in the cart.

For example, you have 3 of Product X and 6 of Product Y in the cart. **Each N-th** setting is set to **'2'**. So the rule will be applied to **1 of Product X** (3/2=1.5, then round to the lower value) and **3 of Product Y** (6/2=3).

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.

**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 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)**. The result is then rounded to the nearest lower integer value. Here we get the number of product which will receive a discount. - 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 and $50. And we want to give 10% discount. So let's work the steps:

- Total qty is '5',
**After N**is '3'. 5-3=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: $10, $20, $30, $40, $50
- $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.

**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.

**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 Qty Step (Buy X)**value determines how many products will be in one group.- Products in the cart are sorted by the price, from lowest to highest.
- Products in the cart are divided by groups and each group has discount applied individually.

Example can be seen below.

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 price we have this array: $14, $19, $19, $19, $19
- $14, $19, and $19 products are the cheapest three in the cart, so 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 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.

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 percent discount to them.

This action can be used in promotions like **Buy combination of shirt, pants and shoes with 20% discount** and alike.

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 fixed amount of discount instead of percent discount.

**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/03/01 09:28 by prakapovich