MiniVend Akopia Services

[Date Prev][Date Next][Thread Prev][Thread Next][Minivend by date ][Minivend by thread ]

Re: Shipping _syntax_ proposal (Was Re: UPS Shipping Returns $0.00(Continue))




Much food for thought.  I don't really want to revamp all my shipping
stuff now (no time as I am on a different non MV project right now), but
for the future, I will definitely look at using this stuff!

Best,
Kyle

On Thu, 26 Aug 1999 mikeh@minivend.com wrote:

> ******    message to minivend-users from mikeh@minivend.com     ******
> 
> Quoting Kyle Hayes (kyle540@quicknet.net):
> > > expert_shipping	Shipping	[my-criteria]	0	99999999	f [my-shipping]
> > 
> > Hmm, this is simpler...
>  
> Not only that, you can have a series of modes that are set by the criterion:
> 
> default	Shipping - one size fits all	[ship-mode]	0	0	e Contact Factory
> default	FedEx	placeholder	1	1	f [fedex based_on=weight]
> default	UPS Ground	placeholder	2	2	f [ups based_on=weight table=Ground]
> default	DHL Ground	placeholder	3	3	f [dhl expedite="[value expedite]"]
> 
> UserTag	ship-mode	Routine <<EOR
> sub {
> 	if($::Values->{shipping_wanted} eq 'UPS' and $Values->{country} eq 'US') {
> 		return 1;
> 	}
> 	elsif (etc()) {
> 		return 2;
> 	}
> }
> EOS
> 
> Again, I believe the mechanisms are all there.
> 
> > code	value
> > 
> > default	You lose homeboy.
> > error	Houston, we have a problem
> > upsg	[ups type=Ground weight="@@TOTAL"]
> > upsgi	[ups_insured type=Ground weight="@@TOTAL@@"]
> > dhl	[dhl state=[value state] country=[value country]]
> > ...
> > 
> > 
> > Look up the shipping type.  If not found, use default.  If found,
> > interpolate the "value" column.  
> 
> That is essentially what is going on here. It might perhaps be
> nice to set up some conditionals, but you can do almost anything
> as it is.
> 
> The only thing that is changing about all of this in MV4 at
> this point is that:
> 
> 	1. I will have a "z" identifier that is the same as "f" but
> 	goes on to the next shipping mode if the cost is zero.
> 
> 	2. I will specify a syntax for defining a subroutine right
> 	in the shipping file, one that uses the new [perl] -- [calc] --
> 	[mvasp] object framework. Plus you can do neat things like:
> 
> 	[perl global=1]
> 		$Tag->locale_format('0');
> 		my $subtotal = $Tag->subtotal();
> 		$query = <<EOF
> SELECT shipmode FROM shipping
> 	WHERE country LIKE country
> 	and   minimum >= $subtotal
> EOF
> 		$ary = $Tag->query($query);
> 		foreach $ref (@$ary) {
> 			my $mode = $ref->[0];
> 			my $prelim = $Tag->shipping($mode);
> 			next if $prelim <= 0;
> 			push @out, $mode;
> 		}
> 		$Scratch->{shipmodes} = join "\n", @out;
> 		return;
> 	[/perl]
> 
> 	<SELECT NAME=mv_shipmode>
> 	[loop list="[scratch shipmodes]" option=mv_shipmode]
> 		<OPTION VALUE="[loop-code]"> [shipping-desc [loop-code]]
> 	[/loop]
> 	</SELECT>
> 
> In the unlikely category, I have thought of doing a shipping "wizard"
> that would query about shipping types and produce tables based on country, weight,
> mode, price, etc. I don't mind the coding there so much as I do developing
> the questions. 8-)
> 
> > 
> > I am not sure about the @@TOTAL@@ stuff.  It would probably be better to
> > be able to specify tags that do this:
> > 
> > [sum-items field="weight"]
> > [sum-items field="quantity"]
> 
> UserTag does that one real easy.
> 
> UserTag sum-items Order field
> UserTag sum-items Routine <<EOR
> sub {
> 	my $field = shift;
> 	my $total = 0;
> 	foreach my $item (@$Vend::Items) {
> 		if (defined $item->{$field}) {
> 			$total += $item->{$field};
> 		}
> 		else {
> 			$total += product_field($field, $item->{code});
> 		}
> 	}
> 	return $total;
> }
> EOR
> 
> I have thought about enhancing the [on-change] tag to do something
> like this for reporting.
> 
> -- 
> 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
> 



Search for: Match: Format: Sort by: