Index: /controller/wpsg_ShopController.class.php
===================================================================
--- /controller/wpsg_ShopController.class.php	(revision 5866)
+++ /controller/wpsg_ShopController.class.php	(revision 5867)
@@ -1232,57 +1232,68 @@
 		{
 			
-			$this->bShortcode = true;
-			
-			if (!$this->hasActiveLicence() && $this->getDemoDays() <= 0)
-			{
-
-				// Ihre <a title="Informationen ÃŒber das wpShopGermandy Wordpress Shop Plugin System" href="http://wpshopgermany.de">wpShopGermany</a> <a href="http://shop.maennchen1.de/produkte/wpshopgermany-lizenzkey/" title="wpShopGermany Wordpress Shop Plugin System Lizenz erwerben">Lizenz</a> ist abgelaufen.<br />
-				return base64_decode('SWhyZSA8YSB0aXRsZT0iSW5mb3JtYXRpb25lbiDDvGJlciBkYXMgd3BTaG9wR2VybWFuZHkgV29yZHByZXNzIFNob3AgUGx1Z2luIFN5c3RlbSIgaHJlZj0iaHR0cDovL3dwc2hvcGdlcm1hbnkuZGUiPndwU2hvcEdlcm1hbnk8L2E+IDxhIGhyZWY9Imh0dHA6Ly9zaG9wLm1hZW5uY2hlbjEuZGUvcHJvZHVrdGUvd3BzaG9wZ2VybWFueS1saXplbnprZXkvIiB0aXRsZT0id3BTaG9wR2VybWFueSBXb3JkcHJlc3MgU2hvcCBQbHVnaW4gU3lzdGVtIExpemVueiBlcndlcmJlbiI+TGl6ZW56PC9hPiBpc3QgYWJnZWxhdWZlbi48YnIgLz4=');
-			
-			}
-			
-			if (isset($atts['template']))
-			{
-				
-				$template = $atts['template']; 
-				
-			}
-			else if (isset($atts['produktgruppe']))
-			{
-				
-				return $this->callMod('wpsg_mod_productgroups', 'shortcode', array($atts));
-				
-			}
-			else
-			{
-				
-				$template = false;
-				
-			}
-			
-			if ($atts['product'] === '-1')
-			{
-					
-				$arProductIDs = $this->db->fetchAssocField("SELECT `id` FROM `".WPSG_TBL_PRODUCTS."` ORDER BY `id` ASC ");		
-				$content = '';
-				
-				foreach ($arProductIDs as $product_id)
-				{
-					
-					$content .= $this->renderProdukt($product_id, $template);
-					
-				}
-				
-				return $content;
-				
-			}
-			else
-			{
-			
-				return $this->renderProdukt($atts['product'], $template);
-					
-			}
-			
-			$this->bShortcode = false;
+			try
+			{
+			
+				$this->bShortcode = true;
+			
+				if (!$this->hasActiveLicence() && $this->getDemoDays() <= 0)
+				{
+	
+					// Ihre <a title="Informationen ÃŒber das wpShopGermandy Wordpress Shop Plugin System" href="http://wpshopgermany.de">wpShopGermany</a> <a href="http://shop.maennchen1.de/produkte/wpshopgermany-lizenzkey/" title="wpShopGermany Wordpress Shop Plugin System Lizenz erwerben">Lizenz</a> ist abgelaufen.<br />
+					return base64_decode('SWhyZSA8YSB0aXRsZT0iSW5mb3JtYXRpb25lbiDDvGJlciBkYXMgd3BTaG9wR2VybWFuZHkgV29yZHByZXNzIFNob3AgUGx1Z2luIFN5c3RlbSIgaHJlZj0iaHR0cDovL3dwc2hvcGdlcm1hbnkuZGUiPndwU2hvcEdlcm1hbnk8L2E+IDxhIGhyZWY9Imh0dHA6Ly9zaG9wLm1hZW5uY2hlbjEuZGUvcHJvZHVrdGUvd3BzaG9wZ2VybWFueS1saXplbnprZXkvIiB0aXRsZT0id3BTaG9wR2VybWFueSBXb3JkcHJlc3MgU2hvcCBQbHVnaW4gU3lzdGVtIExpemVueiBlcndlcmJlbiI+TGl6ZW56PC9hPiBpc3QgYWJnZWxhdWZlbi48YnIgLz4=');
+				
+				}
+				
+				if (isset($atts['template']))
+				{
+					
+					$template = $atts['template']; 
+					
+				}
+				else if (isset($atts['produktgruppe']))
+				{
+					
+					return $this->callMod('wpsg_mod_productgroups', 'shortcode', array($atts));
+					
+				}
+				else
+				{
+					
+					$template = false;
+					
+				}
+				
+				if ($atts['product'] === '-1')
+				{
+						
+					$arProductIDs = $this->db->fetchAssocField("SELECT `id` FROM `".WPSG_TBL_PRODUCTS."` ORDER BY `id` ASC ");		
+					$content = '';
+					
+					foreach ($arProductIDs as $product_id)
+					{
+						
+						$content .= $this->renderProdukt($product_id, $template);
+						
+					}
+					
+					return $content;
+					
+				}
+				else
+				{
+				
+					return $this->renderProdukt($atts['product'], $template);
+						
+				}
+				
+				$this->bShortcode = false;
+				
+			}
+			catch (Exception $e)
+			{
+				
+				return $e->getMessage();
+				
+			}
 			
 		} // public function shortcode($atts, $content = '')
@@ -1451,5 +1462,7 @@
 		
 			$produkt = $this->cache->loadProduct($produkt_id);
-									
+					
+			if (!wpsg_isSizedArray($produkt)) throw new \Exception('Produkt (ID:'.$produkt_id.') konnte nicht geladen werden.');
+			
 			foreach ($override as $k => $v) $produkt[$k] = $v;
 						
@@ -2520,4 +2533,5 @@
 			if (isset($_REQUEST['wpsg']['checkout']['land'])) $_SESSION['wpsg']['checkout']['land'] = $_REQUEST['wpsg']['checkout']['land'];
 			
+			$this->addShipPay();
 			
 			$this->basket->initFromSession();
@@ -2556,6 +2570,5 @@
 		public function wp_load()
 		{
-			$this->addShipPay();
-				
+			
 			load_plugin_textdomain('wpsg', false, dirname( plugin_basename( __FILE__ ) ).'/../lang/');
 			   
@@ -2768,18 +2781,18 @@
 				// Kundenvariablen
 				//wpsg_admin_pflicht
-				$arPflicht = $this->get_option('wpsg_admin_pflicht');
-				if (wpsg_isSizedArray($arPflicht['custom'])) 
-				{
-
-					foreach ($arPflicht['custom'] as $index => $kv)
-					{
-						 
+				$arPflicht = $this->get_option('wpsg_admin_pflicht');				
+
+				if (wpsg_isSizedArray($arPflicht['custom']))
+				{
+				
+					foreach (arPflicht['custom'] as $index => $kv)
+					{
+					 
 						$arReplace['/%kv_'.$index.'%/i'] = $this->getCustomFieldFromDB($kunden_id, $index);
-											
+										
 					}
 					
-									
-				}
-				
+				}
+								
 			}
 			
@@ -3690,5 +3703,5 @@
 		{
 			
-			//echo '<pre>';debug_print_backtrace();echo '</pre>'; wpsg_debug("OK");
+			$arShippingNew = array();
 			
 			// Damit es auch ohne View aus wpsg_basket.class beim prÃŒfen der Versandarten aufgerufen werden kann
Index: /lib/wpsg_basket.class.php
===================================================================
--- /lib/wpsg_basket.class.php	(revision 5866)
+++ /lib/wpsg_basket.class.php	(revision 5867)
@@ -290,7 +290,21 @@
 				
 			}
-			
-			$this->arCheckout = $_SESSION['wpsg']['checkout'];
-			
+						
+			$this->arCheckout = wpsg_array_merge(array(
+				'firma' => 'test',
+				'title' => '-1',
+				'vname' => '',
+				'name' => '',
+				'email' => '', 'email2' => '',
+				'geb' => '',
+				'fax' => '',
+				'tel' => '',
+				'strasse' => '', 'nr' => '',
+				'plz' => '',
+				'ort' => '',
+				'land' => '',
+				'comment' => ''
+			), $_SESSION['wpsg']['checkout']);
+									
 			$this->loadFromSession = true;
 
@@ -1317,5 +1331,5 @@
 			$arReturn = array();
 
-			$arReturn['oOrder'] = wpsg_order::getInstance($_SESSION['wpsg']['order_id']);
+			if (wpsg_isSizedInt($_SESSION['wpsg']['order_id'])) $arReturn['oOrder'] = wpsg_order::getInstance($_SESSION['wpsg']['order_id']);
 			
 			if (wpsg_isSizedInt($this->arCheckout['land']))
@@ -1535,5 +1549,5 @@
 			$this->shop->callMod('wpsg_mod_discount', 'basket_toArray_discount', arraY(&$this, &$arReturn));
 			
-			// Kundendaten einfÃŒgen
+			// Kundendaten einfÃŒgen			
 			$arReturn['checkout'] = $this->arCheckout;
 
Index: /mods/wpsg_mod_basic.class.php
===================================================================
--- /mods/wpsg_mod_basic.class.php	(revision 5866)
+++ /mods/wpsg_mod_basic.class.php	(revision 5867)
@@ -995,5 +995,5 @@
 				{
 					
-					if ($mw['value'] > 0) $tax_base_sum += $mw['base_value'];
+					if ($mw['value'] > 0) $tax_base_sum += wpsg_getFloat($mw['base_value']);
 					
 				}
@@ -1002,5 +1002,5 @@
 				{
 					 
-					if ($mw['base_value'] > 0 && $tax_base_sum > 0)
+					if (wpsg_getFloat($mw['base_value']) > 0 && $tax_base_sum > 0)
 					{
 					
Index: /views/css/frontend.css
===================================================================
--- /views/css/frontend.css	(revision 5866)
+++ /views/css/frontend.css	(revision 5867)
@@ -72,5 +72,5 @@
 
 /* Checkout2 */ 
-.shippay_wrap { margin-top:40px; width:100%; font-family:Arial; padding-right:10px; }
+.shippay_wrap { margin-top:40px; width:100%; font-family:Arial; }
 .wpsg_payment .wpsg_payment_textwrap { margin-top:40px; }
 .shippay_wrap .shippay_item_wrap { position:relative; border-top:1px solid #DFDFDF; cursor:pointer; padding-left:8px; }
@@ -88,4 +88,5 @@
 .wpsg_checkout2 .wpsg_overviewbutton { float:right; }
 .wpsg_checkout2 .wpsg_checkoutbutton { float:left; }
+.wpsg_checkout2 .wpsg_shipping { margin-bottom:2rem; }
 
 /* Overview */
@@ -278,26 +279,5 @@
 /* Modul ZubehÃ¶rprodukte */
 .wpsg_mod_relatedproducts_basket { margin-top:2rem; }
-
-/* Progress bar 
-.steps { list-style:none; margin:0; padding:10px 0; overflow:hidden; font-family:'inherit',sans-serif; font-size:1.5rem; width:100%; height:auto; line-height:20px; font-weight:bold; counter-reset:li; }
-.steps > a, .steps > p { float:left; margin:5px 0;}
-.steps a, .steps p { list-style-image:none; list-style-type:none; margin-left:0; text-align:center; color:#bbb; background:#f2f2f2; position:relative; margin-left:43px; border-bottom:medium none !important; }
-
-.steps a:after, .steps p:after { position:absolute; top:50%; left:100%; content:" "; height:0; width:0; border:solid transparent; border-left-color:#f2f2f2; border-width:19px; margin-top:-19px; }
-.steps a span:after, .steps p span:after { position:absolute; top:50%; right:100%; content:" "; height:0; width:0; border:solid #f2f2f2; border-left-color:transparent; border-width:19px; margin-top:-19px; }
-
-.steps a span, .steps p span { display:block; padding:9px 28px 9px 9px; }
-.steps a span:before, .steps p span:before { counter-increment:li; }
-
-.steps a.current, .steps p.current { color:#3a3a3a; background:#c9c9c9; }
-.steps a.current:after, .steps p.current:after { border-left-color:#c9c9c9; }
-.steps a.current span:after, .steps p.current span:after { border-color:#c9c9c9; border-left-color:transparent; }
-
-.steps a.step1, .steps p.step1 { z-index:9; }
-.steps a.step2, .steps p.step2 { z-index:8; }
-.steps a.step3, .steps p.step3 { z-index:7; }
-.steps a.step4, .steps p.step4 { z-index:6; }
-*/
- 
+  
 .wpsg_progress { padding:0px; margin:0px; width:100%; margin-bottom:100px; margin-top:30px; }
 .wpsg_progress:after { border:1px solid #C5C5C5; height:10px; background-color:#F2F2F2; box-sizing:border-box; display:block; width:100%; content:" "; }
Index: /views/mods/mod_shippingadress/checkout_inner_prebutton.phtml
===================================================================
--- /views/mods/mod_shippingadress/checkout_inner_prebutton.phtml	(revision 5866)
+++ /views/mods/mod_shippingadress/checkout_inner_prebutton.phtml	(revision 5867)
@@ -9,5 +9,5 @@
 		<div class="wpsg_checkoutblock">
 			<label for="act_checkout_shippingadress">
-				<input id="act_checkout_shippingadress" class="wpsg_checkout formfield_checkbox" type="checkbox" name="wpsg[checkout][diff_shippingadress]" value="" <?php echo ($_SESSION['wpsg']['checkout']['diff_shippingadress'] == 1)? 'checked="checked"':'' ?> onclick="view_checkout_shippingadresss()" />
+				<input id="act_checkout_shippingadress" class="wpsg_checkout formfield_checkbox" type="checkbox" name="wpsg[checkout][diff_shippingadress]" value="" <?php echo ((wpsg_isSizedInt($_SESSION['wpsg']['checkout']['diff_shippingadress']))?'checked="checked"':'') ?> onclick="view_checkout_shippingadresss()" />
 				<?php echo __('Gesonderte Lieferadresse abweichend von der Rechnungsadresse verwenden', 'wpsg') ?>
 			</label>			
@@ -20,5 +20,5 @@
 			<div class="wpsg_checkoutblock">
 				<label for="firma" class="wpsg_checkout"><?php echo __("Firma:", "wpsg"); ?></label>
-				<input class="wpsg_checkout <?php echo ((in_array("name", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_name" name="wpsg[checkout][shipping_firma]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_firma']); ?>" />
+				<input class="wpsg_checkout <?php echo ((in_array("name", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_name" name="wpsg[checkout][shipping_firma]" value="<?php echo wpsg_hspc(wpsg_getStr($this->view['basket']['checkout']['shipping_firma'])); ?>" />
 			</div>
 		
@@ -29,5 +29,5 @@
 				<select class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("title", (array)$this->view['error']))?'wpsg_error':''); ?>" type="select" name="wpsg[checkout][shipping_title]" id="shipping_title" >
 				<?php foreach (explode("|", $this->view['pflicht']['anrede_auswahl']) as $t) { ?>
-				<option value="<?php echo $t; ?>" <?php echo (($this->view['basket']['checkout']['shipping_title'] == $t)?'selected="selected"':''); ?>><?php echo $t; ?></option>
+				<option value="<?php echo $t; ?>" <?php echo ((wpsg_isSizedString($this->view['basket']['checkout']['shipping_title'], $t))?'selected="selected"':''); ?>><?php echo $t; ?></option>
 				<?php } ?>
 				</select>
@@ -38,5 +38,5 @@
 					<span class="wpsg_required">*</span>
 				</label>
-				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_vname", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_vname" name="wpsg[checkout][shipping_vname]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_vname']); ?>" />
+				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_vname", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_vname" name="wpsg[checkout][shipping_vname]" value="<?php echo wpsg_hspc(wpsg_getStr($this->view['basket']['checkout']['shipping_vname'])); ?>" />
 			</div>
 				
@@ -45,5 +45,5 @@
 					<span class="wpsg_required">*</span>
 				</label>
-				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_name", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_name" name="wpsg[checkout][shipping_name]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_name']); ?>" />
+				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_name", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_name" name="wpsg[checkout][shipping_name]" value="<?php echo wpsg_hspc(wpsg_getStr($this->view['basket']['checkout']['shipping_name'])); ?>" />
 			</div>
 				
@@ -52,5 +52,5 @@
 					<span class="wpsg_required">*</span>
 				</label>
-				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_strasse", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_strasse" name="wpsg[checkout][shipping_strasse]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_strasse']); ?>" />		
+				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_strasse", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_strasse" name="wpsg[checkout][shipping_strasse]" value="<?php echo wpsg_hspc(wpsg_getStr($this->view['basket']['checkout']['shipping_strasse'])); ?>" />		
 			</div>
 			
@@ -59,5 +59,5 @@
 					<span class="wpsg_required">*</span>
 				</label>
-				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_plz", (array)$this->view['error']))?'wpsg_error':''); ?>" type="number" id="shipping_plz" name="wpsg[checkout][shipping_plz]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_plz']); ?>" />
+				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_plz", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_plz" name="wpsg[checkout][shipping_plz]" value="<?php echo wpsg_hspc(wpsg_getStr($this->view['basket']['checkout']['shipping_plz'])); ?>" />
 			</div>
 				
@@ -66,5 +66,5 @@
 					<span class="wpsg_required">*</span>
 				</label>
-				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_ort", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_ort" name="wpsg[checkout][shipping_ort]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_ort']); ?>" />
+				<input class="validate[required_shipping] wpsg_checkout <?php echo ((in_array("shipping_ort", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="shipping_ort" name="wpsg[checkout][shipping_ort]" value="<?php echo wpsg_hspc(wpsg_getStr($this->view['basket']['checkout']['shipping_ort'])); ?>" />
 			</div>
 				
Index: /views/warenkorb/checkout2.phtml
===================================================================
--- /views/warenkorb/checkout2.phtml	(revision 5866)
+++ /views/warenkorb/checkout2.phtml	(revision 5867)
@@ -34,5 +34,5 @@
 					<div class="wpsg_payship_name"><?php echo __($s['name'], 'wpsg'); ?></div>				
 					<?php } ?> 
- 					<?php if ((isset($s['hint']) && trim($s['hint']) != '') || $s['price'] > 0) { ?>					
+ 					<?php if ((isset($s['hint']) && trim($s['hint']) != '') || wpsg_getFloat($s['price']) > 0) { ?>					
 					<div id="shipping_<?php echo $s['id']; ?>_hint" class="shippay_hint">
 						<?php if ($s['price'] > 0) { ?>
