diff --git a/lib/RevBank/Cart.pm b/lib/RevBank/Cart.pm index 58816da..9357300 100644 --- a/lib/RevBank/Cart.pm +++ b/lib/RevBank/Cart.pm @@ -79,15 +79,18 @@ sub checkout($self, $user) { RevBank::FileIO::with_lock { my $transaction_id = time() - 1300000000; + + RevBank::Plugins::call_hooks("checkout_prepare", $self, $user, $transaction_id); + for my $entry (@$entries) { + $entry->sanity_check; + $entry->user($user) if not $entry->user; + } + RevBank::Plugins::call_hooks("checkout", $self, $user, $transaction_id); my %deltas = ($user => RevBank::Amount->new(0)); for my $entry (@$entries) { - # In case entries were added by the hook - $entry->sanity_check; - $entry->user($user) if not $entry->user; - $deltas{$_->{user}} += $_->{amount} * $entry->quantity for $entry, $entry->contras; } diff --git a/plugins/statiegeld_tokens b/plugins/statiegeld_tokens index edb19ab..90be2ec 100644 --- a/plugins/statiegeld_tokens +++ b/plugins/statiegeld_tokens @@ -89,7 +89,7 @@ sub _handle_undo($cart) { } } -sub hook_checkout($class, $cart, $username, $transaction_id, @) { +sub hook_checkout_prepare($class, $cart, $username, $transaction_id, @) { if ($username eq '-undo') { _handle_undo($cart); return;