Black Friday/Week is ongoing, promotions were prepared and already available on production website. But one thing we missed to test is the Compatibility with other promotions options.
We set 15% sale for all products in store. But some of our products need to have 30% cutoff. On products view modes everything works fine - prices displayed with correct promotions. But when customer added to the cart 1 Product from 15% price and other one with 30%, the second one doesnt have promo in the cart at all! Compatibility for main 15% promo was set to "Not with any other promotions". That's was the issue.
Commerce promotion module have a lot of conditions which you can set to promo. But "Negotiation" conditions missed there. I dont know why this simple stuff is not included in contrib module yet. The issue was fixed by simply copying OrderItemProduct condition from commerce_product module to custom and change return value to opposite.
/**
* {@inheritdoc}
*/
public function evaluate(EntityInterface $entity) {
// ...
return !in_array($purchased_entity->getProductId(), $product_ids);
}
So products which have referenced in another promotions (with 30% in this example) should be added to "Negotiation products" reference in main promotion.
Now all our products have 15% promo and some of them 30%.
https://gist.github.com/onesixromcom/72519841752b62ca176a3da405fa8aac
Add new comment