diff --git a/lib/CF2022/Controller/Orders.pm b/lib/CF2022/Controller/Orders.pm
index 51b8df84961dc16f6f334df4f58232bc0a14b819..fa3e67752c821ff2c465ca589cbb026c53052021 100644
--- a/lib/CF2022/Controller/Orders.pm
+++ b/lib/CF2022/Controller/Orders.pm
@@ -13,6 +13,7 @@ sub create ($c ) {
     my $args      = $c->req->json;
     my @products  = @{ $args->{products} };
     my @responses = @{ $args->{responses} };
+    my $claims;
     my $group;
 
     my $url = sprintf ('%s/organizers/%s/events/%s/orders/',
@@ -24,7 +25,7 @@ sub create ($c ) {
     if ( $args->{token} ) {
         $c->oauth_token($args->{token});
 
-        my $claims = $c->oauth_claims;
+        $claims = $c->oauth_claims;
         return $c->error(403, 'Invalid token') if ! $claims;
 
         $group = $c->oauth_main_group;
@@ -61,6 +62,7 @@ sub create ($c ) {
         email            => $args->{email},
         locale           => 'en',
         payment_provider => 'manual',
+        testmode         => $c->config->{pretix_testmode} ? 'true' : 'false',
         positions        => [],
         fees             => [],
     };
@@ -88,16 +90,45 @@ sub create ($c ) {
         push @{ $order->{positions} }, $item;
     }
 
-    my $ua = Mojo::UserAgent->new;
+    # kontrola duplicity
+
+    my $exists = $c->schema->resultset('Order')->search({
+        email => $order->{email},
+        api   => $url,
+    })->count;
+
+    $exists ||= $c->schema->resultset('Order')->search({
+        sso_uuid => $claims->{sub},
+        api      => $url,
+    })->count if $claims;
 
-###### KONTROLA DUPLICITY
+    return $c->error(400, 'Duplicity' ) if $exists;
 
+    # odeslani do pretixu
+
+    my $ua = Mojo::UserAgent->new;
     my $rc = $ua->post( $url,
         { Authorization => 'Token ' . $c->config->{pretix_token} },
         json => $order
-    )->result->json;
+    )->result;
 
-    $c->render(json => $rc);
+    return $c->error(400, $rc->json) if ! $rc->is_success;
+
+    # ukladani do lokalni databazi
+
+    $c->schema->resultset('Order')->create({
+        ip       => $c->tx->remote_address,
+        sso_uuid => $claims->{sub},
+        email    => $order->{email},
+        api      => $url,
+        request  => $order,
+        response => $rc->json,
+    });
+
+    $c->render(
+        status => 201,
+        json   => $rc->json,
+    );
 }
 
 1;