Improved coupon UI
Added Attribute value related coupons
Refactored coupons to reduce code duplication
Added the COUPON_CLEAR_ALL event, and a route to trigger it.
Added helper to chek if number of uses is reached
Fixed the checking of maximum coupon usage count
Pushed forward the refactoring, using traits
php-cs fixer passed.
Fixed @param and @return annotations
getDefaultSaleElements() returns a single ProductSaleElement
Added clear method.
Added clear() method
The CouponManager clear() method is now invoked.
Updated translation after finishing coupons
Updated translations after finishing coupons
Added getDeliveryCountry() method
Added free product coupon.
Using 0 as default value if some loop parameters are not defined
php-cs pass
Added the FreeProduct coupon.