diff --git a/lib/WebGUI/Shop/Tax.pm b/lib/WebGUI/Shop/Tax.pm
index 33afeb73f..68294eb0c 100644
--- a/lib/WebGUI/Shop/Tax.pm
+++ b/lib/WebGUI/Shop/Tax.pm
@@ -362,6 +362,25 @@ sub www_deleteTax {
#-------------------------------------------------------------------
+=head2 www_exportTax ( )
+
+Export the entire tax table as a CSV file the user can download.
+
+=cut
+
+sub www_exportTax {
+ my $self = shift;
+ my $session = $self->session;
+ my $admin = WebGUI::Shop::Admin->new($session);
+ return $session->privilege->insufficient
+ unless $admin->canManage;
+ my $storage = $self->exportTaxData();
+ $self->session->http->setRedirect($storage->getUrl($storage->getFiles->[0]));
+ return "redirect";
+}
+
+#-------------------------------------------------------------------
+
=head2 www_getTaxesAsJson ( )
Servers side pagination for tax data that is sent as JSON back to the browser to be
@@ -432,13 +451,14 @@ sub www_manage {
$style->setRawHeadTags('');
my $i18n=WebGUI::International->new($session, 'Tax');
- my $output =sprintf <get(364, 'WebGUI'), $i18n->get('export');
+ my $exportForm = WebGUI::Form::formHeader($session,{action => $url->page('shop=tax;method=exportTax')}).WebGUI::Form::submit($session,{value=>$i18n->get('export')}).WebGUI::Form::formFooter($session);
+ my $output =sprintf <get(364, 'WebGUI'), $exportForm;