Hi all,
I'm having hard time to set up the following promotion: "If product A and product B are to the cart, then apply a 20% discount to product A and a 20% discount to product B" Example: product A: unit price $100 product B: unit price $200 if they are both added to the cart: product A: unit price $100, adjustment $20, line amount = $80 product B: unit price $200, adjustment $40, line amount = $160 I tried to implement it with one promo with two conditions: cond 1: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=A cond 2: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=B and one action: action: "X Product For Y% Discount", quantity=1, amount=20 for "Action Product"=A,B The problem is that: a) the above promotion is never applied b) if I use one condition (instead of the two above) the 20% discount is applied to one of the product only and the amount is then splitted and assigned to the two items in the cart!!! Here is an example of it: https://demo.hotwaxmedia.com/catalog/control/EditProductPromo?productPromoId=10000 You can test it by creating an order and adding product "A" and "B" to the cart. I've also tried to setup two different actions or to setup two different promotions with the same rules but one action each (one for A, and one for B), but without success. Any hints? Thanks, Jacopo |
Administrator
|
Jacopo,
Quick answer : perhaps as it concerns products and not order you should better use prices rules ? Jacques ----- Original Message ----- From: "Jacopo Cappellato" <[hidden email]> To: <[hidden email]> Sent: Thursday, March 01, 2007 3:08 PM Subject: Help to set up a promotion > Hi all, > > I'm having hard time to set up the following promotion: > > "If product A and product B are to the cart, then apply a 20% discount > to product A and a 20% discount to product B" > > Example: > product A: unit price $100 > product B: unit price $200 > > if they are both added to the cart: > product A: unit price $100, adjustment $20, line amount = $80 > product B: unit price $200, adjustment $40, line amount = $160 > > > I tried to implement it with one promo with two conditions: > > cond 1: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=A > cond 2: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=B > > and one action: > > action: "X Product For Y% Discount", quantity=1, amount=20 for "Action > Product"=A,B > > The problem is that: > > a) the above promotion is never applied > b) if I use one condition (instead of the two above) the 20% discount > applied to one of the product only and the amount is then splitted and > assigned to the two items in the cart!!! > > Here is an example of it: > https://demo.hotwaxmedia.com/catalog/control/EditProductPromo?productPromoId=10000 > > You can test it by creating an order and adding product "A" and "B" to > the cart. > > I've also tried to setup two different actions or to setup two different > promotions with the same rules but one action each (one for A, and one > for B), but without success. > > Any hints? > > Thanks, > > Jacopo |
If such a rule concerns more than a single product, you can't use price rules. Just remember: price rules happen pre-cart, promotions happen in-cart (using all items in the cart, and are totally recalculated when the cart changes). -David On Mar 1, 2007, at 10:04 AM, Jacques Le Roux wrote: > Jacopo, > > Quick answer : perhaps as it concerns products and not order you > should > better use prices rules ? > > Jacques > > ----- Original Message ----- > From: "Jacopo Cappellato" <[hidden email]> > To: <[hidden email]> > Sent: Thursday, March 01, 2007 3:08 PM > Subject: Help to set up a promotion > > >> Hi all, >> >> I'm having hard time to set up the following promotion: >> >> "If product A and product B are to the cart, then apply a 20% >> discount >> to product A and a 20% discount to product B" >> >> Example: >> product A: unit price $100 >> product B: unit price $200 >> >> if they are both added to the cart: >> product A: unit price $100, adjustment $20, line amount = $80 >> product B: unit price $200, adjustment $40, line amount = $160 >> >> >> I tried to implement it with one promo with two conditions: >> >> cond 1: "X Quantity of Product", "Is", quantity=1 for "Rule >> Product"=A >> cond 2: "X Quantity of Product", "Is", quantity=1 for "Rule >> Product"=B >> >> and one action: >> >> action: "X Product For Y% Discount", quantity=1, amount=20 for >> "Action >> Product"=A,B >> >> The problem is that: >> >> a) the above promotion is never applied >> b) if I use one condition (instead of the two above) the 20% discount > is >> applied to one of the product only and the amount is then splitted >> and >> assigned to the two items in the cart!!! >> >> Here is an example of it: >> > https://demo.hotwaxmedia.com/catalog/control/EditProductPromo? > productPromoId=10000 >> >> You can test it by creating an order and adding product "A" and >> "B" to >> the cart. >> >> I've also tried to setup two different actions or to setup two > different >> promotions with the same rules but one action each (one for A, and >> one >> for B), but without success. >> >> Any hints? >> >> Thanks, >> >> Jacopo > smime.p7s (3K) Download Attachment |
In reply to this post by Jacopo Cappellato
So, what you want is a promotion for buy A and B get 20% off both. I don't think we have a promotion implemented like that. You can see in the actions what your options are, like buy X of certain products get 50% (or 100%) off of one of them, or the Gift With Purchase where it adds a product with a certain discount to the cart, etc. What happens with the rule you setup? I guess it may do nothing, I'm not sure if it is designed to handle that, but you can always walk through the code and see what it is/isn't doing (ie see if the conditions evaluate to true, and see what the action tries to do). -David On Mar 1, 2007, at 7:08 AM, Jacopo Cappellato wrote: > Hi all, > > I'm having hard time to set up the following promotion: > > "If product A and product B are to the cart, then apply a 20% > discount to product A and a 20% discount to product B" > > Example: > product A: unit price $100 > product B: unit price $200 > > if they are both added to the cart: > product A: unit price $100, adjustment $20, line amount = $80 > product B: unit price $200, adjustment $40, line amount = $160 > > > I tried to implement it with one promo with two conditions: > > cond 1: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=A > cond 2: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=B > > and one action: > > action: "X Product For Y% Discount", quantity=1, amount=20 for > "Action Product"=A,B > > The problem is that: > > a) the above promotion is never applied > b) if I use one condition (instead of the two above) the 20% > discount is applied to one of the product only and the amount is > then splitted and assigned to the two items in the cart!!! > > Here is an example of it: > https://demo.hotwaxmedia.com/catalog/control/EditProductPromo? > productPromoId=10000 > > You can test it by creating an order and adding product "A" and "B" > to the cart. > > I've also tried to setup two different actions or to setup two > different promotions with the same rules but one action each (one > for A, and one for B), but without success. > > Any hints? > > Thanks, > > Jacopo > smime.p7s (3K) Download Attachment |
David,
thanks for your answer, please see my comments inline: David E. Jones wrote: > > So, what you want is a promotion for buy A and B get 20% off both. > > I don't think we have a promotion implemented like that. You can see in > the actions what your options are, like buy X of certain products get > 50% (or 100%) off of one of them, or the Gift With Purchase where it > adds a product with a certain discount to the cart, etc. > > What happens with the rule you setup? I guess it may do nothing, I'm not > sure if it is designed to handle that, but you can always walk through > the code and see what it is/isn't doing (ie see if the conditions > evaluate to true, and see what the action tries to do). Yes, your guess is right, it doesn't do anything. The two conditions are both true, but the actions is not run because the ShoppingCartItem.addPromoQuantityCandidateUse(...) returns a 0.0 value I still cannot figure out why... Jacopo > > -David > > > On Mar 1, 2007, at 7:08 AM, Jacopo Cappellato wrote: > >> Hi all, >> >> I'm having hard time to set up the following promotion: >> >> "If product A and product B are to the cart, then apply a 20% discount >> to product A and a 20% discount to product B" >> >> Example: >> product A: unit price $100 >> product B: unit price $200 >> >> if they are both added to the cart: >> product A: unit price $100, adjustment $20, line amount = $80 >> product B: unit price $200, adjustment $40, line amount = $160 >> >> >> I tried to implement it with one promo with two conditions: >> >> cond 1: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=A >> cond 2: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=B >> >> and one action: >> >> action: "X Product For Y% Discount", quantity=1, amount=20 for "Action >> Product"=A,B >> >> The problem is that: >> >> a) the above promotion is never applied >> b) if I use one condition (instead of the two above) the 20% discount >> is applied to one of the product only and the amount is then splitted >> and assigned to the two items in the cart!!! >> >> Here is an example of it: >> https://demo.hotwaxmedia.com/catalog/control/EditProductPromo?productPromoId=10000 >> >> >> You can test it by creating an order and adding product "A" and "B" to >> the cart. >> >> I've also tried to setup two different actions or to setup two >> different promotions with the same rules but one action each (one for >> A, and one for B), but without success. >> >> Any hints? >> >> Thanks, >> >> Jacopo >> > |
The general idea with these sorts of promotions is that each quantity of each item can be used either as a qualifier or a benefactor of the promotion. My guess is that addPromoQuantityCandidateUse is returning 0 because the two items are already use up as qualifiers, and therefore can't be benefactors. So, this is a case where you would have to write a special promo action to handle the scenario so that the items are both qualifiers and benefactors. There are some others that are like that. -David On Mar 1, 2007, at 11:42 AM, Jacopo Cappellato wrote: > David, > > thanks for your answer, please see my comments inline: > > David E. Jones wrote: >> So, what you want is a promotion for buy A and B get 20% off both. >> I don't think we have a promotion implemented like that. You can >> see in the actions what your options are, like buy X of certain >> products get 50% (or 100%) off of one of them, or the Gift With >> Purchase where it adds a product with a certain discount to the >> cart, etc. >> What happens with the rule you setup? I guess it may do nothing, >> I'm not sure if it is designed to handle that, but you can always >> walk through the code and see what it is/isn't doing (ie see if >> the conditions evaluate to true, and see what the action tries to >> do). > > Yes, your guess is right, it doesn't do anything. > The two conditions are both true, but the actions is not run > because the ShoppingCartItem.addPromoQuantityCandidateUse(...) > returns a 0.0 value > > I still cannot figure out why... > > Jacopo > > >> -David >> On Mar 1, 2007, at 7:08 AM, Jacopo Cappellato wrote: >>> Hi all, >>> >>> I'm having hard time to set up the following promotion: >>> >>> "If product A and product B are to the cart, then apply a 20% >>> discount to product A and a 20% discount to product B" >>> >>> Example: >>> product A: unit price $100 >>> product B: unit price $200 >>> >>> if they are both added to the cart: >>> product A: unit price $100, adjustment $20, line amount = $80 >>> product B: unit price $200, adjustment $40, line amount = $160 >>> >>> >>> I tried to implement it with one promo with two conditions: >>> >>> cond 1: "X Quantity of Product", "Is", quantity=1 for "Rule >>> Product"=A >>> cond 2: "X Quantity of Product", "Is", quantity=1 for "Rule >>> Product"=B >>> >>> and one action: >>> >>> action: "X Product For Y% Discount", quantity=1, amount=20 for >>> "Action Product"=A,B >>> >>> The problem is that: >>> >>> a) the above promotion is never applied >>> b) if I use one condition (instead of the two above) the 20% >>> discount is applied to one of the product only and the amount is >>> then splitted and assigned to the two items in the cart!!! >>> >>> Here is an example of it: >>> https://demo.hotwaxmedia.com/catalog/control/EditProductPromo? >>> productPromoId=10000 >>> >>> You can test it by creating an order and adding product "A" and >>> "B" to the cart. >>> >>> I've also tried to setup two different actions or to setup two >>> different promotions with the same rules but one action each (one >>> for A, and one for B), but without success. >>> >>> Any hints? >>> >>> Thanks, >>> >>> Jacopo >>> > > smime.p7s (3K) Download Attachment |
David,
this message is just to let you know that your hints about how to implement a new action to handle this kind of promo turned out to be of great help. Thanks, Jacopo David E. Jones wrote: > > The general idea with these sorts of promotions is that each quantity of > each item can be used either as a qualifier or a benefactor of the > promotion. My guess is that addPromoQuantityCandidateUse is returning 0 > because the two items are already use up as qualifiers, and therefore > can't be benefactors. > > So, this is a case where you would have to write a special promo action > to handle the scenario so that the items are both qualifiers and > benefactors. There are some others that are like that. > > -David > > > On Mar 1, 2007, at 11:42 AM, Jacopo Cappellato wrote: > >> David, >> >> thanks for your answer, please see my comments inline: >> >> David E. Jones wrote: >>> So, what you want is a promotion for buy A and B get 20% off both. >>> I don't think we have a promotion implemented like that. You can see >>> in the actions what your options are, like buy X of certain products >>> get 50% (or 100%) off of one of them, or the Gift With Purchase where >>> it adds a product with a certain discount to the cart, etc. >>> What happens with the rule you setup? I guess it may do nothing, I'm >>> not sure if it is designed to handle that, but you can always walk >>> through the code and see what it is/isn't doing (ie see if the >>> conditions evaluate to true, and see what the action tries to do). >> >> Yes, your guess is right, it doesn't do anything. >> The two conditions are both true, but the actions is not run because >> the ShoppingCartItem.addPromoQuantityCandidateUse(...) returns a 0.0 >> value >> >> I still cannot figure out why... >> >> Jacopo >> >> >>> -David >>> On Mar 1, 2007, at 7:08 AM, Jacopo Cappellato wrote: >>>> Hi all, >>>> >>>> I'm having hard time to set up the following promotion: >>>> >>>> "If product A and product B are to the cart, then apply a 20% >>>> discount to product A and a 20% discount to product B" >>>> >>>> Example: >>>> product A: unit price $100 >>>> product B: unit price $200 >>>> >>>> if they are both added to the cart: >>>> product A: unit price $100, adjustment $20, line amount = $80 >>>> product B: unit price $200, adjustment $40, line amount = $160 >>>> >>>> >>>> I tried to implement it with one promo with two conditions: >>>> >>>> cond 1: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=A >>>> cond 2: "X Quantity of Product", "Is", quantity=1 for "Rule Product"=B >>>> >>>> and one action: >>>> >>>> action: "X Product For Y% Discount", quantity=1, amount=20 for >>>> "Action Product"=A,B >>>> >>>> The problem is that: >>>> >>>> a) the above promotion is never applied >>>> b) if I use one condition (instead of the two above) the 20% >>>> discount is applied to one of the product only and the amount is >>>> then splitted and assigned to the two items in the cart!!! >>>> >>>> Here is an example of it: >>>> https://demo.hotwaxmedia.com/catalog/control/EditProductPromo?productPromoId=10000 >>>> >>>> >>>> You can test it by creating an order and adding product "A" and "B" >>>> to the cart. >>>> >>>> I've also tried to setup two different actions or to setup two >>>> different promotions with the same rules but one action each (one >>>> for A, and one for B), but without success. >>>> >>>> Any hints? >>>> >>>> Thanks, >>>> >>>> Jacopo >>>> >> >> > |
Great, glad it worked out. So did you end up creating a new action, or changing the way the candidate counting works? I guess I'm mostly wondering if there is an enhancement that could go in to make this easier for others in the future. -David On Mar 7, 2007, at 2:07 AM, Jacopo Cappellato wrote: > David, > > this message is just to let you know that your hints about how to > implement a new action to handle this kind of promo turned out to > be of great help. > > Thanks, > > Jacopo > > > David E. Jones wrote: >> The general idea with these sorts of promotions is that each >> quantity of each item can be used either as a qualifier or a >> benefactor of the promotion. My guess is that >> addPromoQuantityCandidateUse is returning 0 because the two items >> are already use up as qualifiers, and therefore can't be benefactors. >> So, this is a case where you would have to write a special promo >> action to handle the scenario so that the items are both >> qualifiers and benefactors. There are some others that are like that. >> -David >> On Mar 1, 2007, at 11:42 AM, Jacopo Cappellato wrote: >>> David, >>> >>> thanks for your answer, please see my comments inline: >>> >>> David E. Jones wrote: >>>> So, what you want is a promotion for buy A and B get 20% off both. >>>> I don't think we have a promotion implemented like that. You can >>>> see in the actions what your options are, like buy X of certain >>>> products get 50% (or 100%) off of one of them, or the Gift With >>>> Purchase where it adds a product with a certain discount to the >>>> cart, etc. >>>> What happens with the rule you setup? I guess it may do nothing, >>>> I'm not sure if it is designed to handle that, but you can >>>> always walk through the code and see what it is/isn't doing (ie >>>> see if the conditions evaluate to true, and see what the action >>>> tries to do). >>> >>> Yes, your guess is right, it doesn't do anything. >>> The two conditions are both true, but the actions is not run >>> because the ShoppingCartItem.addPromoQuantityCandidateUse(...) >>> returns a 0.0 value >>> >>> I still cannot figure out why... >>> >>> Jacopo >>> >>> >>>> -David >>>> On Mar 1, 2007, at 7:08 AM, Jacopo Cappellato wrote: >>>>> Hi all, >>>>> >>>>> I'm having hard time to set up the following promotion: >>>>> >>>>> "If product A and product B are to the cart, then apply a 20% >>>>> discount to product A and a 20% discount to product B" >>>>> >>>>> Example: >>>>> product A: unit price $100 >>>>> product B: unit price $200 >>>>> >>>>> if they are both added to the cart: >>>>> product A: unit price $100, adjustment $20, line amount = $80 >>>>> product B: unit price $200, adjustment $40, line amount = $160 >>>>> >>>>> >>>>> I tried to implement it with one promo with two conditions: >>>>> >>>>> cond 1: "X Quantity of Product", "Is", quantity=1 for "Rule >>>>> Product"=A >>>>> cond 2: "X Quantity of Product", "Is", quantity=1 for "Rule >>>>> Product"=B >>>>> >>>>> and one action: >>>>> >>>>> action: "X Product For Y% Discount", quantity=1, amount=20 for >>>>> "Action Product"=A,B >>>>> >>>>> The problem is that: >>>>> >>>>> a) the above promotion is never applied >>>>> b) if I use one condition (instead of the two above) the 20% >>>>> discount is applied to one of the product only and the amount >>>>> is then splitted and assigned to the two items in the cart!!! >>>>> >>>>> Here is an example of it: >>>>> https://demo.hotwaxmedia.com/catalog/control/EditProductPromo? >>>>> productPromoId=10000 >>>>> >>>>> You can test it by creating an order and adding product "A" and >>>>> "B" to the cart. >>>>> >>>>> I've also tried to setup two different actions or to setup two >>>>> different promotions with the same rules but one action each >>>>> (one for A, and one for B), but without success. >>>>> >>>>> Any hints? >>>>> >>>>> Thanks, >>>>> >>>>> Jacopo >>>>> >>> >>> > > smime.p7s (3K) Download Attachment |
David,
I've created a new action based on the existing one; of course I have considered to contribute it back but, right now, it is very hacky and not sure it is a good fit for the project. By the way, I've attached it in this email. Thanks again, Jacopo David E. Jones wrote: > > Great, glad it worked out. So did you end up creating a new action, or > changing the way the candidate counting works? > > I guess I'm mostly wondering if there is an enhancement that could go in > to make this easier for others in the future. > > -David > > > On Mar 7, 2007, at 2:07 AM, Jacopo Cappellato wrote: > >> David, >> >> this message is just to let you know that your hints about how to >> implement a new action to handle this kind of promo turned out to be >> of great help. >> >> Thanks, >> >> Jacopo >> >> >> David E. Jones wrote: >>> The general idea with these sorts of promotions is that each quantity >>> of each item can be used either as a qualifier or a benefactor of the >>> promotion. My guess is that addPromoQuantityCandidateUse is returning >>> 0 because the two items are already use up as qualifiers, and >>> therefore can't be benefactors. >>> So, this is a case where you would have to write a special promo >>> action to handle the scenario so that the items are both qualifiers >>> and benefactors. There are some others that are like that. >>> -David >>> On Mar 1, 2007, at 11:42 AM, Jacopo Cappellato wrote: >>>> David, >>>> >>>> thanks for your answer, please see my comments inline: >>>> >>>> David E. Jones wrote: >>>>> So, what you want is a promotion for buy A and B get 20% off both. >>>>> I don't think we have a promotion implemented like that. You can >>>>> see in the actions what your options are, like buy X of certain >>>>> products get 50% (or 100%) off of one of them, or the Gift With >>>>> Purchase where it adds a product with a certain discount to the >>>>> cart, etc. >>>>> What happens with the rule you setup? I guess it may do nothing, >>>>> I'm not sure if it is designed to handle that, but you can always >>>>> walk through the code and see what it is/isn't doing (ie see if the >>>>> conditions evaluate to true, and see what the action tries to do). >>>> >>>> Yes, your guess is right, it doesn't do anything. >>>> The two conditions are both true, but the actions is not run because >>>> the ShoppingCartItem.addPromoQuantityCandidateUse(...) returns a 0.0 >>>> value >>>> >>>> I still cannot figure out why... >>>> >>>> Jacopo >>>> >>>> >>>>> -David >>>>> On Mar 1, 2007, at 7:08 AM, Jacopo Cappellato wrote: >>>>>> Hi all, >>>>>> >>>>>> I'm having hard time to set up the following promotion: >>>>>> >>>>>> "If product A and product B are to the cart, then apply a 20% >>>>>> discount to product A and a 20% discount to product B" >>>>>> >>>>>> Example: >>>>>> product A: unit price $100 >>>>>> product B: unit price $200 >>>>>> >>>>>> if they are both added to the cart: >>>>>> product A: unit price $100, adjustment $20, line amount = $80 >>>>>> product B: unit price $200, adjustment $40, line amount = $160 >>>>>> >>>>>> >>>>>> I tried to implement it with one promo with two conditions: >>>>>> >>>>>> cond 1: "X Quantity of Product", "Is", quantity=1 for "Rule >>>>>> Product"=A >>>>>> cond 2: "X Quantity of Product", "Is", quantity=1 for "Rule >>>>>> Product"=B >>>>>> >>>>>> and one action: >>>>>> >>>>>> action: "X Product For Y% Discount", quantity=1, amount=20 for >>>>>> "Action Product"=A,B >>>>>> >>>>>> The problem is that: >>>>>> >>>>>> a) the above promotion is never applied >>>>>> b) if I use one condition (instead of the two above) the 20% >>>>>> discount is applied to one of the product only and the amount is >>>>>> then splitted and assigned to the two items in the cart!!! >>>>>> >>>>>> Here is an example of it: >>>>>> https://demo.hotwaxmedia.com/catalog/control/EditProductPromo?productPromoId=10000 >>>>>> >>>>>> >>>>>> You can test it by creating an order and adding product "A" and >>>>>> "B" to the cart. >>>>>> >>>>>> I've also tried to setup two different actions or to setup two >>>>>> different promotions with the same rules but one action each (one >>>>>> for A, and one for B), but without success. >>>>>> >>>>>> Any hints? >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Jacopo >>>>>> >>>> >>>> >> >> > + } else if ("PROMO_PROD_DISC2".equals(productPromoActionEnumId)) { + double quantityDesired = productPromoAction.get("quantity") == null ? 1.0 : productPromoAction.getDouble("quantity").doubleValue(); + double startingQuantity = quantityDesired; + double discountAmountTotal = 0; + Set productIds = ProductPromoWorker.getPromoRuleActionProductIds(productPromoAction, delegator, nowTimestamp); + List lineOrderedByBasePriceList = cart.getLineListOrderedByBasePrice(false); + Iterator lineOrderedByBasePriceIter = lineOrderedByBasePriceList.iterator(); + while (quantityDesired > 0 && lineOrderedByBasePriceIter.hasNext()) { + ShoppingCartItem cartItem = (ShoppingCartItem) lineOrderedByBasePriceIter.next(); + // only include if it is in the productId Set for this check and if it is not a Promo (GWP) item + GenericValue product = cartItem.getProduct(); + String parentProductId = cartItem.getParentProductId(); + if (!cartItem.getIsPromo() && + (productIds.contains(cartItem.getProductId()) || (parentProductId != null && productIds.contains(parentProductId))) && + (product == null || !"N".equals(product.getString("includeInPromotions")))) { + // reduce quantity still needed to qualify for promo (quantityNeeded) + cartItem.clearPromoRuleUseInfo(); + //double quantityUsed = cartItem.addPromoQuantityCandidateUse(quantityDesired, productPromoAction, false); + double quantityUsed = cartItem.addPromoQuantityCandidateUse(1, productPromoAction, false); + if (quantityUsed > 0) { + quantityDesired -= quantityUsed; + + // create an adjustment and add it to the cartItem that implements the promotion action + double percentModifier = productPromoAction.get("amount") == null ? 0.0 : (productPromoAction.getDouble("amount").doubleValue()/100.0); + double lineAmount = quantityUsed * cartItem.getBasePrice(); + double discountAmount = -(lineAmount * percentModifier); + discountAmountTotal += discountAmount; + + // not doing this any more, now distributing among conditions and actions (see call below): doOrderItemPromoAction(productPromoAction, cartItem, discountAmount, "amount", delegator); + } + } + } + + if (quantityDesired == startingQuantity) { + // couldn't find any cart items to give a discount to, don't consider action run + actionResultInfo.ranAction = false; + } else { + double totalAmount = getCartItemsUsedTotalAmount(cart, productPromoAction); + + if (Debug.verboseOn()) Debug.logVerbose("Applying promo [" + productPromoAction.getPrimaryKey() + "]\n totalAmount=" + totalAmount + ", discountAmountTotal=" + discountAmountTotal, module); + distributeDiscountAmount(discountAmountTotal, totalAmount, getCartItemsUsed(cart, productPromoAction), productPromoAction, delegator); + actionResultInfo.ranAction = true; + actionResultInfo.totalDiscountAmount = discountAmountTotal; + actionResultInfo.quantityLeftInAction = quantityDesired; + } |
Free forum by Nabble | Edit this page |