Index: /changelog
===================================================================
--- /changelog	(revision 8512)
+++ /changelog	(revision 8513)
@@ -662,2 +662,3 @@
 - Bugfix: Produktname, Artikelnummer, EAN bei Varianten in Export berÃŒcksichtigen
 - Bugfix: Newsletter wieder direkt in den Checkout integriert
+- Bugfix: Gutschein der nur teilweise im Warenkorb mÃ¶glich ist hat unter bestimmten Konfigurationen zu Problemen gefÃŒhrt
Index: /mods/wpsg_mod_gutschein.class.php
===================================================================
--- /mods/wpsg_mod_gutschein.class.php	(revision 8512)
+++ /mods/wpsg_mod_gutschein.class.php	(revision 8513)
@@ -756,4 +756,42 @@
 		} // public function basket_row_end(&$basket)
 
+		public function basket_produkttosession($produkt_key, &$menge, &$ses_data) {
+
+			if (!isset($_SESSION['wpsg']['gs'][0]['id'])) return;
+
+			$gs_id = wpsg_getInt($_SESSION['wpsg']['gs'][0]['id']);
+
+			if (!wpsg_isSizedInt($gs_id)) return;
+
+			$gs_db = $this->db->fetchRow("SELECT G.`id`, G.`productgroups`, G.`products` FROM `".WPSG_TBL_GUTSCHEIN."` AS G WHERE G.`id` = '".wpsg_q($gs_id)."'");
+
+			$product_id = $this->shop->getProduktID($produkt_key);
+
+			$product_allowed = wpsg_explode(',', $gs_db['products']);
+
+			$temp = wpsg_explode(',', $gs_db['productgroups']);
+			if (wpsg_isSizedArray($temp)) {
+
+				$ProductGroupIDs = wpsg_explode(',', $gs_db['productgroups']);
+				$product_allowed = array_merge($product_allowed, $this->db->fetchAssocField("
+					SELECT P.`id` FROM `".WPSG_TBL_PRODUCTS."` AS P WHERE P.`pgruppe` IN (".wpsg_implode(',', $ProductGroupIDs).")
+				"));
+
+			}
+
+			$product_allowed = wpsg_trim($product_allowed);
+
+			if (wpsg_isSizedArray($product_allowed) && !in_array($product_id, $product_allowed)) {
+
+				$product_data = $this->shop->loadProduktArray($product_id);
+				$this->shop->addFrontendError(wpsg_translate(__('Gutschein wurde entfernt, da er nicht mit Produkt #1# verwendet werden kann', 'wpsg'), $product_data['name']));
+				unset($_SESSION['wpsg']['gs']);
+
+				return false;
+
+			}
+
+		}
+
 		public function basket_preInsert() {
 
