From 1b1e0792146d9963fe7debc0309478f819feb29c Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Fri, 23 Apr 2010 10:26:17 -0700 Subject: [PATCH] Shipping and billing address forms are now in the cart if you're logged in. --- .../default-shopping-cart-template.wgpkg | Bin 3299 -> 3761 bytes lib/WebGUI/Shop/AddressBook.pm | 107 +++++++++--------- lib/WebGUI/Shop/Cart.pm | 4 +- 3 files changed, 57 insertions(+), 54 deletions(-) diff --git a/docs/upgrades/packages-7.9.4/default-shopping-cart-template.wgpkg b/docs/upgrades/packages-7.9.4/default-shopping-cart-template.wgpkg index da35d5d7b3b61ee9a81bbb4e738578f932d6f310..5ea9fc86778b3f005ab3d61681f686453ffcf3a9 100644 GIT binary patch literal 3761 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 biJxyczDeMl1inciD1rY0ow^wl08jt`F1S*C literal 3299 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 diff --git a/lib/WebGUI/Shop/AddressBook.pm b/lib/WebGUI/Shop/AddressBook.pm index 063617703..f6ee1b550 100644 --- a/lib/WebGUI/Shop/AddressBook.pm +++ b/lib/WebGUI/Shop/AddressBook.pm @@ -56,6 +56,61 @@ sub addAddress { #------------------------------------------------------------------- +=head2 appendAddressFormVars ( $var, $properties, $prefix ) + +Add template variables for building a form to edit an address to an existing set of template variables. + +=head3 $var + +A hash ref of template variables. + +=head3 $properties + +A hash ref of properties to assign to as default to the form variables. + +=head3 $prefix + +An optional prefix to add to each variable name, and form name. + +=cut + +sub appendAddressFormVars { + my ($self, $var, $prefix, $properties ) = @_; + my $session = $self->session; + $properties ||= {}; + $prefix ||= ''; + $var ||= {}; + for ( qw{ address1 address2 address3 label firstName lastName city state organization } ) { + $var->{ $prefix . $_ . 'Field' } = WebGUI::Form::text( $session, { + name => $prefix . $_, + maxlength => 35, + defaultValue => $properties->{ $_ } + } ); + } + $var->{ $prefix . 'countryField' } = + WebGUI::Form::country( $session,{ + name => $prefix . 'country', + defaultValue => $properties->{ country } + } ); + $var->{ $prefix . 'codeField' } = + WebGUI::Form::zipcode( $session, { + name => $prefix . 'code', + defaultValue => $properties->{ code } + } ); + $var->{ $prefix . 'phoneNumberField' } = + WebGUI::Form::phone( $session, { + name => $prefix . 'phoneNumber', + defaultValue => $properties->{ phoneNumber } + } ); + $var->{ $prefix . 'emailField' } = + WebGUI::Form::email( $session, { + name => $prefix . 'email', + defaultValue => $properties->{ email } + } ); +} + +#------------------------------------------------------------------- + =head2 create ( session, userId ) Constructor. Creates a new address book for this user. @@ -185,58 +240,6 @@ sub getAddresses { #------------------------------------------------------------------- -=head2 getAddressFormVars ( $properties, $prefix ) - -Return a hashref of template variables for building a form to edit an address. - -=head3 $properties - -A hash ref of properties to assign to as default to the form variables. - -=head3 $prefix - -An optional prefix to add to each variable name, and form name. - -=cut - -sub getAddressFormVars { - my ($self, $prefix, $properties ) = @_; - my $session = $self->session; - $properties ||= {}; - $prefix ||= ''; - my $var = {}; - for ( qw{ address1 address2 address3 label firstName lastName city state organization } ) { - $var->{ $prefix . $_ . 'Field' } = WebGUI::Form::text( $session, { - name => $prefix . $_, - maxlength => 35, - defaultValue => $properties->{ $_ } - } ); - } - $var->{ $prefix . 'countryField' } = - WebGUI::Form::country( $session,{ - name => $prefix . 'country', - defaultValue => $properties->{ country } - } ); - $var->{ $prefix . 'codeField' } = - WebGUI::Form::zipcode( $session, { - name => $prefix . 'code', - defaultValue => $properties->{ code } - } ); - $var->{ $prefix . 'phoneNumberField' } = - WebGUI::Form::phone( $session, { - name => $prefix . 'phoneNumber', - defaultValue => $properties->{ phoneNumber } - } ); - $var->{ $prefix . 'emailField' } = - WebGUI::Form::email( $session, { - name => $prefix . 'email', - defaultValue => $properties->{ email } - } ); - return $var; -} - -#------------------------------------------------------------------- - =head2 getDefaultAddress () Returns the default address for this address book if there is one. Otherwise throws a WebGUI::Error::ObjectNotFound exception. diff --git a/lib/WebGUI/Shop/Cart.pm b/lib/WebGUI/Shop/Cart.pm index 1c6eb5587..9cbcc3cd1 100644 --- a/lib/WebGUI/Shop/Cart.pm +++ b/lib/WebGUI/Shop/Cart.pm @@ -901,8 +901,8 @@ sub www_view { else { ##Address form variables my $addressBook = $self->getAddressBook; - %var = (%var, $addressBook->getAddressFormVars('shipping', {})); - %var = (%var, $addressBook->getAddressFormVars('billing', {})); + $addressBook->appendAddressFormVars(\%var, 'shipping_', {}); + $addressBook->appendAddressFormVars(\%var, 'billing_', {}); } # POS variables