[Date Prev][Date Next][Thread Prev][Thread Next][Minivend by date
][Minivend by thread
]
Re: Weights change by size, and multiple sizes
Tested or not, Mike, this worked BEAUTIFULLY!! Obscure enough to make
me dig a bit to understand, but in doing so, it's opened up a lot for me
where MiniVend's concerned...
Thank you so much... :)
Mark
mikeh@minivend.com wrote:
>
> ****** message to minivend-users from mikeh@minivend.com ******
>
> Quoting Mark Rushing (rushing@orbislumen.net):
> > ****** message to minivend-users from Mark Rushing <rushing@orbislumen.net> ******
> >
> > I'm very sorry to take up the bandwidth here -- I've gotten most of my
> > initial questions answered by the search engine on the minivend site --
> > thank you to whomever set that up.
> >
> > I have been unable to shed any light on my problem. I know there are
> > some cludge-y ways to accomplish this, but I was hoping for a more
> > elegant (simple) solution than what I've been able to come up with --
> > hopefully using the database structures and tags instead of code patches
> > here and there.
> >
> > Scenerio:
> >
> > Items have multiple sizes.
> > Each size is a different price. (hence, pricing.asc fields: code vs.
> > size = price)
> > Each size is a different weight.
> >
> > For computing shipping weights, which do you think?
> >
> > 1. A separate shipprice.asc database (code vs size = weight) -- if so,
> > how could I make the basket look up the weight with multiple sizes
> > possible?
> >
> > 2. Including extra fields in the pricing.asc database to designate
> > weights for sizes -- if so, how would I make it know a particularly
> > selected size was to be a corresponding weight, and similarly, how would
> > I make the basket know about this weight?
> >
> > It seems to always come down to the basket... :)
> >
>
> As it must. You didn't give any data examples, but I can guess...
>
> UserTag compute_weight Order cart
> UserTag compute_weight Routine <<EOR
> sub {
> my ($name) = @_;
>
> my $cart;
> if($name) {
> $cart = $Vend::Session->{carts}{$name};
> }
> else {
> $cart = $Vend::Items;
> }
> return 0 unless $cart;
>
> my $weight;
> foreach my $item (@$cart) {
> my $item_weight = 0;
> if ($item->{size}) {
> $item_weight = Vend::Interpolate::tag_data(
> 'pricing',
> "$item->{size}_weight",
> $item->{code},
> );
> }
> $item_weight = Vend::Interpolate::tag_data(
> 'products',
> 'weight',
> $item->{code},
> )
> if ! $item_weight;
> $weight += $item_weight;
> }
> return $weight;
> }
> EOR
>
> Untested, but it should work (minivend.cfg).
>
> --
> Mike Heins http://www.minivend.com/ ___
> Internet Robotics |_ _|____
> 131 Willow Lane, Floor 2 | || _ \
> It's a little-known fact Oxford, OH 45056 | || |_) |
> that the Y1K problem caused <mikeh@minivend.com> |___| _ <
> the Dark Ages. -- unknown 513.523.7621 FAX 7501 |_| \_\
> -
> To unsubscribe from the list, DO NOT REPLY to this message. Instead, send
> email with 'UNSUBSCRIBE minivend-users' in the body to Majordomo@minivend.com.
> Archive of past messages: http://www.minivend.com/minivend/minivend-list