Index: /lib/wpsg_calculation.class.php
===================================================================
--- /lib/wpsg_calculation.class.php	(revision 7370)
+++ /lib/wpsg_calculation.class.php	(revision 7371)
@@ -374,5 +374,6 @@
 						'netto' => 0,
 						'brutto' => 0,
-						'tax' => 0
+						'tax' => 0,
+						'amount' => 0
 					],
 					'tax' => [],
@@ -388,10 +389,45 @@
 				});
             	
+            	//die(wpsg_debug($this->arCalculationRow));
+				  
                 foreach ($this->arCalculationRow as $cr) {
                 	             
                 	$this->addTax($cr['tax_key']);
                 	$this->calculateTaxProportionally($cr['bruttonetto']);
-							                	
-					if (strpos($cr['set'], '%') !== false) {
+							   
+                	if (strpos($cr['set'], '|') !== false) {
+		                		
+                		list($typ, $cr['set']) = explode('-', $cr['set']);
+                		
+						$arKosten = explode('|', $cr['set']);
+						$arKosten = array_reverse($arKosten);
+		
+						if ($typ === 'w') $value = (($this->shop->getBackendTaxview() === WPSG_NETTO)?$this->arCalculation['sum']['productsum_netto']:$this->arCalculation['sum']['productsum_brutto']);
+						else if ($typ === 's') $value = $this->arCalculation['sum']['amount']; // Menge
+						else if ($typ === 'g') $value = $this->shop->callMod('wpsg_mod_weight', 'getSessionBasketWeight'); // Gewicht
+						else throw new \Exception(wpsg_translate(__('Typ (#1#) fÃŒr KostenschlÃŒssel nicht definiert.', 'wpsg'), $typ));
+						
+						foreach ($arKosten as $k) {
+			
+							$arP = explode(":", $k);
+			
+							if (sizeof($arP) == 1) $kosten = $arP[0];
+							else if (wpsg_tf($arP[0]) <= $value) $kosten = $arP[1];
+			
+						}
+						
+						$kosten = wpsg_tf($kosten);
+			
+						if ($this->shop->getBackendTaxview() === WPSG_NETTO) {
+							
+							list($netto, $brutto) = $this->calculateTaxPart(WPSG_NETTO, $kosten, $cr['tax_key']);
+							
+						} else {
+							
+							list($netto, $brutto) = $this->calculateTaxPart(WPSG_BRUTTO, $kosten, $cr['tax_key']);
+							
+						}
+                		
+					} else if (strpos($cr['set'], '%') !== false) {
 						
 						// Prozentualer Wert
@@ -507,4 +543,10 @@
 						$this->arCalculation['sum']['productsum_netto'] += $netto;
 						$this->arCalculation['sum']['productsum_brutto'] += $brutto;
+						
+					}
+					
+					if ($cr['type'] === 'product') {
+						
+						$this->arCalculation['sum']['amount'] += $cr['amount'];
 						
 					}
Index: /mods/wpsg_mod_versandarten.class.php
===================================================================
--- /mods/wpsg_mod_versandarten.class.php	(revision 7370)
+++ /mods/wpsg_mod_versandarten.class.php	(revision 7371)
@@ -278,5 +278,5 @@
 					'mwst_null' => $va['mwst_laender'],
 					'deleted' => $va['deleted'],
-					'price' => $va['kosten']
+					'price' => $va['typ'].'-'.$va['kosten'],
 				);
 				
Index: /mods/wpsg_mod_weight.class.php
===================================================================
--- /mods/wpsg_mod_weight.class.php	(revision 7370)
+++ /mods/wpsg_mod_weight.class.php	(revision 7371)
@@ -248,5 +248,5 @@
 		 * Gibt das Gewicht der Produkte im aktuellen Warenkorb zurÃŒck (Session)
 		 */
-		private function getSessionBasketWeight() {
+		public function getSessionBasketWeight() {
 			
 			$basket_amount = 0;
