Add getAddToCartForm to skus, update Shelf code, help, i18n and template.
This commit is contained in:
parent
b4c60af457
commit
01b8ccf412
14 changed files with 222 additions and 4 deletions
|
|
@ -2,6 +2,10 @@
|
||||||
- fixed #9955: Matrix alpha sort is backwards
|
- fixed #9955: Matrix alpha sort is backwards
|
||||||
- fixed #9934: Matrix 2.0 - Products should be listed alphabetically
|
- fixed #9934: Matrix 2.0 - Products should be listed alphabetically
|
||||||
- fixed #9865: Matrix: Later added attributes are not detected in older listings
|
- fixed #9865: Matrix: Later added attributes are not detected in older listings
|
||||||
|
- added: Sku's now have a getAddToCartForm method, which is used by the Shelf
|
||||||
|
to place a small form next to each Sku that displays. Sku's with complex
|
||||||
|
forms (like the EMS sku's), simply display a button to take the user to the
|
||||||
|
sku's view screen for the whole form. [TEMPLATE]
|
||||||
|
|
||||||
7.7.1
|
7.7.1
|
||||||
- the AdSku project: create a Sku that allows buyers to purchase advertising in select AdSpaces at selected priorities
|
- the AdSku project: create a Sku that allows buyers to purchase advertising in select AdSpaces at selected priorities
|
||||||
|
|
|
||||||
|
|
@ -159,6 +159,27 @@ sub definition {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getAddToCartForm ( )
|
||||||
|
|
||||||
|
Returns a form to add this Sku to the cart. Used when this Sku is part of
|
||||||
|
a shelf.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getAddToCartForm {
|
||||||
|
my $self = shift;
|
||||||
|
my $session = $self->session;
|
||||||
|
my $i18n = WebGUI::International->new($session, 'Asset_Sku');
|
||||||
|
return
|
||||||
|
WebGUI::Form::formHeader($session, {action => $self->getUrl})
|
||||||
|
. WebGUI::Form::hidden( $session, {name => 'func', value => 'addToCart'})
|
||||||
|
. WebGUI::Form::submit( $session, {value => $i18n->get('add to cart')})
|
||||||
|
. WebGUI::Form::formFooter($session)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getCart ( )
|
=head2 getCart ( )
|
||||||
|
|
|
||||||
|
|
@ -138,6 +138,18 @@ sub definition {
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getAddToCartForm
|
||||||
|
|
||||||
|
Returns an empty string, since the add to cart form is complex.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getAddToCartForm {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getClickDiscountText
|
=head2 getClickDiscountText
|
||||||
|
|
||||||
returns the text to display the number of clicks purchasaed where discounts apply
|
returns the text to display the number of clicks purchasaed where discounts apply
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,28 @@ sub definition {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getAddToCartForm ( )
|
||||||
|
|
||||||
|
Returns a form to add this Sku to the cart. Used when this Sku is part of
|
||||||
|
a shelf. Overrode master class to add price form.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getAddToCartForm {
|
||||||
|
my $self = shift;
|
||||||
|
my $session = $self->session;
|
||||||
|
my $i18n = WebGUI::International->new($session, 'Asset_Donation');
|
||||||
|
return
|
||||||
|
WebGUI::Form::formHeader($session, {action => $self->getUrl})
|
||||||
|
. WebGUI::Form::hidden( $session, {name => 'func', value => 'donate'})
|
||||||
|
. WebGUI::Form::float( $session, {name => 'price', defaultValue => $self->getPrice })
|
||||||
|
. WebGUI::Form::submit( $session, {value => $i18n->get('donate button')})
|
||||||
|
. WebGUI::Form::formFooter($session)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getConfiguredTitle
|
=head2 getConfiguredTitle
|
||||||
|
|
|
||||||
|
|
@ -165,6 +165,26 @@ sub drawRelatedBadgeGroupsField {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getAddToCartForm
|
||||||
|
|
||||||
|
Returns a button to take the user to the view screen.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getAddToCartForm {
|
||||||
|
my $self = shift;
|
||||||
|
my $session = $self->session;
|
||||||
|
my $i18n = WebGUI::International->new($session, 'Asset_Sku');
|
||||||
|
return
|
||||||
|
WebGUI::Form::formHeader($session, {action => $self->getUrl})
|
||||||
|
. WebGUI::Form::hidden( $session, {name => 'func', value => 'view'})
|
||||||
|
. WebGUI::Form::submit( $session, {value => $i18n->get('see more')})
|
||||||
|
. WebGUI::Form::formFooter($session)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getConfiguredTitle
|
=head2 getConfiguredTitle
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,26 @@ sub definition {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getAddToCartForm
|
||||||
|
|
||||||
|
Returns a button to take the user to the view screen.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getAddToCartForm {
|
||||||
|
my $self = shift;
|
||||||
|
my $session = $self->session;
|
||||||
|
my $i18n = WebGUI::International->new($session, 'Asset_Sku');
|
||||||
|
return
|
||||||
|
WebGUI::Form::formHeader($session, {action => $self->getUrl})
|
||||||
|
. WebGUI::Form::hidden( $session, {name => 'func', value => 'view'})
|
||||||
|
. WebGUI::Form::submit( $session, {value => $i18n->get('see more')})
|
||||||
|
. WebGUI::Form::formFooter($session)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getConfiguredTitle
|
=head2 getConfiguredTitle
|
||||||
|
|
|
||||||
|
|
@ -229,6 +229,25 @@ sub drawRelatedRibbonsField {
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getAddToCartForm
|
||||||
|
|
||||||
|
Returns a button to take the user to the view screen.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getAddToCartForm {
|
||||||
|
my $self = shift;
|
||||||
|
my $session = $self->session;
|
||||||
|
my $i18n = WebGUI::International->new($session, 'Asset_Sku');
|
||||||
|
return
|
||||||
|
WebGUI::Form::formHeader($session, {action => $self->getUrl})
|
||||||
|
. WebGUI::Form::hidden( $session, {name => 'func', value => 'view'})
|
||||||
|
. WebGUI::Form::submit( $session, {value => $i18n->get('see more')})
|
||||||
|
. WebGUI::Form::formFooter($session)
|
||||||
|
;}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getConfiguredTitle
|
=head2 getConfiguredTitle
|
||||||
|
|
||||||
Returns title + badgeholder name.
|
Returns title + badgeholder name.
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,26 @@ sub definition {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getAddToCartForm
|
||||||
|
|
||||||
|
Returns a button to take the user to the view screen.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getAddToCartForm {
|
||||||
|
my $self = shift;
|
||||||
|
my $session = $self->session;
|
||||||
|
my $i18n = WebGUI::International->new($session, 'Asset_Sku');
|
||||||
|
return
|
||||||
|
WebGUI::Form::formHeader($session, {action => $self->getUrl})
|
||||||
|
. WebGUI::Form::hidden( $session, {name => 'func', value => 'view'})
|
||||||
|
. WebGUI::Form::submit( $session, {value => $i18n->get('see more')})
|
||||||
|
. WebGUI::Form::formFooter($session)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getConfiguredTitle
|
=head2 getConfiguredTitle
|
||||||
|
|
|
||||||
|
|
@ -240,6 +240,37 @@ sub duplicate {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getAddToCartForm ( )
|
||||||
|
|
||||||
|
Returns a form to add this Sku to the cart. Used when this Sku is part of
|
||||||
|
a shelf. Overrode master class to add variant dropdown.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getAddToCartForm {
|
||||||
|
my $self = shift;
|
||||||
|
my $session = $self->session;
|
||||||
|
my $i18n = WebGUI::International->new($session, 'Asset_Product');
|
||||||
|
my %variants = ();
|
||||||
|
tie %variants, 'Tie::IxHash';
|
||||||
|
foreach my $collateral ( @{ $self->getAllCollateral('variantsJSON')} ) {
|
||||||
|
$variants{$collateral->{variantId}} = join ", ", $collateral->{shortdesc}, sprintf('%.2f',$collateral->{price});
|
||||||
|
}
|
||||||
|
return
|
||||||
|
WebGUI::Form::formHeader($session, {action => $self->getUrl})
|
||||||
|
. WebGUI::Form::hidden( $session, {name => 'func', value => 'buy'})
|
||||||
|
. WebGUI::Form::selectBox( $session, {
|
||||||
|
name => 'vid',
|
||||||
|
options => \%variants,
|
||||||
|
value => [0],
|
||||||
|
})
|
||||||
|
. WebGUI::Form::submit( $session, {value => $i18n->get('add to cart')})
|
||||||
|
. WebGUI::Form::formFooter($session)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getAllCollateral ( tableName )
|
=head2 getAllCollateral ( tableName )
|
||||||
|
|
|
||||||
|
|
@ -269,6 +269,27 @@ sub generateSubscriptionCodeBatch {
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getAddToCartForm ( )
|
||||||
|
|
||||||
|
Returns a form to add this Sku to the cart. Used when this Sku is part of
|
||||||
|
a shelf. Override master class to add different form.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getAddToCartForm {
|
||||||
|
my $self = shift;
|
||||||
|
my $session = $self->session;
|
||||||
|
my $i18n = WebGUI::International->new($session, 'Asset_Subscription');
|
||||||
|
return
|
||||||
|
WebGUI::Form::formHeader($session, {action => $self->getUrl})
|
||||||
|
. WebGUI::Form::hidden( $session, {name => 'func', value => 'purchaseSubscription'})
|
||||||
|
. WebGUI::Form::submit( $session, {value => $i18n->get('purchase button')})
|
||||||
|
. WebGUI::Form::formFooter($session)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getAdminConsoleWithSubmenu ( )
|
=head2 getAdminConsoleWithSubmenu ( )
|
||||||
|
|
||||||
Returns an admin console with management links added to the submenu.
|
Returns an admin console with management links added to the submenu.
|
||||||
|
|
|
||||||
|
|
@ -308,10 +308,11 @@ sub view {
|
||||||
foreach my $id (@{$p->getPageData}) {
|
foreach my $id (@{$p->getPageData}) {
|
||||||
my $asset = WebGUI::Asset->newByDynamicClass($session, $id);
|
my $asset = WebGUI::Asset->newByDynamicClass($session, $id);
|
||||||
if (defined $asset) {
|
if (defined $asset) {
|
||||||
my $sku = $asset->get;
|
my $sku = $asset->get;
|
||||||
$sku->{url} = $asset->getUrl;
|
$sku->{url} = $asset->getUrl;
|
||||||
$sku->{thumbnailUrl} = $asset->getThumbnailUrl;
|
$sku->{thumbnailUrl} = $asset->getThumbnailUrl;
|
||||||
$sku->{price} = sprintf("%.2f", $asset->getPrice);
|
$sku->{price} = sprintf("%.2f", $asset->getPrice);
|
||||||
|
$sku->{addToCartForm} = $asset->getAddToCartForm;
|
||||||
push @skus, $sku;
|
push @skus, $sku;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,11 @@ our $HELP = {
|
||||||
variables => [
|
variables => [
|
||||||
{ name => "shelves" , required=>1},
|
{ name => "shelves" , required=>1},
|
||||||
{ name => "products" , required=>1, variables => [
|
{ name => "products" , required=>1, variables => [
|
||||||
|
{ name => "url",
|
||||||
|
description => 'product_url', },
|
||||||
{ name => "thumbnailUrl" },
|
{ name => "thumbnailUrl" },
|
||||||
{ name => "price" },
|
{ name => "price" },
|
||||||
|
{ name => "addToCartForm" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{ name => "templateId", description=>"shelf template help" },
|
{ name => "templateId", description=>"shelf template help" },
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,18 @@ our $I18N = {
|
||||||
context => q|a template variable|,
|
context => q|a template variable|,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
'product_url' => {
|
||||||
|
message => q|The URL to this sku.|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|a template variable|,
|
||||||
|
},
|
||||||
|
|
||||||
|
'addToCartForm' => {
|
||||||
|
message => q|If this product supports it, the form to add this product to the cart. It will contain a submit button and all required form elements needed to add the product to the cart.|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|a template variable|,
|
||||||
|
},
|
||||||
|
|
||||||
'shelves' => {
|
'shelves' => {
|
||||||
message => q|A loop containing the list of shelves that are children of this one in the asset tree. Each record in the loop contains all the properties of a shelf.|,
|
message => q|A loop containing the list of shelves that are children of this one in the asset tree. Each record in the loop contains all the properties of a shelf.|,
|
||||||
lastUpdated => 0,
|
lastUpdated => 0,
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,18 @@ our $I18N = {
|
||||||
context => q|help for tax rate override field|
|
context => q|help for tax rate override field|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
'add to cart' => {
|
||||||
|
message => q|Add To Cart|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|i18n label for the add to cart button|,
|
||||||
|
},
|
||||||
|
|
||||||
|
'see more' => {
|
||||||
|
message => q|See more|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|alternate i18n label for the add to cart button|,
|
||||||
|
},
|
||||||
|
|
||||||
'Add a Variant' => {
|
'Add a Variant' => {
|
||||||
message => q|Add a Variant|,
|
message => q|Add a Variant|,
|
||||||
lastUpdated => 0,
|
lastUpdated => 0,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue