Hi, I am new to rules engine, after going through the examples shipped (shopping.drl, petstore.drl) I am trying to implement promotional discounting using drools 5.2.0 final, stateful session. assume cart has all the items that customer wants to buy, I am trying to bundle them together with the existing offers
rule "Buy X units of Product A and Get Y units of Product B Free" dialect "java" when $itemsA : ArrayList( size >= 2) from collect( CartItem( getProductId() == "A", !isProcessed())) $itemsB : ArrayList( size >= 1) from collect( CartItem( getProductId() == "B", !isProcessed())) then // current scenario buy 2*A and get 1*B int x = 2; int y = 1; for(int i=0 ; i < x ; i++){ CartItem $ci = (CartItem) $itemsA.get(i); // modify($ci){setProcessed(true) ... } dosent work $ci.setProcessed(true); $ci.setItemDiscount(0.0); $ci.setBundleId(bundler.getId()); } for(int i=0 ; i < y ; i++){ CartItem $ci = (CartItem) $itemsB.get(i); $ci.setProcessed(true); $ci.setItemDiscount($ci.getPrice()); $ci.setBundleId(bundler.getId()); } // global counter to identify bundled items bundler.increment(); end the above rule calculates only for 1 set of offer i.e first 2*A & 1*B are considered, rest in the cart are not bundled. if customer buys 4*A + 2*B it dosent consider it. am I missing anything? is this the right way to do it? any feedback is appreciated. -- Regards, Sandeep Bandela.
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users