1

Is it correct to assume that if I set up a Sale with some Specific Products in the Condition, it will not have any effect to also select Product Types in the Conditions of that sale?

i.e. If I select both Product Types and Specific Products, does the sale apply to all the products in the selected types, and also to the selected specific products, or (my current understanding of the "correct behavior") would that sale apply to only the selected specific products?

1

A blank selection of products or product types will match all products.

Both 'product type' and 'product' conditions need to match for the sale to match the product.

If you selected product type A and a single product from product type B in your conditions, then the sale would not apply to the single product from type B even if added to the cart.

Therefore the condition could be thought of as an AND, meaning that all conditions need to match for the sale to apply.

Let me know if you need further clarification.

| improve this answer | |
  • Take a look at the Commerce_SaleService::matchProductAndSale method for the condition checking. – Luke Holder Feb 7 '17 at 7:45
  • OK, so that confirms my understanding that specifying both product types and specific products would be redundant. – Michael Rog Feb 7 '17 at 8:11
  • For what it's worth, it would be a nice UI tweak to only show one control or the other at any time, based on a user selection… Because if the user has specified both product types and specific products, the user is probably confused. – Michael Rog Feb 7 '17 at 8:15
  • Agree it could be confusing. Likely, when we open up sales to all purchasables, the product type condition will be migrated to conditions that can be used by any element, like categories. - since product types are unique to products. – Luke Holder Feb 7 '17 at 8:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.