[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ic] Bug in $Tag->subtotal when items discounted?


At 09:55 AM 10/26/2004, you wrote:

Hello all,

I seem to have encountered a bug when using $Tag->subtotal in embedded perl while items are discounted. The discounted prices are not being used when the subtotal is called using perl. Example:

[discount 51005JT] $s * .75 [/discount]

[perl tables="products pricing"]

  my $stotal = $Tag->subtotal({name=> main, noformat => 1,});

  return $stotal;

[/perl]

The discounted price for the item is $6.75. I have one in my cart and the discounts display correctly. The value returned by my perl script shows a subtotal for the item at its regular price ($9).

The catalog's error.log says:

beads /cgi-bin/beads/process.html Discount for 51005JT has bad formula. Not applied.
> 'eval "string"' trapped by operation mask at (tag 'perl') line 1.
> (in cleanup) Undefined subroutine &main:: called at /usr/lib/perl5/5.8.1/i386-linux/Safe.pm line 223.


However, if I first assign the subtotal to a scratch variable and use that in my perl, it works fine. Like so:

[discount 51005JT] $s * .75 [/discount]
[tmp stot][subtotal noformat=1][/tmp]

[perl tables="products auscrystal pricing"]

  my $stotal = $Tag->scratch({name => stot,});

  return $stotal;

[/perl]

With the above approach, I get the correct subtotal and no error.log entry.


I can still accomplish what I'm doing using this alternat approach, but I thought this was worth mentioning. If this has already been reported or if it's not a bug and I'm just doing something wrong, please let me know.

Server Info:
    Interchange 5.0
    Apache-AdvancedExtranetServer/2.0.47
    Mandrake Linux/6.3.92mdk
    mod_perl/1.99_09
    Perl/v5.8.1
    mod_ssl/2.0.47
        OpenSSL/0.9.7b


Thanks,
Tom

I'm not sure if 'name=>' will cause a syntax error in Perl, but you should insert a space between 'name' and '=>' just to be safe. Other than that, try giving your catalog global powers. In interchange.cfg, add

        AllowGlobal yourcatname

and restart Interhchange. Then add 'global=1' to the opening [perl ...] tag and see if that fixes it.

- Ed


===============================================================
New Media E.M.S.              Technology Solutions for Business
11630 Fair Oaks Blvd., #250   eCommerce | Consulting | Hosting
Fair Oaks, CA  95628          suppressed
(916) 961-0446                http://www.newmediaems.com
(866) 519-4680 Toll-Free      (916) 961-0447 Fax
===============================================================
_______________________________________________
interchange-users mailing list
suppressed
http://www.icdevgroup.org/mailman/listinfo/interchange-users


Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.