diff --git a/bin/css/form.css b/bin/css/form.css
index 1b03f6818756e6dd2bc2972c4b09a897b4adbc38..2174eecfd827c5620a9ecd844e44a897252bd5e1 100644
--- a/bin/css/form.css
+++ b/bin/css/form.css
@@ -1,26 +1,53 @@
 select,
 input,
 input[type="text"],
-input[type="email"] {
+input[type="email"],
+textarea {
     background: #fff;
     border: 1px solid #c9c8c5;
     border-radius: 0.25rem;
-    height: 40px;
+    font-family: 'Maven Pro', Verdana, sans-serif;
     line-height: 40px;
     outline: none;
     padding: 0 10px;
-    font-family: 'Maven Pro', Verdana, sans-serif;
+}
+
+input[type="text"]:hover,
+input[type="text"]:focus,
+input[type="password"]:hover,
+input[type="password"]:focus {
+    border-color: #a9a8a5;
+}
+
+.quiqqer-simple-contact label {
+    margin: 10px 0;
+}
+
+.quiqqer-simple-contact input[type="checkbox"],
+.quiqqer-simple-contact input[type="radio"] {
+    margin-bottom: 0;
+}
+
+.quiqqer-simple-contact label > * {
+    vertical-align: middle;
+}
+
+.quiqqer-simple-contact button {
+    margin-top: 1rem;
 }
 
 ::-webkit-input-placeholder { /* Chrome/Opera/Safari */
     color: #99a6b5;
 }
+
 ::-moz-placeholder { /* Firefox 19+ */
     color: #99a6b5;
 }
+
 :-ms-input-placeholder { /* IE 10+ */
     color: #99a6b5;
 }
+
 :-moz-placeholder { /* Firefox 18- */
     color: #99a6b5;
 }
@@ -49,12 +76,6 @@ div.qui-select .drop-icon {
     height: inherit;
 }
 
-input[type="text"]:focus,
-input[type="password"]:focus {
-    background: #f5f5f5;
-    border-color: #a9a8a5;
-}
-
 select {
     padding: 10px;
 }
@@ -68,11 +89,12 @@ input[type="checkbox"] {
     border-radius: 0.25rem;
     display: inline-block;
     height: 12px;
+    line-height: initial;
+    margin-bottom: 0;
     margin-right: 10px;
     outline: none;
     padding: 9px;
     position: relative;
-    line-height: initial;
 }
 
 input[type="checkbox"]:checked {
@@ -110,11 +132,13 @@ input[type="radio"] {
     border-radius: 50px;
     display: inline-block;
     height: 12px;
+    margin-bottom: 0;
     margin-right: 10px;
     outline: none;
     padding: 9px;
     position: relative;
 }
+
 input[type="radio"]:after {
     background: #99a1a7;
     border-radius: 50px;
@@ -125,9 +149,9 @@ input[type="radio"]:after {
     position: absolute;
     text-shadow: none;
     top: 3px;
-    width: 12px;
+    transform: scale(0);
     transition: 0.3s all;
-    transform: scale(0)
+    width: 12px;
 }
 
 
@@ -164,4 +188,41 @@ input[type="radio"]:checked:active {
 .form-group {
     margin-bottom: 1rem;
     width: 100%;
+}
+
+/*******************/
+/* quiqqer/contact */
+/*******************/
+fieldset {
+    border: none;
+}
+
+.qui-formfield {
+    margin-bottom: 1.5rem;
+}
+
+.qui-form legend {
+    background: none;
+    font-size: 1rem;
+}
+
+.qui-formfield-body {
+    padding: 0;
+}
+
+.qui-formfield-body label > * {
+    vertical-align: middle;
+}
+
+.qui-formfield-body > input {
+    margin-bottom: 0;
+}
+
+.qui-formfield-body label {
+    margin-right: 1rem;
+}
+
+.qui-form input[type="submit"] {
+    margin: 1rem 0 0 0;
+    width: auto;
 }
\ No newline at end of file
diff --git a/bin/css/frontend-users.css b/bin/css/frontend-users.css
index e65ced72f461527d98e660575a7d17334297f6f8..fa9294544bf7317141b2053647304d8c8fb7f296 100644
--- a/bin/css/frontend-users.css
+++ b/bin/css/frontend-users.css
@@ -1,10 +1,10 @@
 .templateCologne-frontendUsers-profile-container-login {
-    margin-top: 2rem;
     margin-bottom: 2rem;
+    margin-top: 2rem;
 }
 
 .quiqqer-frontend-users-address-description-button {
-     max-width: 100% !important;
+    max-width: 100% !important;
 }
 
 /********************/
@@ -21,9 +21,9 @@
 }
 
 .quiqqer-frontendUsers-profile-container {
-    margin-top: 2rem;
-    margin-bottom: 2rem;
     display: flex;
+    margin-bottom: 2rem;
+    margin-top: 2rem;
 }
 
 .quiqqer-frontendUsers-controls-profile .quiqqer-frontendUsers-controls-profile-categories {
@@ -131,7 +131,7 @@
 }
 
 .quiqqer-frontendUsers-userdata-section, .quiqqer-frontendUsers-userdata-address, .quiqqer-frontendUsers-userdata-address-additional {
-     max-width: 100% !important;
+    max-width: 100% !important;
 }
 
 .quiqqer-frontend-users-address header,
@@ -215,11 +215,11 @@
 }
 
 .quiqqer-fu-login-container {
-    position: relative;
-    width: 100%;
-    max-width: 400px;
     background: #f8f8f8;
     border: 1px solid #ddd;
+    max-width: 400px;
+    position: relative;
+    width: 100%;
 }
 
 @media screen and (max-width: 767px) {
@@ -232,14 +232,41 @@
 /* reset password */
 /******************/
 .quiqqer-fu-login-container .quiqqer-fu-login-forget-password-reset [name="cancel"] {
-    color: inherit;
-    border: none;
-    padding: 0;
     background: none;
-    position: initial;
+    border: none;
+    color: inherit;
     float: right;
     margin-top: 1rem;
+    padding: 0;
+    position: initial;
 }
+
 .quiqqer-fu-login-container .quiqqer-fu-login-forget-password-reset [type="submit"] {
     margin-top: 1rem;
+}
+
+/*******************/
+/* Login site type */
+/*******************/
+
+.loginAndRegister .quiqqer-fu-login-forget-password-link {
+    margin-bottom: 1rem;
+}
+
+.loginAndRegister-register .quiqqer-fu-registrationSignUp-registration-content {
+    align-items: center;
+    border: 1px solid #ddd;
+    height: 100%;
+    margin: 0 auto;
+    max-width: 400px;
+    overflow: hidden;
+}
+
+.loginAndRegister .quiqqer-fu-login-forget-password-reset {
+    padding: 1.5rem 2rem;
+    background: #f8f8f8;
+}
+
+.quiqqer-fu-registrationSignUp-terms-text [name="decline"] {
+    right: 0 !important;
 }
\ No newline at end of file
diff --git a/bin/css/mini-basket.css b/bin/css/mini-basket.css
index 1b26ddc46ee5152ad5446bb871e0606875a390c8..84052c5d2bc365873300c1fc7a55f993dd3d14f4 100644
--- a/bin/css/mini-basket.css
+++ b/bin/css/mini-basket.css
@@ -111,4 +111,14 @@ body.header-fixed .quiqqer-order-basket-small-container {
 
 .quiqqer-order-basket-small-buttons .open-shopping-cart {
     margin-right: 1rem;
+}
+
+/*********************/
+/* payments - paypal */
+/*********************/
+.quiqqer-order-basket-small-container .quiqqer-payment-paypal-express {
+    margin-top: 15px;
+    text-align: right;
+    width: 100%;
+    height: auto;
 }
\ No newline at end of file
diff --git a/bin/css/order.css b/bin/css/order.css
index 5859b1adb3851e6451b0cdd7fa4fa201fc0e7964..c9a8256096e63d818cf74a7056234d65a448e31b 100644
--- a/bin/css/order.css
+++ b/bin/css/order.css
@@ -25,18 +25,18 @@
 }
 
 .quiqqer-order-basket-articles td {
+    border: none;
     padding-bottom: 10px;
     vertical-align: top;
-    border: none;
 }
 
 .quiqqer-order-basket-articles th {
     background: #f8f8f8;
     border-bottom: 1px solid #ddd;
+    border-left: none;
     border-top: 1px solid #ddd;
     padding: 5px 10px;
     width: 10px;
-    border-left: none;
 }
 
 th.quiqqer-order-basket-articles-header-pos {
@@ -75,8 +75,8 @@ th.quiqqer-order-basket-articles-header-pos {
 .quiqqer-order-basket-articles-article-quantity input {
     height: 30px;
     line-height: 30px;
-    width: 100px;
     text-align: right;
+    width: 100px;
 }
 
 .quiqqer-order-basket-articles-unitPrice {
@@ -84,15 +84,15 @@ th.quiqqer-order-basket-articles-header-pos {
 }
 
 td.quiqqer-order-basket-articles-article-remove {
+    padding-right: 0;
     text-align: right;
     width: 60px;
-    padding-right: 0;
 }
 
 .quiqqer-order-basket-articles-article-remove button {
-    color: inherit;
     background: none;
     border-color: transparent;
+    color: inherit;
     padding: 0 10px;
 }
 
@@ -131,13 +131,13 @@ td.quiqqer-order-basket-articles-article-remove button:hover {
 }
 
 .quiqqer-order-basket-total {
+    background: #f8f8f8;
+    border: 1px solid #ddd;
     float: right;
     margin-top: 20px;
+    padding: 5px 10px;
     text-align: right;
     width: 100%;
-    background: #f8f8f8;
-    border: 1px solid #ddd;
-    padding: 5px 10px;
 }
 
 .quiqqer-order-basket-total td {
@@ -180,13 +180,13 @@ td.quiqqer-order-basket-articles-article-remove button:hover {
 input.quiqqer-coupons-couponcodeinput-input:hover,
 input.quiqqer-coupons-couponcodeinput-input:focus,
 input.quiqqer-coupons-couponcodeinput-input:active {
-    border-color: #28a745;
     background: #fff;
+    border-color: #28a745;
 }
 
 .btn.quiqqer-coupons-couponcodeinput-btn {
-    border-color: #28a745;
     background: #fff;
+    border-color: #28a745;
     color: #28a745;
 }
 
@@ -202,6 +202,11 @@ input.quiqqer-coupons-couponcodeinput-input:active {
     }
 }
 
+.quiqqer-order-basket-articles-article-productno {
+    color: #adadad;
+    font-size: 12px;
+}
+
 /***********************/
 /* step: customer data */
 /***********************/
@@ -274,8 +279,8 @@ input.quiqqer-coupons-couponcodeinput-input:active {
 
     .quiqqer-order-customerData-container .quiqqer-order-customerData,
     .quiqqer-order-customerData-container .quiqqer-order-customerData-comment {
-        width: 100%;
         max-width: 100%;
+        width: 100%;
     }
 
     .quiqqer-order-customerData {
@@ -435,14 +440,14 @@ input.quiqqer-coupons-couponcodeinput-input:active {
     }
 
     .quiqqer-order-basket-end .quiqqer-coupons-couponcodeinput {
+        flex-direction: column;
         padding: 0;
         text-align: left;
-        flex-direction: column;
     }
 
     .quiqqer-order-basket-end .quiqqer-coupons-couponcodeinput input {
-        width: 100%;
         margin-bottom: 1rem;
+        width: 100%;
     }
 
     .quiqqer-coupons-couponcodeinput label span {
@@ -471,19 +476,19 @@ input.quiqqer-coupons-couponcodeinput-input:active {
 table.articles-article {
     border-bottom: none;
     border-spacing: 0;
+    margin: 4rem 0 0;
     padding-bottom: 0 !important;
     width: 100%;
-    margin: 4rem 0 0;
 }
 
 .articles-article td {
+    border: none;
     padding: 10px;
-    vertical-align: top;
     text-align: right;
-    border: none;
+    vertical-align: top;
 }
 
-.articles-article-information-title {
+td.articles-article-information {
     text-align: left;
 }
 
@@ -495,11 +500,11 @@ table.articles-article {
 .articles-article-header th {
     background: #f8f8f8;
     border-bottom: 1px solid #ddd;
+    border-left: none;
     border-top: 1px solid #ddd;
     padding: 5px 10px;
-    width: 10px;
     text-align: right;
-    border-left: none;
+    width: 10px;
 }
 
 th.articles-article-header-information {
@@ -529,21 +534,21 @@ th.articles-article-header-information {
 }
 
 .quiqqer-order-step-checkout-notice label {
-    display: flex;
-    padding: 10px;
     background: #f8f8f8;
     border: 1px solid #ddd;
     cursor: pointer;
+    display: flex;
+    padding: 10px;
 }
 
 .articles-sum {
+    background: #f8f8f8;
+    border: 1px solid #ddd;
     float: right;
     margin-top: 20px;
+    padding: 5px 10px;
     text-align: right;
     width: 100%;
-    background: #f8f8f8;
-    border: 1px solid #ddd;
-    padding: 5px 10px;
 }
 
 table.articles-sum td {
@@ -577,11 +582,23 @@ table.articles-sum td {
 /**********************/
 /* step: order (last) */
 /**********************/
+.quiqqer-order-control-orderLikeBasket .quiqqer-order-control-order-information-orderData-table {
+    background: #f8f8f8;
+    border: 1px solid #ddd;
+    padding: 5px 10px;
+    width: 100% !important;
+}
+
 .quiqqer-order-control-orderLikeBasket .quiqqer-order-control-order-total td {
+    border: none;
     padding-bottom: 5px;
     text-align: right;
 }
 
+.quiqqer-order-control-orderLikeBasket .quiqqer-order-control-order-total td:last-child {
+    width: 150px;
+}
+
 .quiqqer-order-control-order-information-orderData-subSum-text,
 .quiqqer-order-control-order-information-orderData-subSum-value {
     border-bottom: 1px solid #999999;
diff --git a/bin/css/products.css b/bin/css/products.css
index 87442456b4016be1fec48bb3eda88407163ff47d..1160b2b01fead83d4c5d2445e345ea70a849b8c0 100644
--- a/bin/css/products.css
+++ b/bin/css/products.css
@@ -1,3 +1,8 @@
+.qui-products-price-display-vat {
+    font-size: 0.75rem;
+    font-weight: normal;
+}
+
 .quiqqer-products-wrapper {
     align-items: flex-start;
     display: flex;
@@ -193,7 +198,7 @@
 .cologne-products-categoryGallery-categories {
     display: grid;
     grid-gap: 20px;
-    grid-template-columns: 1fr 1fr 1fr;
+    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
     margin-bottom: 40px;
     width: 100%;
 }
@@ -460,7 +465,7 @@
 .quiqqer-product-list[data-qui-options-view="gallery"] .quiqqer-products-productList-products-container-real {
     display: grid;
     grid-gap: 20px;
-    grid-template-columns: 1fr 1fr 1fr;
+    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
     width: 100%;
 }
 
@@ -511,17 +516,14 @@
 
 .cologne-products-productGallery-products-product-price {
     font-weight: bold;
-    margin: 1em 0;
+    margin: auto 0 1em;
+    text-align: center;
 }
 
 .cologne-products-productGallery-products-product-price .qui-products-price-display {
     display: inline;
 }
 
-.quiqqer-products-control-product-childrenslider-entry-productButtons {
-    margin-top: auto;
-}
-
 @media screen and (max-width: 767px) {
     .quiqqer-products-control-product-childrenslider-entry-productButtons {
         width: 100%;
@@ -542,16 +544,6 @@
         text-overflow: initial;
         white-space: initial;
     }
-
-    .quiqqer-product-list[data-qui-options-view="gallery"] .quiqqer-products-productList-products-container-real {
-        grid-template-columns: 1fr 1fr;
-    }
-}
-
-@media screen and (max-width: 450px) {
-    .quiqqer-product-list[data-qui-options-view="gallery"] .quiqqer-products-productList-products-container-real {
-        grid-template-columns: auto;
-    }
 }
 
 /* product list: details */
@@ -613,6 +605,9 @@
     display: inline;
 }
 
+.cologne-productList-product-details-content-price  .candyman-qui-products-price-display {
+    display: inline;
+}
 
 .cologne-productList-product-details-content-buttons {
     border-top: 1px solid #ddd;
@@ -639,6 +634,11 @@
 
     .cologne-productList-product-details-content-buttons .btn {
         display: block;
+        margin-bottom: 1rem;
+    }
+
+    .cologne-productList-product-details-content-buttons .btn:last-child {
+        margin-bottom: 0;
     }
 }
 
@@ -1054,7 +1054,7 @@ li.product-data-more-tabs-tab.active {
     box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
 }
 
-.quiqqer-product-card-content-data,
-.qui-products-price-display-vat {
+.quiqqer-product-card-content-data {
     font-size: 0.75rem;
+    font-weight: normal;
 }
\ No newline at end of file
diff --git a/bin/css/style.css b/bin/css/style.css
index cd3ebb7f2ee5b5fdb2b316b023a96c7ee72f1e93..ed43918442441a55d0b73c8d9a24d31d635bca0d 100644
--- a/bin/css/style.css
+++ b/bin/css/style.css
@@ -1435,6 +1435,15 @@ a.toTop:before {
     margin: 0 auto 30px !important;
 }
 
+/* sing up / registration in link */
+.login-popup-create-account-wrapper {
+    position: absolute;
+    bottom: 10px;
+    width: 100%;
+    left: 0;
+    text-align: center;
+}
+
 /** Product Children Slider (horizontal)
  ===================================== */
 .quiqqer-bricks-children-slider-container-wrapper .quiqqer-bricks-children-slider-container,
diff --git a/bin/javascript/init.js b/bin/javascript/init.js
index 3e2f875d84f027e4c0a803b013216b4c7ce6333a..9640de53c501ad5e40e2f096dd63f1835ac15c77 100644
--- a/bin/javascript/init.js
+++ b/bin/javascript/init.js
@@ -415,14 +415,34 @@ function createLogoutWindow (LogoutWindow) {
  */
 function createLoginWindow () {
     require([
+        'Locale',
+        'utils/Controls',
         'package/quiqqer/frontend-users/bin/frontend/controls/login/Window'
-    ], function (LoginWindow) {
+    ], function (QUILocale, QUIControlUtils, LoginWindow) {
         new LoginWindow({
             class    : 'cologne-login-dialog',
             title    : false,
-            maxHeight: 500,
+            maxHeight: 550,
             maxWidth : 400,
             events   : {
+                onOpen   : function (LoginWindow) {
+                    if (!REGISTER_URL) {
+                        return;
+                    }
+
+                    var Elm = LoginWindow.getElm();
+
+                    var CreateAccountWrapper = new Element('div', {
+                        'class': 'login-popup-create-account-wrapper'
+                    });
+
+                    new Element('a', {
+                        href: REGISTER_URL,
+                        html: QUILocale.get('quiqqer/template-cologne', 'template.popup.login.registration.button'),
+                    }).inject(CreateAccountWrapper);
+
+                    CreateAccountWrapper.inject(Elm.getElement('.qui-window-popup-content'));
+                },
                 onSuccess: function () {
                     window.location.reload();
                 }
diff --git a/index.html b/index.html
index 1dceb9ea4a48d61cb1a36fc6421df023ccb7aa12..5eda164a5a19bfbb34ab308255c7947a1d6ab9a0 100644
--- a/index.html
+++ b/index.html
@@ -33,6 +33,7 @@
         var INITAL_BASKET_PRICE = "{$initialBasketPrice}";
         var COUNT_LANGUAGES     = "{$countLanguages}";
         var SHOW_CATEGORY_MENU  = "{$showCategoryMenu}";
+        var REGISTER_URL        = "{$registerSiteUrl}";
     </script>
 
 </head>
diff --git a/index.php b/index.php
index 16a001eca27607b0ce97dd8b1a558356c69c14c0..c39e754242fc82219f9bb50b666d502a737f941b 100644
--- a/index.php
+++ b/index.php
@@ -77,6 +77,22 @@
  */
 $LangCurrencySwitch = new \QUI\TemplateCologne\Controls\LangCurrencySwitch();
 
+/**
+ * Sign up / registration page
+ */
+$registerSiteUrl = false;
+$registerSite    = $Project->getSites([
+    'where' => [
+        'type' => [
+            'value' => 'quiqqer/template-cologne:types/registration'
+        ]
+    ],
+    'limit' => 1
+]);
+
+if (count($registerSite)) {
+    $registerSiteUrl = $registerSite[0]->getUrlRewritten();
+}
 
 // array to assign
 $templateSettings['BricksManager']      = QUI\Bricks\Manager::init();
@@ -90,5 +106,7 @@
 $templateSettings['Search']             = new QUI\ERP\Products\Controls\Search\Suggest([
     'globalsearch' => true
 ]);
+$templateSettings['registerSiteUrl']        = $registerSiteUrl;
+
 
 $Engine->assign($templateSettings);
diff --git a/locale.xml b/locale.xml
index 6a1a2ee2ee447477f7f39b60a7d367146a3aa3cc..5d7b5ebb44712e2d92d9d3e352563dbef2a91ff1 100644
--- a/locale.xml
+++ b/locale.xml
@@ -625,6 +625,32 @@
             <de><![CDATA[Produkte durchsuchen]]></de>
             <en><![CDATA[Search products]]></en>
         </locale>
+        <locale name="template.basket.small.otherPaymentMethodsSpacer" html="true">
+            <de><![CDATA[- oder -]]></de>
+            <en><![CDATA[- or -]]></en>
+        </locale>
+
+        <!-- site types -->
+        <locale name="admin.types.registration">
+            <de><![CDATA[Registrierung]]></de>
+            <en><![CDATA[Registration]]></en>
+        </locale>
+        <locale name="admin.types.setting.registration">
+            <de><![CDATA[Registrierung]]></de>
+            <en><![CDATA[Registration]]></en>
+        </locale>
+        <locale name="quiqqer.settings.registration.contentPos">
+            <de><![CDATA[Wo soll der Seiteninhalt angezeigt werden?]]></de>
+            <en><![CDATA[Where should the page content be displayed?]]></en>
+        </locale>
+            <locale name="quiqqer.settings.registration.contentPos.nextToRegistrationForm">
+                <de><![CDATA[Neben dem Registrierungsformular]]></de>
+                <en><![CDATA[Next to the registration form]]></en>
+            </locale>
+            <locale name="quiqqer.settings.registration.contentPos.beforeRegistrationForm">
+                <de><![CDATA[Vor dem Registrierungsformular]]></de>
+                <en><![CDATA[Before the registration form]]></en>
+            </locale>
 
     </groups>
 
@@ -633,6 +659,11 @@
             <de><![CDATA[Abmelden]]></de>
             <en><![CDATA[Logout]]></en>
         </locale>
+
+        <locale name="template.popup.login.registration.button">
+            <de><![CDATA[Kundenkonto anlegen]]></de>
+            <en><![CDATA[Create account]]></en>
+        </locale>
     </groups>
 
 </locales>
\ No newline at end of file
diff --git a/quiqqer/order/src/QUI/ERP/Order/Controls/Basket/Small.html b/quiqqer/order/src/QUI/ERP/Order/Controls/Basket/Small.html
index 477917169f72abbe34afb6ca4dd12a28156c37f7..5b104b4a36d19e9be7bda7c6a9c7c65d9c69b9f1 100644
--- a/quiqqer/order/src/QUI/ERP/Order/Controls/Basket/Small.html
+++ b/quiqqer/order/src/QUI/ERP/Order/Controls/Basket/Small.html
@@ -1,3 +1,5 @@
+{template_event name="quiqqer::order::basketSmall::begin" Basket=$Basket}
+
 <div class="quiqqer-order-basket-small-articles">
     {assign var=pos value=1}
     {foreach $products as $product}
@@ -42,6 +44,8 @@
     {/foreach}
 </div>
 
+{template_event name="quiqqer::order::basketSmall::middle" Basket=$Basket}
+
 <table class="quiqqer-order-basket-small-total">
     <tr class="quiqqer-order-basket-small-total-subSum">
         <td class="quiqqer-order-basket-small-total-firstCell">
@@ -96,6 +100,8 @@
     </tr>
 </table>
 
+{template_event name="quiqqer::order::basketSmall::beforeCheckoutButton" Basket=$Basket}
+
 <div class="quiqqer-order-basket-small-buttons">
     <a href="{$shoppingCartUrl}" class="open-shopping-cart btn btn-light">
         {locale group="quiqqer/order" var="control.basket.small.shoppingCart.button"}
@@ -104,4 +110,14 @@
     <a href="{$checkoutUrl}" class="open-checkout btn btn-success">
         {locale group="quiqqer/order" var="control.basket.small.buy.button"}
     </a>
-</div>
\ No newline at end of file
+</div>
+
+{template_event name="quiqqer::order::basketSmall::end" Basket=$Basket}
+
+<style>
+    .quiqqer-order-basket-small-buttons + *:before {
+        content: '{locale group="quiqqer/template-cologne" var="template.basket.small.otherPaymentMethodsSpacer"}';
+        margin: 0 0 15px;
+        display: block;
+    }
+</style>
\ No newline at end of file
diff --git a/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListDetails.html b/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListDetails.html
index 7efb491641ed39ca3817d1d0a8d38254ad86228e..eff7e4c40ce7b3d06e8849a7a62df65270bdfa05 100644
--- a/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListDetails.html
+++ b/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListDetails.html
@@ -24,7 +24,7 @@
                     price={control control="QUI\ERP\Products\Controls\Price" Price=$Product->getPrice()}
                 }
             {else}
-                {control control="QUI\ERP\Products\Controls\Price" Price=$Product->getPrice()}
+                {$Product->getPriceDisplay()->create()}
             {/if}
         </div>
         {/if}
diff --git a/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListGallery.html b/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListGallery.html
index c328eb77c5f5ed827ad26d0c1d4c473acfddf533..7ef89d2fd7bf0990da35e169032a46c40ec535b7 100644
--- a/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListGallery.html
+++ b/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListGallery.html
@@ -19,11 +19,11 @@
                 price={control control="QUI\ERP\Products\Controls\Price" Price=$Product->getPrice()}
             }
         {else}
-            {control control="QUI\ERP\Products\Controls\Price" Price=$Product->getPrice()}
+            {$Product->getPriceDisplay()->create()}
         {/if}
     </span>
 
-    <div class="product-buttons">
+    <div class="cologne-products-productGallery-products-product-buttons">
         {template_event name="quiqqer::product-event::slider::buttonAddToCart" Product=$Product}
         <!--<a href="" class="btn btn-link add-to-card">Add to wish list</a>-->
         {if QUI\ERP\Products\Utils\Products::isVariant($Product)}
diff --git a/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListList.html b/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListList.html
index ec344c937233880fe980b3e4a5df45223e165f50..032b3aa729165c2aad75e860f76aba6b9121fd46 100644
--- a/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListList.html
+++ b/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListList.html
@@ -50,7 +50,7 @@
                 price={control control="QUI\ERP\Products\Controls\Price" Price=$Product->getPrice()}
             }
         {else}
-            {control control="QUI\ERP\Products\Controls\Price" Price=$Product->getPrice()}
+            {$Product->getPriceDisplay()->create()}
         {/if}
     </div>
     {/if}
diff --git a/site.xml b/site.xml
index b488d4ac1d2a58cded6cd71ae342c4c6066edc76..27da728ebd2d20d8879a2e70d5f0878dd0998a9d 100644
--- a/site.xml
+++ b/site.xml
@@ -59,52 +59,91 @@
         <layout type="layout/startPage"
                 image="bin/layouts/startPage.png">
             <title>
-                <locale group="quiqqer/template-cologne" var="admin.layout.startpage" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.startpage"/>
             </title>
             <description>
-                <locale group="quiqqer/template-cologne" var="admin.layout.startpage.desc" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.startpage.desc"/>
             </description>
         </layout>
 
         <layout type="layout/noSidebar"
                 image="bin/layouts/noSidebar.png">
             <title>
-                <locale group="quiqqer/template-cologne" var="admin.layout.noSidebar" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.noSidebar"/>
             </title>
             <description>
-                <locale group="quiqqer/template-cologne" var="admin.layout.noSidebar.desc" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.noSidebar.desc"/>
             </description>
         </layout>
 
         <layout type="layout/noSidebarThin"
                 image="bin/layouts/noSidebarThin.png">
             <title>
-                <locale group="quiqqer/template-cologne" var="admin.layout.noSidebarThin" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.noSidebarThin"/>
             </title>
             <description>
-                <locale group="quiqqer/template-cologne" var="admin.layout.noSidebarThin.desc" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.noSidebarThin.desc"/>
             </description>
         </layout>
 
         <layout type="layout/leftSidebar"
                 image="bin/layouts/leftSidebar.png">
             <title>
-                <locale group="quiqqer/template-cologne" var="admin.layout.leftSidebar" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.leftSidebar"/>
             </title>
             <description>
-                <locale group="quiqqer/template-cologne" var="admin.layout.leftSidebar.desc" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.leftSidebar.desc"/>
             </description>
         </layout>
 
         <layout type="layout/rightSidebar"
                 image="bin/layouts/rightSidebar.png">
             <title>
-                <locale group="quiqqer/template-cologne" var="admin.layout.rightSidebar" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.rightSidebar"/>
             </title>
             <description>
-                <locale group="quiqqer/template-cologne" var="admin.layout.rightSidebar.desc" />
+                <locale group="quiqqer/template-cologne" var="admin.layout.rightSidebar.desc"/>
             </description>
         </layout>
     </layouts>
 
+    <!-- types -->
+    <types>
+        <!-- user register -->
+        <type type="types/registration" icon="fa fa-user-plus">
+            <locale group="quiqqer/template-cologne" var="admin.types.registration"/>
+
+            <!-- extra attributes -->
+            <attributes>
+                <attribute default="nextToRegistrationForm">quiqqer.settings.registration.contentPos</attribute>
+            </attributes>
+
+            <settings>
+                <category name="registration-settings">
+                    <settings>
+                        <title>
+                            <locale group="quiqqer/template-cologne" var="admin.types.setting.registration"/>
+                        </title>
+
+                        <select conf="quiqqer.settings.registration.contentPos">
+                            <text>
+                                <locale group="quiqqer/template-cologne"
+                                        var="quiqqer.settings.registration.contentPos"/>
+                            </text>
+                            <option value="nextToRegistrationForm">
+                                <locale group="quiqqer/template-cologne"
+                                        var="quiqqer.settings.registration.contentPos.nextToRegistrationForm"
+                                />
+                            </option>
+                            <option value="beforeRegistrationForm">
+                                <locale group="quiqqer/template-cologne"
+                                        var="quiqqer.settings.registration.contentPos.beforeRegistrationForm"
+                                />
+                            </option>
+                        </select>
+                    </settings>
+                </category>
+            </settings>
+        </type>
+    </types>
 </site>
diff --git a/src/QUI/TemplateCologne/Utils.php b/src/QUI/TemplateCologne/Utils.php
index 5ad0577315403d93035c345b792c8539e1cb0584..78ae70759b9e4b2766a94ad61a6fa4f4ec1e5581 100644
--- a/src/QUI/TemplateCologne/Utils.php
+++ b/src/QUI/TemplateCologne/Utils.php
@@ -68,7 +68,7 @@ public static function getConfig($params)
 
         try {
             return QUI\Cache\Manager::get(
-                'quiqqer/templateCologne/' . $Site->getId()
+                'quiqqer/templateCologne/'.$Site->getId()
             );
         } catch (QUI\Exception $Exception) {
         }
@@ -127,6 +127,10 @@ public static function getConfig($params)
                 break;
         }
 
+        if ($Site->getAttribute('type') === 'quiqqer/order:types/orderingProcess') {
+            $showBreadcrumb = false;
+        }
+
         /* site own show header */
         switch ($Site->getAttribute('templateCologne.header')) {
             case 'afterNav':
@@ -178,8 +182,8 @@ public static function getConfig($params)
         $config['header']           = $header;
         $config['pageTitle']        = $pageTitle;
         $config['showBreadcrumb']   = $showBreadcrumb;
-        $config['settingsCSS']      = '<style>' . $settingsCSS . '</style>';
-        $config['typeClass']        = 'type-' . str_replace(['/', ':'], '-', $Site->getAttribute('type'));
+        $config['settingsCSS']      = '<style>'.$settingsCSS.'</style>';
+        $config['typeClass']        = 'type-'.str_replace(['/', ':'], '-', $Site->getAttribute('type'));
         $config['siteType']         = $siteType;
         $config['basketStyle']      = $basketStyle;
         $config['basketOpen']       = $basketOpen;
@@ -187,7 +191,7 @@ public static function getConfig($params)
 
         // set cache
         QUI\Cache\Manager::set(
-            'quiqqer/templateCologne/' . $Site->getId(),
+            'quiqqer/templateCologne/'.$Site->getId(),
             $config
         );
 
diff --git a/types/registration.html b/types/registration.html
new file mode 100644
index 0000000000000000000000000000000000000000..1593890b0d3a4b86a8b3dd3520796721530d1125
--- /dev/null
+++ b/types/registration.html
@@ -0,0 +1,11 @@
+{if $Site->getAttribute('quiqqer.settings.registration.contentPos') == 'beforeRegistrationForm'
+    && $Template->getAttribute('content-body') && $Site->getAttribute('content')}
+<section class="content-body grid-100 mobile-grid-100 grid-parent">
+    {$Site->getAttribute('content')}
+</section>
+{/if}
+
+<div class="content-template" style="min-height: 350px;">
+    {$Registration->create()}
+</div>
+
diff --git a/types/registration.php b/types/registration.php
new file mode 100644
index 0000000000000000000000000000000000000000..c96a4e79b9e0bbb6f7d7c9a0e8dac3733ab177a3
--- /dev/null
+++ b/types/registration.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * Registration Sign Up Site Type
+ */
+
+use QUI\Utils\Security\Orthos;
+
+$Site->setAttribute('nocache', 1);
+
+// Determine what happens if the user is already logged in
+if (QUI::getUserBySession()->getId()) {
+    try {
+        $FrontendUsersHandler = QUI\FrontendUsers\Handler::getInstance();
+        $registrationSettings = $FrontendUsersHandler->getRegistrationSettings();
+
+        if ($registrationSettings['visitRegistrationSiteBehaviour'] === 'showProfile') {
+            $ProfileSite = $FrontendUsersHandler->getProfileSite($Site->getProject());
+
+            if ($ProfileSite) {
+                header('Location: ' . $ProfileSite->getUrlRewritten());
+                exit;
+            }
+        }
+    } catch (QUI\Exception $Exception) {
+        QUI\System\Log::writeDebugException($Exception);
+    }
+}
+
+$siteContent = false;
+
+if ($Site->getAttribute('quiqqer.settings.registration.contentPos') == 'nextToRegistrationForm' && $Site->getAttribute('content')) {
+    $siteContent = $Site->getAttribute('content');
+}
+
+/**
+ * Registration / Sign up
+ */
+$Registration = new QUI\FrontendUsers\Controls\RegistrationSignUp([
+    'content' => $siteContent
+]);
+
+$Engine->assign([
+    'Registration' => $Registration,
+]);