diff --git a/docs/upgrades/packages-7.5.11/shopping-cart-collateral-items-1.wgpkg b/docs/upgrades/packages-7.5.11/shopping-cart-collateral-items-1.wgpkg index ed495d051..c60a51efe 100644 Binary files a/docs/upgrades/packages-7.5.11/shopping-cart-collateral-items-1.wgpkg and b/docs/upgrades/packages-7.5.11/shopping-cart-collateral-items-1.wgpkg differ diff --git a/docs/upgrades/upgrade_7.5.10-7.5.11.pl b/docs/upgrades/upgrade_7.5.10-7.5.11.pl index ebcdc38d3..2d6d6f973 100644 --- a/docs/upgrades/upgrade_7.5.10-7.5.11.pl +++ b/docs/upgrades/upgrade_7.5.10-7.5.11.pl @@ -686,6 +686,8 @@ sub migrateToNewCart { $session->db->write("drop table shoppingCart"); $session->setting->add('shopCartTemplateId','aIpCmr9Hi__vgdZnDTz1jw'); $session->config->addToHash("macros","ViewCart","ViewCart"); + $session->config->addToHash("macros","CartItemCount","CartItemCount"); + $session->config->addToHash("macros","MiniCart","MiniCart"); } #------------------------------------------------- diff --git a/etc/WebGUI.conf.original b/etc/WebGUI.conf.original index 8b0baa8d9..ae1bbae02 100644 --- a/etc/WebGUI.conf.original +++ b/etc/WebGUI.conf.original @@ -333,7 +333,7 @@ "#" : "Hash_userId", "/" : "Slash_gatewayUrl", "@" : "At_username", - "ViewCart" : "ViewCart", + "a" : "a_account", "AOIHits" : "AOIHits", "AOIRank" : "AOIRank", "AdminBar" : "AdminBar", @@ -341,8 +341,11 @@ "AdminToggle" : "AdminToggle", "AdSpace" : "AdSpace", "AssetProxy" : "AssetProxy", + "c" : "c_companyName", "CanEditText" : "CanEditText", + "CartItemCount" : "CartItemCount", "D" : "D_date", + "e" : "e_companyEmail", "EditableToggle" : "EditableToggle", "Extras" : "Extras", "FetchMimeType" : "FetchMimeType", @@ -355,20 +358,19 @@ "L" : "L_loginBox", "LastModified" : "LastModified", "LoginToggle" : "LoginToggle", + "MiniCart" : "MiniCart", "Page" : "Page", "PageTitle" : "PageTitle", "PageUrl" : "PageUrl", + "r" : "r_printable", "RandomAssetProxy" : "RandomAssetProxy", "RandomThread" : "RandomThread", "RootTitle" : "RootTitle", "Spacer" : "Spacer", "Thumbnail" : "Thumbnail", - "User" : "User", - "a" : "a_account", - "c" : "c_companyName", - "e" : "e_companyEmail", - "r" : "r_printable", "u" : "u_companyUrl" + "User" : "User", + "ViewCart" : "ViewCart", }, #Specify any LDAP aliases for synchronizing user profiles to LDAP diff --git a/lib/WebGUI/Asset/Sku.pm b/lib/WebGUI/Asset/Sku.pm index bc8562a91..0e52a23f2 100644 --- a/lib/WebGUI/Asset/Sku.pm +++ b/lib/WebGUI/Asset/Sku.pm @@ -169,7 +169,7 @@ Returns a reference to the current session's cart. sub getCart { my $self = shift; - return WebGUI::Shop::Cart->getCartBySession($self->session); + return WebGUI::Shop::Cart->newBySession($self->session); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Sku/Product.pm b/lib/WebGUI/Asset/Sku/Product.pm index fc195bb05..1fb870c54 100644 --- a/lib/WebGUI/Asset/Sku/Product.pm +++ b/lib/WebGUI/Asset/Sku/Product.pm @@ -1448,7 +1448,7 @@ sub view { 'variant_controls' => $segment, 'variant_sku' => $collateral->{varSku}, 'variant_title' => $collateral->{shortdesc}, - 'variant_price' => $collateral->{price}, + 'variant_price' => sprintf("%.2f", $collateral->{price}), 'variant_weight' => $collateral->{weight}, 'variant_quantity' => $collateral->{quantity}, }); diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index 719394b67..2608c5caa 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -411,7 +411,7 @@ sub www_buildBadge { manageEventMetaFieldsUrl => $self->getUrl('func=manageEventMetaFields'), ); my @otherBadges =(); - my $cart = WebGUI::Shop::Cart->getCartBySession($session); + my $cart = WebGUI::Shop::Cart->newBySession($session); foreach my $item (@{$cart->getItems}) { my $id = $item->get('options')->{badgeId}; next if ($id eq $badgeId); @@ -755,7 +755,7 @@ sub www_getRegistrantAsJson { } # see what's in the cart - my $cart = WebGUI::Shop::Cart->getCartBySession($session); + my $cart = WebGUI::Shop::Cart->newBySession($session); foreach my $item (@{$cart->getItems}) { # not related to this badge, so skip it next unless $item->get('options')->{badgeId} eq $badgeId; @@ -1478,7 +1478,7 @@ sub www_removeItemFromBadge { my $session = $self->session; return $session->privilege->insufficient() unless $self->canView; my $form = $session->form; - my $cart = WebGUI::Shop::Cart->getCartBySession($session); + my $cart = WebGUI::Shop::Cart->newBySession($session); my $item = $cart->getItem($form->get('itemId')); $item->remove; return $self->www_getRegistrantAsJson(); diff --git a/lib/WebGUI/Content/Shop.pm b/lib/WebGUI/Content/Shop.pm index fb00abce2..ed5775f60 100644 --- a/lib/WebGUI/Content/Shop.pm +++ b/lib/WebGUI/Content/Shop.pm @@ -133,7 +133,7 @@ sub www_cart { my $session = shift; my $output = undef; my $method = "www_". ( $session->form->get("method") || "view"); - my $cart = WebGUI::Shop::Cart->getCartBySession($session); + my $cart = WebGUI::Shop::Cart->newBySession($session); if ($cart->can($method)) { $output = $cart->$method(); } diff --git a/lib/WebGUI/Help/Shop.pm b/lib/WebGUI/Help/Shop.pm new file mode 100644 index 000000000..e7a87c255 --- /dev/null +++ b/lib/WebGUI/Help/Shop.pm @@ -0,0 +1,382 @@ +package WebGUI::Help::Shop; + +use strict; + + +our $HELP = { + 'minicart template' => { + title => 'minicart template', + body => 'minicart template help', + isa => [], + fields => [], + variables => [ + { + name => "items", + description => "items loop help", + required => 1, + variables => [ + { + name => "name", + description => "item name help", + required => 1, + }, + { + name => "quantity", + description => "quantity help", + }, + { + name => "price", + description => "price help", + }, + { + name => "url", + description => "item url help", + }, + ], + }, + { + name => "totalPrice", + description => "totalPrice help", + }, + { + name => "totalItems", + description => "totalItems help", + }, + ], + related => [ + { + tag => 'cart template', + namespace => 'Shop', + }, + ], + }, + 'cart template' => { + title => 'cart template', + body => 'cart template help', + isa => [], + fields => [], + variables => [ + { + name => "items", + description => "items loop help", + required => 1, + variables => [ + { + name => "configuredTitle", + description => "configuredTitle help", + required => 1, + }, + { + name => "quantity", + description => "quantity help", + }, + { + name => "dateAdded", + description => "dateAdded help", + }, + { + name => "url", + description => "item url help", + }, + { + name => "quantityField", + description => "quantityField help", + required => 1, + }, + { + name => "isUnique", + description => "isUnique help", + }, + { + name => "isShippable", + description => "isShippable help", + }, + { + name => "extendedPrice", + description => "extendedPrice help", + }, + { + name => "price", + description => "price help", + }, + { + name => "removeButton", + description => "removeButton help", + required => 1, + }, + { + name => "shipToButton", + description => "item shipToButton help", + }, + { + name => "shippingAddress", + description => "shippingAddress help", + }, + ], + }, + { + name => "error", + description => "error help", + required => 1, + }, + { + name => "formHeader", + description => "formHeader help", + required => 1, + }, + { + name => "formFooter", + description => "formFooter help", + required => 1, + }, + { + name => "checkoutButton", + description => "checkoutButton help", + required => 1, + }, + { + name => "updateButton", + description => "updateButton help", + required => 1, + }, + { + name => "continueShoppingButton", + description => "continueShoppingButton help", + }, + { + name => "chooseShippingButton", + description => "chooseShippingButton help", + required => 1, + }, + { + name => "shipToButton", + description => "shipToButton help", + }, + { + name => "subtotalPrice", + description => "subtotalPrice help", + }, + { + name => "shippingPrice", + description => "shippingPrice help", + }, + { + name => "tax", + description => "tax help", + }, + { + name => "hasShippingAddress", + description => "hasShippingAddress help", + }, + { + name => "shippingAddress", + description => "shippingAddress help", + }, + { + name => "shippingOptions", + description => "shippingOptions help", + required => 1, + }, + { + name => "totalPrice", + description => "totalPrice help", + required => 1, + }, + { + name => "inShopCreditAvailable", + description => "inShopCreditAvailable help", + }, + { + name => "inShopCreditDeduction", + description => "inShopCreditDeduction help", + }, + ], + related => [ + { + tag => 'minicart template', + namespace => 'Shop', + }, + { + tag => 'address book template', + namespace => 'Shop', + }, + ], + }, + 'address book template' => { + title => 'address book template', + body => 'address book template help', + isa => [], + fields => [], + variables => [ + { + name => "addresses", + description => "addresses loop help", + required => 1, + variables => [ + { + name => "address", + description => "address help", + required => 1, + }, + { + name => "editButton", + description => "editButton help", + required => 1, + }, + { + name => "deleteButton", + description => "deleteButton help", + required => 1, + }, + { + name => "useButton", + description => "useButton help", + required => 1, + }, + ], + }, + { + name => "addButton", + description => "addButton help", + required => 1, + }, + ], + related => [ + { + tag => 'cart template', + namespace => 'Shop', + }, + { + tag => 'edit address template', + namespace => 'Shop', + }, + ], + }, + + 'edit address template' => { + title => 'edit address template', + body => 'edit address template help', + isa => [], + fields => [], + variables => [ + { + name => "address1", + description => "address1 help", + }, + { + name => "address2", + description => "address2 help", + }, + { + name => "address3", + description => "address3 help", + }, + { + name => "state", + description => "state help", + }, + { + name => "city", + description => "city help", + }, + { + name => "label", + description => "label help", + }, + { + name => "name", + description => "name help", + }, + { + name => "country", + description => "country help", + }, + { + name => "code", + description => "code help", + }, + { + name => "phoneNumber", + description => "phoneNumber help", + }, + { + name => "error", + description => "error help", + required => 1, + }, + { + name => "formHeader", + description => "formHeader help", + required => 1, + }, + { + name => "formFooter", + description => "formFooter help", + required => 1, + }, + { + name => "saveButton", + description => "saveButton help", + required => 1, + }, + { + name => "address1Field", + description => "address1Field help", + required => 1, + }, + { + name => "address2Field", + description => "address2Field help", + required => 1, + }, + { + name => "address3Field", + description => "address3Field help", + required => 1, + }, + { + name => "labelField", + description => "address labelField help", + required => 1, + }, + { + name => "nameField", + description => "addres nameField help", + required => 1, + }, + { + name => "cityField", + description => "cityField help", + required => 1, + }, + { + name => "stateField", + description => "stateField help", + required => 1, + }, + { + name => "countryField", + description => "countryField help", + required => 1, + }, + { + name => "codeField", + description => "codeField help", + required => 1, + }, + { + name => "phoneNumberField", + description => "phoneNumberField help", + required => 1, + }, + ], + related => [ + { + tag => 'address book template', + namespace => 'Shop', + }, + ], + }, +}; + +1; diff --git a/lib/WebGUI/Help/_help.skeleton b/lib/WebGUI/Help/_help.skeleton index 5fbc528ff..b6985b619 100644 --- a/lib/WebGUI/Help/_help.skeleton +++ b/lib/WebGUI/Help/_help.skeleton @@ -1,4 +1,4 @@ -package WebGUI::Help::Asset_FlatDiscount; +package WebGUI::Help::Skeleton; use strict; diff --git a/lib/WebGUI/Macro/CartItemCount.pm b/lib/WebGUI/Macro/CartItemCount.pm new file mode 100644 index 000000000..153dd96e3 --- /dev/null +++ b/lib/WebGUI/Macro/CartItemCount.pm @@ -0,0 +1,44 @@ +package WebGUI::Macro::CartItemCount; + +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2008 Plain Black Corporation. +#------------------------------------------------------------------- +# Please read the legal notices (docs/legal.txt) and the license +# (docs/license.txt) that came with this distribution before using +# this software. +#------------------------------------------------------------------- +# http://www.plainblack.com info@plainblack.com +#------------------------------------------------------------------- + +use strict; +use WebGUI::Shop::Cart; + +=head1 NAME + +Package WebGUI::Macro::CartItemCount + +=head1 DESCRIPTION + +Returns an integer of the number of items currently in the cart. + +=head2 process( $session ) + +Renders the macro. + +=cut + + +#------------------------------------------------------------------- +sub process { + my ($session) = @_; + my $cart = WebGUI::Shop::Cart->newBySession($session); + my $count = 0; + foreach my $item (@{$cart->getItems}) { + $count += $item->get('quantity'); + } + return $count; +} + +1; + + diff --git a/lib/WebGUI/Macro/MiniCart.pm b/lib/WebGUI/Macro/MiniCart.pm new file mode 100644 index 000000000..5a0448b86 --- /dev/null +++ b/lib/WebGUI/Macro/MiniCart.pm @@ -0,0 +1,68 @@ +package WebGUI::Macro::MiniCart; + +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2008 Plain Black Corporation. +#------------------------------------------------------------------- +# Please read the legal notices (docs/legal.txt) and the license +# (docs/license.txt) that came with this distribution before using +# this software. +#------------------------------------------------------------------- +# http://www.plainblack.com info@plainblack.com +#------------------------------------------------------------------- + +use strict; +use WebGUI::Asset::Template; +use WebGUI::Shop::Cart; + + +=head1 NAME + +Package WebGUI::Macro::MiniCart + +=head1 DESCRIPTION + +Displays a miniature view of the shopping cart. + +=head2 process( $session, [templateId]) + +Renders the macro. + +=head3 templateId + +Pass in a template id other than the default. + +=cut + + +#------------------------------------------------------------------- +sub process { + my ($session, $templateId) = @_; + my $cart = WebGUI::Shop::Cart->newBySession($session); + my @items = (); + my $totalItems = 0; + my $totalPrice = 0; + foreach my $item (@{$cart->getItems}) { + my $sku = $item->getSku; + my $price = $sku->getPrice; + my $quantity = $item->get('quantity'); + push @items, { + name => $item->get('configuredTitle'), + quantity => $quantity, + price => $price, + url => $sku->getUrl('shop=cart;method=viewItem;itemId='.$item->getId), + }; + $totalItems += $quantity; + $totalPrice += $quantity * $price; + } + my %var = ( + items => \@items, + totalPrice => sprintf(".2f",$totalPrice), + totalItems => $totalItems, + ); + my $template = WebGUI::Asset::Template->new($session, $templateId || 'EBlxJpZQ9o-8VBOaGQbChA'); + return $template->process(\%var); +} + +1; + + diff --git a/lib/WebGUI/Macro/ViewCart.pm b/lib/WebGUI/Macro/ViewCart.pm index b75d65d62..e72815ff6 100644 --- a/lib/WebGUI/Macro/ViewCart.pm +++ b/lib/WebGUI/Macro/ViewCart.pm @@ -27,7 +27,7 @@ Renders the macro. =head3 linktext -Defaults to "View Cart". +Defaults to "View Cart". "linkonly" will return only the URL to the cart. =cut @@ -35,10 +35,16 @@ Defaults to "View Cart". #------------------------------------------------------------------- sub process { my ($session, $text) = @_; - unless ($text) { + my $url = $session->url->page("shop=cart"); + if ($text eq "linkonly") { + return $url; + } + elsif ($text) { + # us text specified + } + else { $text = WebGUI::International->new($session,"Shop")->get("view cart"); } - my $url = $session->url->page("shop=cart"); return ''.$text.' '.$text.''; } diff --git a/lib/WebGUI/Shop/Cart.pm b/lib/WebGUI/Shop/Cart.pm index aff32a7db..cf9a7d727 100644 --- a/lib/WebGUI/Shop/Cart.pm +++ b/lib/WebGUI/Shop/Cart.pm @@ -272,28 +272,6 @@ sub getAddressBook { #------------------------------------------------------------------- -=head2 getCartBySession ( session ) - -Class method that figures out if the user has a cart in their session. If they do it returns it. If they don't it creates it and returns it. - -=head3 session - -A reference to the current session. - -=cut - -sub getCartBySession { - my ($class, $session) = @_; - unless (defined $session && $session->isa("WebGUI::Session")) { - WebGUI::Error::InvalidObject->throw(expected=>"WebGUI::Session", got=>(ref $session), error=>"Need a session."); - } - my $cartId = $session->db->quickScalar("select cartId from cart where sessionId=?",[$session->getId]); - return $class->new($session, $cartId) if (defined $cartId); - return $class->create($session); -} - -#------------------------------------------------------------------- - =head2 getId () Returns the unique id for this cart. @@ -460,6 +438,28 @@ sub new { #------------------------------------------------------------------- +=head2 newBySession ( session ) + +Class method that figures out if the user has a cart in their session. If they do it returns it. If they don't it creates it and returns it. + +=head3 session + +A reference to the current session. + +=cut + +sub newBySession { + my ($class, $session) = @_; + unless (defined $session && $session->isa("WebGUI::Session")) { + WebGUI::Error::InvalidObject->throw(expected=>"WebGUI::Session", got=>(ref $session), error=>"Need a session."); + } + my $cartId = $session->db->quickScalar("select cartId from cart where sessionId=?",[$session->getId]); + return $class->new($session, $cartId) if (defined $cartId); + return $class->create($session); +} + +#------------------------------------------------------------------- + =head2 onCompletePurchase () Deletes all the items in the cart without calling $item->remove() on them which would affect inventory levels. See also delete() and empty(). diff --git a/lib/WebGUI/Shop/Pay.pm b/lib/WebGUI/Shop/Pay.pm index 801b4f48a..29beeec97 100644 --- a/lib/WebGUI/Shop/Pay.pm +++ b/lib/WebGUI/Shop/Pay.pm @@ -356,7 +356,7 @@ sub www_selectPaymentGateway { my $self = shift; my $session = $self->session; - my $cart = WebGUI::Shop::Cart->getCartBySession( $session ); + my $cart = WebGUI::Shop::Cart->newBySession( $session ); my $i18n = WebGUI::International->new( $session, 'Shop' ); # Make sure the user is logged in. diff --git a/lib/WebGUI/Shop/PayDriver.pm b/lib/WebGUI/Shop/PayDriver.pm index 7cb2d2d04..13a2ef332 100644 --- a/lib/WebGUI/Shop/PayDriver.pm +++ b/lib/WebGUI/Shop/PayDriver.pm @@ -281,7 +281,7 @@ Returns the WebGUI::Shop::Cart object for the current session. sub getCart { my $self = shift; - my $cart = WebGUI::Shop::Cart->getCartBySession( $self->session ); + my $cart = WebGUI::Shop::Cart->newBySession( $self->session ); return $cart; } diff --git a/lib/WebGUI/i18n/English/Shop.pm b/lib/WebGUI/i18n/English/Shop.pm index 321ec5541..af4023696 100644 --- a/lib/WebGUI/i18n/English/Shop.pm +++ b/lib/WebGUI/i18n/English/Shop.pm @@ -21,6 +21,354 @@ our $I18N = { context => q|a link label|, }, + 'minicart template' => { + message => q|MiniCart Template|, + lastUpdated => 0, + context => q|a help title|, + }, + + 'address book template' => { + message => q|Address Book Template|, + lastUpdated => 0, + context => q|a help title|, + }, + + 'edit address template' => { + message => q|Edit Address Template|, + lastUpdated => 0, + context => q|a help title|, + }, + + 'cart template' => { + message => q|Cart Template|, + lastUpdated => 0, + context => q|a help title|, + }, + + 'address book template' => { + message => q|Address Book Template|, + lastUpdated => 0, + context => q|a help title|, + }, + + 'quantity help' => { + message => q|The number of this item that is purchased.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'item name help' => { + message => q|The name or title of the product.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'price help' => { + message => q|The amount this items costs to purchase.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'configuredTitle help' => { + message => q|The name of the item as configured for purchase.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'dateAdded help' => { + message => q|The date and time this item was added to the cart.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'isUnique help' => { + message => q|A condition indicating whether this item is unique and therefore can only have a quantity of 1.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'quantityField help' => { + message => q|The field where the user may specify the quantity of the item they wish to purchase.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'isShippable help' => { + message => q|A condition indicating whether the item can have a shipping address attached to it.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'extendedPrice help' => { + message => q|The result of price multipled by quantity.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'removeButton help' => { + message => q|Clicking this button will remove the item from the cart.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'item shipToButton help' => { + message => q|Clicking this button will set an alternate address as the destination of this item.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'shippingAddress help' => { + message => q|The HTML formatted address to ship to.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'error help' => { + message => q|If there are any problems the error message will be displayed here.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'formHeader help' => { + message => q|The top of the form.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'formFooter help' => { + message => q|The bottom of the form.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'checkoutButton help' => { + message => q|The button the user pushes to choose a payment method.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'continueShoppingButton help' => { + message => q|Clicking this button will take the user back to the site.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'updateButton help' => { + message => q|Clicking this button will apply the changes you made to the cart and recalculate all the prices.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'chooseShippingButton help' => { + message => q|Clicking this button will let the user pick a shipping address from the address book.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'shipToButton help' => { + message => q|Does the same as the chooseShippingButton.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'subtotalPrice help' => { + message => q|The price of all the items in the cart.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'shippingPrice help' => { + message => q|The price of shipping on all the items in the cart.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'tax help' => { + message => q|The price of tax on all the items in the cart.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'hasShippingAddress help' => { + message => q|A condition indicating whether the the user has already specified a shipping address. Shipping address is always required in order to calculate taxes.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'shippingOptions help' => { + message => q|A select list containing all the configured shipping options for this order.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'inShopCreditAvailable help' => { + message => q|The amount of in-shop credit the user has.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'inShopCreditDeduction help' => { + message => q|The amount of in-shop credit that has been applied to this order.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'totalPrice help' => { + message => q|The total checkout price of the cart as it stands currently.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'totalItems help' => { + message => q|The total number of items in the cart.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'item url help' => { + message => q|The url to view this item as configured.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'items loop help' => { + message => q|A loop containing the variables of each item in the cart.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'minicart template help' => { + message => q|The following variables are available in the template for the MiniCart macro.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'cart template help' => { + message => q|The following variables are available in the shopping cart template.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'address book template help' => { + message => q|The following variables are available for templating the Address Book.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'address book template help' => { + message => q|The following variables are available from in the address book template.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'address loop help' => { + message => q|A loop containing the list of addresses in this book and their management tools.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'address help' => { + message => q|An HTML formatted address.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'editButton help' => { + message => q|A button that will allow the user to edit an existing address.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'deleteButton help' => { + message => q|A button that will allow the user to delete an existing address.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'useButton help' => { + message => q|A button that will allow the user to select an existing address for use on a form.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'addButton help' => { + message => q|A button that will allow the user to add a new address.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'edit address template help' => { + message => q|The following variables are available in the edit address template.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'saveButton help' => { + message => q|The default save button for the form.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'address1Field help' => { + message => q|The field for the main address line.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'address2Field help' => { + message => q|The field for the secondary address line.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'address3Field help' => { + message => q|The field for the tertiary address line.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'address labelField help' => { + message => q|A field to contain the address label like 'home' or 'work'.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'address nameField help' => { + message => q|A field to contain the name of the person/company for this address.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'cityField help' => { + message => q|A field to contain the city for this address.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'stateField help' => { + message => q|A field to contain the state or province for this address.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'countryField help' => { + message => q|A field to contain the country for this address.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'codeField help' => { + message => q|A field to contain the zip code or postal code for this address.|, + lastUpdated => 0, + context => q|a help description|, + }, + + 'phoneNumberField help' => { + message => q|A field to contain the phone number for this address.|, + lastUpdated => 0, + context => q|a help description|, + }, + 'view cart' => { message => q|View Cart|, lastUpdated => 0, diff --git a/t/Shop/Cart.t b/t/Shop/Cart.t index ba8f088a3..56ef3a80f 100644 --- a/t/Shop/Cart.t +++ b/t/Shop/Cart.t @@ -37,7 +37,7 @@ plan tests => 20; # Increment this number for each test you create #---------------------------------------------------------------------------- # put your tests here -throws_deeply ( sub { my $cart = WebGUI::Shop::Cart->getCartBySession(); }, +throws_deeply ( sub { my $cart = WebGUI::Shop::Cart->newBySession(); }, 'WebGUI::Error::InvalidObject', { error => 'Need a session.', @@ -47,7 +47,7 @@ throws_deeply ( sub { my $cart = WebGUI::Shop::Cart->getCartBySession(); }, 'newBySession takes an exception to not giving it a session variable' ); -my $cart = WebGUI::Shop::Cart->getCartBySession($session); +my $cart = WebGUI::Shop::Cart->newBySession($session); isa_ok($cart, "WebGUI::Shop::Cart"); isa_ok($cart->session, "WebGUI::Session"); diff --git a/t/Shop/Tax.t b/t/Shop/Tax.t index e4b9e1cc8..9cde10dce 100644 --- a/t/Shop/Tax.t +++ b/t/Shop/Tax.t @@ -540,7 +540,7 @@ SKIP: { ##Build a cart, add some Donation SKUs to it. Set one to be taxable. - my $cart = WebGUI::Shop::Cart->getCartBySession($session); + my $cart = WebGUI::Shop::Cart->newBySession($session); is($taxer->calculate($cart), 0, 'calculate returns 0 if there is no shippingAddressId in the cart');