Hi,
HikaShop's coupon / discount system has a "minimum quantity ordered" and a "maximum quantity ordered" setting so that a discount can apply once a certain number of products in the cart is reached.
However, that system doesn't distinguish between products. So if you set a minimum of 3, it will match regardless of whether it is 3 items of product A, or 1 of product A + 1 of product B + 1 of product C.
I see 2 potential solutions:
1. You could develop a small plugin implementing the onAfterCouponCheck event of HikaShop:
www.hikashop.com/support/documentation/6...l#onAfterCouponCheck
This way, you could configure a coupon without a restriction on the number of products, and process that restriction in the code of your plugin. While this allows for maximum customization capability, it requires development skills or hiring someone who could do it for you.
2. The cart fee plugin is a plugin which can be used to add extra fees to carts:
www.hikashop.com/marketplace/product/279-cart-fee.html
And if the result of the calculation made by the plugin is a negative amount, it will effectively be a discount.
So, you could:
- create a custom product field via the menu Display>Custom fields:
www.hikashop.com/support/documentation/4...shop-field-form.html
- in each product, you would fill that custom field with the value "1". You can automate this with a mass action:
www.hikashop.com/support/documentation/167-massaction-form.html
- then, in your cart fees plugin settings page, you could add an entry with the condition:
where xxx is the column name of the custom field
and a formula:
The system will first sum the value of product.xxx for each entry of the cart, and since you don't multiply by the tag {product.cart_product_quantity} in your condition, it won't take into account the quantity of each entry in the cart. And thus, the condition will only match if there are at least 3 distinct products in the cart, regardless of the quantity of each one.
Then, for the fee calculation, it will replace {price} by the total amount of the cart and multiply by -0.1 which will effectively add a fee of -10% to the cart.
It's a bit convoluted to setup, but it doesn't require any coding and should do exactly what you want.