public function createAction()
 {
     $this->logger->entering();
     $this->logger->info('Building Line Item');
     $lineItem = array('user_id' => $this->session->user_id, 'item_id' => $this->_getParam('id'), 'shipping' => 1);
     // TODO: handle item validity with exceptions
     $this->logger->info('Ensure line item is valid');
     $validity = LineItem::isValid($lineItem);
     if (!$validity) {
         $this->logger->err('Invalid line item');
         $this->flash->notice = 'Couldn\'t add item to shopping bag';
         foreach ($lineItem['errors'] as $k => $v) {
             $this->flash->notice = $this->flash->notice . ", {$k} {$v}";
         }
         $this->_redirect('/transactions/new');
         $this->logger->info('Clearing flash notice');
         $this->flash->keep = 1;
         unset($this->flash->notice);
     } else {
         $this->logger->info('Persisting line item');
         $lineItems = new LineItem();
         $lineItem = $lineItems->createRow($lineItem);
         $lineItem->save();
         $this->logger->info('Redirecting to new Transaction');
         $this->_redirect("/transactions/new");
     }
     $this->logger->exiting();
 }