This article will be helpful for people who want to provide discount based on the purchase of products with specific attributes.
Different scenarios:

  • Discount on mug on purchase "M" size T-shirts.
  • Discount on "S" T-shirt on purchase of "L" sized T-shirts.
  • Discount on "L" T-shirt on purchase on "L" sized T-shirts.

Right way of using attributes in your products

Step 1: Pre-define the Attributes :

VERY VERY IMPORTANT:  When you create a variable product, always pre-define the Attributes in the Products -> Attributes section

Step 2:
Then, when you create the Variable product, choose these attributes and add.

Now associate the attribute values and check the "Used for variations" checkbox.

IMPORTANT:  Please DO NOT select the "custom product attribute".
If you use "Custom Product Attributes" that is created on-the-fly, then the attribute specific discount will NOT apply. Because WooCommerce does not create any attributes when you use a custom product attribute.

Let us create an example rule :
Navigate to Woocommerce --> Woo Discount Rules.
Here, select Price Discount rule and click on "Add new rule".

In the general tab, mention a rule name and choose quantity based product/category and BOGO deals as the method.

Now, let's specify the attribute in the condition tab.
Here I have chosen a 16GB memory card as my specific attribute.

Lets's provide a simple 10% discount.

Likewise, you can set price discount as well.
So now, lets see the different discounts possible.

  • Buy 1 memory card(16 GB) and get 20% discount on another 16GB memory card.
  • Buy memory card(16 GB) and get 4 GB  memory card for free. (automatically add the 4GB memory card to card)
  • Buy memory card(16 GB) and get 40% discount on cap. (Cap will automatically be added to cart with 40% discount)

Here is a Video Tutorial :

What's Next ?

I have more questions

Contact us via the Live Chat button below with your discount requirements. Let us guide you or you can also submit a support request.
We are always happy to assist you :)

Did this answer your question?