[ic] How to retrieve item options data in a perl block

Mike Heins mike at perusion.com
Wed May 5 11:27:42 EDT 2004


Quoting Joachim Schubert (as at freibergnet.de):
> Hi interchangers,
> 
> this is IC 5.0* on FreeBSD with postgres.
> I have some items with simple options 
> (new options: OptionsEnable option_type in etc/after.cfg). 
> 
> For further processing i would like to retrieve the selected 
> item options data from basket. In IC i have:
> [item-list]
>    [item-options type=value report=1]
> [/item-list] 
> 
> Now i don't now how to code this in a perl block / usertag.
> Currently a use a scratch variable, but this isn't elegant.  
> 
> The following doesn't work as expected:
> 
> [calc]
> my $out;
> my $cart = $Carts->{main};
> my %options = (report => '1', type => 'value');
> my $opt = \%options;
> foreach my $item (@$cart) {
>  $out .= $item->{code} ."-";
>  $out .= $item->{quantity} ."-";
>  $out .= $Tag->options( $item->{code},
>                       undef,               
>                       $opt,
>                       $item, );
> 
>  $out .= "<br>";
> }
> return $out;
> [/calc]
> 
> The options-tag returns html form fields, but i need the data like
> optionname: optionvalue. How can a get these options-data?

Each option is represented in the item hash. Since you are already
in the cart:

        my @out;
        foreach my $item (@$cart) {
                my @keys = keys %$item;
                @keys = grep $_ !~ /^mv_/, @keys;
                for (sort @keys) {
                        push @out, "$_: $item->{$_}";
                }
                push @out, '';
        }

        return join "<br>", @out;

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.647.1295  tollfree 800-949-1889 <mike at perusion.com>

Fast, reliable, cheap.  Pick two and we'll talk.  -- unknown


More information about the interchange-users mailing list