use utf8;
use parent qw/Plack::Component/;
-our $VERSION = '0.000_005';
+our $VERSION = '0.000_006';
use DBIx::Simple;
+use Email::Sender::Simple 'sendmail';
+use Email::Simple;
use File::Slurp;
use HTML::TreeBuilder;
use HTML::Element::Library;
##################################################
+my $postage_base = $ENV{OOF_POSTAGE_BASE} // 225;
+my $postage_per_item = $ENV{OOF_POSTAGE_PER_ITEM} // 50;
+
+##################################################
+
my %db;
my ($form, $continue, $order, $details, $pay);
'@type' => 'Product',
name => $data{title},
image => "/static/fullpics/$data{product}-1.jpg",
- description => $data{summary},
+ description => $data{subtitle},
offers => {
'@type' => 'Offer',
price => ($data{price} =~ s/(..)$/\.$1/r),
my $req = Plack::Request->new($env);
local %highlight = map { $_ => 1 } $req->param('highlight');
- my $data = $db{$$}->select(products => '*', {}, 'product')->hashes;
+ my $data = $db{$$}->select(products => '*', {stock => {'>', 0}}, 'product')->hashes;
my $tree = $form->clone;
$tree->find('tbody')->find('tr')->iter3($data, \&form_table_row);
}
$tree->look_down(name => 'discount')->detach unless $dvalue;
$tree->fid('discount_tr')->detach unless $dvalue;
- my $postage = 220 + 50 * ($quant - $quant_freepost);
+ my $postage = $postage_base + $postage_per_item * ($quant - $quant_freepost);
$postage = 0 if $quant == $quant_freepost;
$tree->fid('postage')->replace_content(stringify_money $postage);
$total += $postage;
}
$db{$$}->insert(orders => {id => $id, %parms});
$db{$$}->commit;
+ sendmail (Email::Simple->create(
+ header => [
+ From => $ENV{OOF_EMAIL_FROM},
+ To => $ENV{OOF_EMAIL_TO},
+ Subject => "Order $id placed",
+ ],
+ body => 'A new order was placed.',
+ )) if $ENV{OOF_EMAIL_TO};
} catch {
$db{$$}->rollback;
$err = [500, ['Content-type', 'text/plain'], ["Error: $_"]]