[ic] Help? - PERL and Discount Calculation

Thomas J.M. Burton tom at globalfocusdm.com
Tue Apr 6 23:30:38 UTC 2010

Hello IC Users,

I'm working on setting up quantity pricing on a client's catalog and 
have run into a need for help on the last bit of code I'm writing.

First, a little context:
The products that will have quantity price breaks applied are displayed 
in a list view and will have pricing displayed for three tiers. In order 
to cut down on database queries and increase efficiency of the page 
displays, I've written a check-pricing usertag to check if an sku has 
data in the pricing table and using it like so:

     [if type="explicit" compare="[check-pricing code=[item-code]]"]
         ... show special tiered pricing display ...
         ... show normal pricing display ...

On its initial run, the usertag queries the pricing table and stores the 
results as a hash in a scratch variable. It then greps the hash for the 
presence of the sku passed to the usertag and returns a 1 if the sku is 
present in the pricing hash and a 0 if it's not. The scratch variable is 
used for all subsequent sku checks in the result page and for display of 
the quantity pricing information. (If this approach presents more of a 
potential performance issue than the multiple queries it avoids, please 
let me know.)

I have some separate embedded perl in the results page that displays the 
tiered pricing information for each item.

Now for my question:
The problem I'm having is in displaying discounted prices when discounts 
are applied to the items in question. Since I'm not using a [price] tag 
to display pricing for each tier, I need to add some code to my embedded 
perl that uses the sku's corresponding discount from 
$Session->{discount} to calculate the discounted price of each tier.
I'm setting discounts for products on the site using the discount tag, 
nothing out of the ordinary there. So $Session->{discount} typically 
looks something like this (except with discounts for many more skus than 
those snipped here):

   'MB6SL' =>  '$s * 0.9',
   'TT537-BR-SP' =>  '$s * 0.8',
   '500516CRYSAB' =>  '$s*0.9',
   '473714CRYSCOP' =>  '$s*0.9',
   'ABCC03' =>  '$s * 0.8'

What would be the best way to take the value of an sku's discount 
setting and apply that calculation to a quantity price that I have 
assigned to a variable in my embedded perl? In other words, if I have a 
$price for each tier and want to calculate $s * 0.9 but use $price 
instead of $s, how best would I do that?

I hope this makes sense and that someone out there on the list has a 
helpful answer.

Thanks in advance!

Global Focus Digital Media, LLC


More information about the interchange-users mailing list