Index: branches/beta/data/class/SC_CartSession.php
===================================================================
--- branches/beta/data/class/SC_CartSession.php	(revision 11907)
+++ branches/beta/data/class/SC_CartSession.php	(revision 14676)
@@ -173,5 +173,5 @@
 	
 	// ¥«¡¼¥È¤Ø¤Î¾¦ÉÊÄÉ²Ã
-	function addProduct($id, $quantity) {
+	function addProduct($id, $quantity, $campaign_id = "") {
 		$find = false;
 		$max = $this->getMax();
@@ -182,4 +182,8 @@
 				if(strlen($val) <= INT_LEN) {
 					$_SESSION[$this->key][$i]['quantity']+= $quantity;
+                    if(!empty($campaign_id)){
+                        $_SESSION[$this->key][$i]['campaign_id'] = $campaign_id;
+                        $_SESSION[$this->key][$i]['is_campaign'] = true;
+                    }
 				}
 				$find = true;
@@ -190,4 +194,8 @@
 			$_SESSION[$this->key][$max+1]['quantity'] = $quantity;
 			$_SESSION[$this->key][$max+1]['cart_no'] = $this->getNextCartID();
+            if(!empty($campaign_id)){
+                $_SESSION[$this->key][$max+1]['campaign_id'] = $campaign_id;
+                $_SESSION[$this->key][$max+1]['is_campaign'] = true;
+            }
 		}
 	}
@@ -322,5 +330,20 @@
 		}
 	}
-	
+    
+    /**
+     * ¥«¡¼¥È¤ÎÃæ¤Î¥­¥ã¥ó¥Ú¡¼¥ó¾¦ÉÊ¤Î¥Á¥§¥Ã¥¯
+     * @param integer $campaign_id ¥­¥ã¥ó¥Ú¡¼¥óID
+     * @return boolean True:¥­¥ã¥ó¥Ú¡¼¥ó¾¦ÉÊÍ­¤ê False:¥­¥ã¥ó¥Ú¡¼¥ó¾¦ÉÊÌµ¤·
+     */
+	function chkCampaign($campaign_id){
+		$max = $this->getMax();
+		for($i = 0; $i <= $max; $i++) {
+			if($_SESSION[$this->key][$i]['is_campaign'] and $_SESSION[$this->key][$i]['campaign_id'] == $campaign_id) return true;
+		}
+        
+		return false;
+	}
+    
+
 }
 ?>
