From a9578eec2cbcda2d56f927666480bbe95c762bfe Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Wed, 28 Apr 2010 22:51:05 -0700 Subject: [PATCH] Always show a shipping selector dropdown, unless there are no shipping options available. --- lib/WebGUI/Shop/Cart.pm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/WebGUI/Shop/Cart.pm b/lib/WebGUI/Shop/Cart.pm index 100985056..298d23f99 100644 --- a/lib/WebGUI/Shop/Cart.pm +++ b/lib/WebGUI/Shop/Cart.pm @@ -1018,17 +1018,11 @@ sub www_view { my $ship = WebGUI::Shop::Ship->new($self->session); my $options = $ship->getOptions($self); my $numberOfOptions = scalar keys %{ $options }; - if ($numberOfOptions < 1) { + if (! $numberOfOptions) { $var{shippingOptions} = ''; $var{shippingPrice} = 0; $self->error($i18n->get("No shipping plugins configured")); } - elsif ($numberOfOptions == 1) { - my ($option) = keys %{ $options }; - $self->update({ shipperId => $option }); - $var{shippingPrice} = $options->{$option}->{hasPrice} ? $self->formatCurrency($options->{$option}->{price}) : ''; - $var{shippingOptions} = $options->{$option}->{label}; - } else { tie my %formOptions, 'Tie::IxHash'; $formOptions{''} = $i18n->get('Choose a shipping method'); @@ -1039,6 +1033,11 @@ sub www_view { } } my $shipperId = $self->get('shipperId'); + if (!$shipperId && $numberOfOptions == 1) { + my ($option) = keys %{ $options }; + $self->update({shipperId => $option}); + $shipperId = $option; + } $var{shippingOptions} = WebGUI::Form::selectBox($session, {name=>"shipperId", options=>\%formOptions, value=>$shipperId || ''}); if (!exists $options->{$shipperId}) { $self->update({shipperId => ''});