diff --git a/composer.json b/composer.json
index e3a88b3cf650e7e9213e69aaf344fac17bf0d3ef..7a2bf2c9f7d1432b41a01671d58cfc85d5f50c58 100644
--- a/composer.json
+++ b/composer.json
@@ -19,7 +19,7 @@
     "php": ">=5.3",
     "quiqqer\/quiqqer": "1.*|dev-master|dev-dev",
     "quiqqer\/erp": "1.*|dev-master|dev-dev",
-    "quiqqer\/products": "1.*|dev-master|dev-dev",
+    "quiqqer\/products": "^1.3|dev-master|dev-dev",
     "quiqqer\/product-bricks": "1.*|dev-master|dev-dev",
     "quiqqer\/frontend-users": "1.*|dev-master|dev-dev",
     "quiqqer\/menu": "1.*|dev-master|dev-dev",
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 3989ce0ed46aa5c75b2e9ff2b0ceaf48916610ce..ea2d38b3aea83016cc045a4b13fef7f13d3c52d3 100644
--- a/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListDetails.html
+++ b/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListDetails.html
@@ -57,6 +57,7 @@
             {if $Product->getMaximumQuantity() < 1}
                 {assign var=disabled value=1}
             {/if}
+            {if !$Product->hasRequiredUserInputFields()}
             <a href="{$Product->getUrl()}"
                class="btn btn-primary add-to-basket"
                data-product-id="{$Product->getId()}"
@@ -69,6 +70,7 @@
                     {locale group="quiqqer/product-bricks" var="button.product.addToCart"}
                 </label>
             </a>
+            {/if}
 
             <a href="{$Product->getUrl()}" class="btn btn-secondary btn-outline">
                 {locale group="quiqqer/template-cologne" var="template.button.openProduct"}
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 3492bd22466fff82e87a24197540348cefd565b7..38f84d0d3483627e259783f59e58f1077b220b2f 100644
--- a/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListGallery.html
+++ b/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListGallery.html
@@ -60,18 +60,28 @@
         {if $Product->getMaximumQuantity() < 1}
             {assign var=disabled value=1}
         {/if}
-        <a href="{$Product->getUrl()}"
-           class="btn btn-primary add-to-basket"
-           data-product-id="{$Product->getId()}"
-           data-product-animatable="1"
-           data-qui="package/quiqqer/product-bricks/bin/controls/basket/AddToBasket"
-           {if $disabled}disabled="disabled"{/if}
-           data-qui-options-disabled="{$disabled}"
+            {if $Product->hasRequiredUserInputFields()}
+            <a href="{$Product->getUrl()}"
+               class="btn btn-primary btn-outline"
+            >
+                <label>
+                    {locale group="quiqqer/product-bricks" var="button.product.viewProduct"}
+                </label>
+            </a>
+            {else}
+            <a href="{$Product->getUrl()}"
+               class="btn btn-primary add-to-basket"
+               data-product-id="{$Product->getId()}"
+               data-product-animatable="1"
+               data-qui="package/quiqqer/product-bricks/bin/controls/basket/AddToBasket"
+               {if $disabled}disabled="disabled"{/if}
+            data-qui-options-disabled="{$disabled}"
             >
             <label>
                 {locale group="quiqqer/product-bricks" var="button.product.addToCart"}
             </label>
-        </a>
+            </a>
+            {/if}
         {/if}
     </div>
     {/strip}
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 4d9c9d6581a062141d75828a93d981420d11677b..12f4b592d233d0ea4dd5173cfca46cef39096249 100644
--- a/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListList.html
+++ b/quiqqer/products/src/QUI/ERP/Products/Controls/Category/ProductListList.html
@@ -42,6 +42,18 @@
         {if $Product->getMaximumQuantity() < 1}
             {assign var=disabled value=1}
         {/if}
+        {if $Product->hasRequiredUserInputFields()}
+        <a href="{$Product->getUrl()}"
+           title="{locale group='quiqqer/product-bricks' var='button.product.viewProduct'}"
+           class="btn btn-primary"
+           {if $disabled}disabled="disabled"{/if}
+        data-qui-options-disabled="{$disabled}"
+        >
+        <label>
+            <span class="fa fa-search"></span>
+        </label>
+        </a>
+        {else}
         <a href="{$Product->getUrl()}"
            title="{locale group='quiqqer/product-bricks' var='button.product.addToCart'}"
            class="btn btn-primary add-to-basket"
@@ -49,12 +61,13 @@
            data-product-animatable="1"
            data-qui="package/quiqqer/product-bricks/bin/controls/basket/AddToBasket"
            {if $disabled}disabled="disabled"{/if}
-           data-qui-options-disabled="{$disabled}"
+        data-qui-options-disabled="{$disabled}"
         >
-            <label>
-                <span class="fa fa-shopping-cart"></span>
-            </label>
+        <label>
+            <span class="fa fa-shopping-cart"></span>
+        </label>
         </a>
+        {/if}
     </div>
 
     {if !$hidePrice}
diff --git a/quiqqer/products/src/QUI/ERP/Products/Controls/Products/Product.html b/quiqqer/products/src/QUI/ERP/Products/Controls/Products/Product.html
index 08ec98aeae73afd77ee2e2931d88492d15f6486e..7ab13ededb89772974bc1fe233d71f36d82613ee 100644
--- a/quiqqer/products/src/QUI/ERP/Products/Controls/Products/Product.html
+++ b/quiqqer/products/src/QUI/ERP/Products/Controls/Products/Product.html
@@ -48,6 +48,14 @@
         </div>
         {/if}
 
+        {if count($userInputFields)}
+        <div class="product-data-fieldlist {if $counter > 1}product-data-fieldlist__multiple{/if}">
+            {foreach $userInputFields as $Field}
+            {$Field->getView()->create()}
+            {/foreach}
+        </div>
+        {/if}
+
         <div class="product-data-fields">
             {foreach $fields as $Field}
             <div class="grid-50 mobile-grid-50 grid-parent product-data-fields-title">