ورود به حساب کاربری        عضویت
مشاوره تلفنی    05136615381 - 09155249646 - 05136639567  

صفحه اصلی › انجمن ها › php › ایجاد سبد خرید برای فروشگاه اینترنتی

برچسب ها: 

در حال نمایش 1 نوشته (از کل 1)
  • نویسنده
    نوشته‌ها
  • #11017
    vahid ahmadi
    مدیرکل

    سبد خرید امکانی است که کاربران میتوانند گزینه های دلخواه را بطور موقت در بخشی از حافظه یا دیسک سرور ذخیره کنند. در این جا مکانیسم ذخیره سازی، متغیر سوپرگلوبال $_SESSION[] می باشد.
    مواردی که در متغیر $_SESSION ذخیره می شود شامل کلید اصلی (id) هر کالا و همچنین تعداد کالا است.

    مراحل کار بطور خلاصه:
    ۱٫ در صفحه محصول دکمه ای با لیبل “اضافه به سبد خرید” ایجاد میکنیم
    ۲٫ پارامترهای id و quantity که همان کلید اصلی و تعداد کالا است را توسط متد get یا post به صفحه سبد خرید پاس کنید.
    ۳٫ صفحه سبد خرید پرامترهای یاد شده را دریافت میکند و در متغیر $_SESSION ذخیره میکند
    ۴٫ برنامه چک میکند اگر پیش از این، همین کالا به سبد اضافه شده بود تعداد جدید را با تعداد قبلی جمع کند
    ۵٫ متدهای بروزرسانی،حذف، جمع کننده قیمت و جمع کننده تعداد را به برنامه اضافه می کنیم:
    متد بروزرسانی، تعداد و جمع قیمت هر محصول را دوباره حساب میکند
    متد حذف، هر کالا را بطور مستقل از سبد خرید حذف میکند
    متد جمع قیمت، تعداد هر کالا را در قیمت آن ضرب میکند
    متد جمع تعداد، تعداد کل کالاهای موجود در سبد خرید را حساب میکند

    @ $new = $_GET['new'];
    @ $q = $_GET['q'];
    
      if($new)
      {
        //new item selected
        if(!isset($_SESSION['cart']))
        {
          $_SESSION['cart'] = array();
          $_SESSION['items'] = 0;
          $_SESSION['total_price'] ='0.00';
        }
    
    	
    
        if(isset($_SESSION['cart'][$new]) )) // اگر قبلا به سبد اضافه شده بود
    	$_SESSION['cart'][$new] += $q;	// با تعدادقبلی جمع کن
        else 
         $_SESSION['cart'][$new] = $q; // کالای جدید را اضافه کن
      
     		
        $_SESSION['total_price'] = calculate_price($_SESSION['cart']); //محاسبه مجدد قیمت کالا
    	
    	
        $_SESSION['items'] = calculate_items($_SESSION['cart']);  // محاسبه مجدد تعدادکالا
      }
    
      
      
    function calculate_price($cart) //متد جمع کننده قیمت 
    {
      // sum total price for all items in shopping cart
      $price = 0.0;
      if(is_array($cart))
      {
        global $con;
        foreach($cart as $productid => $qty)
        {  
          $query = "select pr_price from us_products where pr_id='$productid'";
          $result = $con->query($query);
          if ($result)
          {
            //$item = $result->fetch_object();
    		$item=mysqli_fetch_array($result);
    		// if (is_object($item))
            $item_price = $item['pr_price'];
            $price +=$item_price*$qty;
          }
        }
      }
      return $price;
    }
    
    function calculate_items($cart) // متد محاسبه تعداد کالاها
    {
      $items = 0;
      if(is_array($cart))
      {
        foreach($cart as $isbn => $qty)
        {  
          $items += $qty;
        }
      }
      return $items;
    }
    
    function get_product_details($pid) // متد خواندن اطلاعات کالا از دیتابیس
    {
      if (!$pid || $pid=='')
         return false;
    
       global $con;
       $query = "select * from us_products where pr_id='$pid'";
       $result = @$con->query($query);
       if (!$result)
         return false;
       $result = @$result->fetch_assoc();
       return $result;
    }
    
    if(isset($_GET['remid'])) کد حذف کالا از سبد خرید با  کمک پارامتر remid
      {   
        foreach ($_SESSION['cart'] as $productid => $qty)
        {
          unset($_SESSION['cart'][$_GET['remid']]);
         
        }
        $_SESSION['total_price'] = calculate_price($_SESSION['cart']);
        $_SESSION['items'] = calculate_items($_SESSION['cart']);
      }
    ?>  
در حال نمایش 1 نوشته (از کل 1)
  • شما برای پاسخ به این موضوع باید وارد شوید.