diff --git a/html/fragments.html b/html/fragments.html
index 761a059..3fade23 100644
--- a/html/fragments.html
+++ b/html/fragments.html
@@ -306,16 +306,52 @@
     <button>Ladda upp</button>
   </form>
 </div>
-<div id="product-history"
-     class="¤hidden¤">
+<div id="product-history">
   <h2>Artikelhistorik</h2>
   ¤history¤
 </div>
 <div id="product-label"
-     class="¤hidden¤">
+     class="¤label_hidden¤">
   <h2>Etikett</h2>
   ¤label¤
 </div>
+<div id="product-direct-checkout" class="¤checkout_hidden¤">
+  <h2>Låna ut</h2>
+  <form class="light"
+        onSubmit="JavaScript:checkoutProduct(event)">
+    <datalist id="user_suggest"></datalist>
+    <input type="hidden"
+           name="page"
+           value="checkout" />
+    <label for="user">Användarnamn:</label>
+    <input onFocus="JavaScript:suggest(this, 'user')"
+           type="text"
+           name="user"
+           list="user_suggest"
+           autocomplete="off"
+           placeholder="Användarnamn"
+           required />
+    <input type="hidden"
+           id="product"
+           name="product"
+           value="¤serial¤" />
+    <button>
+      Låna ut
+    </button>
+    <br/>
+    <label>Löptid:</label>
+    <button onClick="JavaScript:loanLength(event, 7, 'day')">1 vecka</button>
+    <button onClick="JavaScript:loanLength(event, 1, 'year')">1 år</button>
+    <button onClick="JavaScript:loanLength(event, 3, 'year')">3 år</button>
+    <br/>
+    <label for="end">Slutdatum:</label>
+    <input type="text"
+           id="end"
+           onClick="JavaScript:calendar(event)"
+           name="end"
+           value="¤end¤" />
+  </form>
+</div>
 
 ¤¤ attachment_list ¤¤
 <ul class="attachment-list">
diff --git a/include/Loan.php b/include/Loan.php
index 89b8465..26254ed 100644
--- a/include/Loan.php
+++ b/include/Loan.php
@@ -42,16 +42,24 @@ class Loan extends Event {
 
     protected function queue_receipt($user) {
         $now = time();
+        $sendtime = $now + 3600;
         $pending = prepare('select * from `pending_receipt` where `user` = ?
                                 and `since_time` < ? and `send_time` > ?');
         bind($pending, 'iii', $user->get_id(), $now, $now);
         execute($pending);
-        if(result_single($pending) === null) {
+        $result = result_single($pending);
+        if($result === null) {
             $add = prepare('insert into `pending_receipt`
                                 (`user`, `since_time`, `send_time`)
                                 values(?, ?, ?)');
-            bind($add, 'iii', $user->get_id(), $now, $now + 3600);
+            bind($add, 'iii', $user->get_id(), $now, $sendtime);
             execute($add);
+        } else {
+            $update = prepare('update `pending_receipt` set `send_time` = ?
+                               where `user` = ? and `since_time` < ?
+                                   and `send_time` > ?');
+            bind($update, 'iiii', $sendtime, $user->get_id(), $now, $now);
+            execute($update);
         }
     }
 
diff --git a/include/ProductPage.php b/include/ProductPage.php
index afb25b1..b0fefb4 100644
--- a/include/ProductPage.php
+++ b/include/ProductPage.php
@@ -67,19 +67,24 @@ class ProductPage extends Page {
                         'tags'        => $tags,
                         'info'        => $info,
                         'label'       => '',
-                        'hidden'      => 'hidden',
+                        'label_hidden' => 'hidden',
+                        'checkout_hidden'      => 'hidden',
                         'service'     => 'Starta service',
                         'history'     => $history,
-                        'attachments' => $attachments);
+                        'attachments' => $attachments,
+                        'end'         => format_date(default_loan_end(time())));
         if(class_exists('QRcode')) {
             $fields['label'] = replace($fields,
                                        $this->fragments['product_label']);
         }
         if(!$this->product->get_discardtime()) {
-            $fields['hidden'] = '';
+            $fields['label_hidden'] = '';
             if($this->product->get_status() == 'service') {
                 $fields['service'] = 'Avsluta service';
             }
+            if($this->product->get_status() == 'available') {
+                $fields['checkout_hidden'] = '';
+            }
         }
         return replace($fields, $this->fragments['product_form']);
     }
diff --git a/pending_receipts.sql b/pending_receipts.sql
deleted file mode 100644
index 550da5b..0000000
--- a/pending_receipts.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-create table `pending_receipt` (
-  `user` bigint(20) not null,
-  primary key (`user`),
-  constraint `pr_f_user`
-    foreign key(`user`) references `user`(`id`),
-  `send_time` bigint(20) not null,
-  `since_time` bigint(20) not null
-) character set utf8mb4,
-  collate utf8mb4_unicode_ci;