PDA

View Full Version : سوال: مکانیزم سبد خرید



persianspam
دوشنبه 09 آذر 1388, 15:54 عصر
لطفا من را برای سایخت سک سبد خرید خیلی ساده راهنمایی نمایید

فروشگاه آماده است . و تنها نیاز به سبد خرید دارم. لطفا من را راهنمایی نمایید

با تشکر

meysampaknahad
دوشنبه 09 آذر 1388, 16:03 عصر
سلام
برای ایجاد سبد خرید باید اطلاعات خرید کاربر رو به طور موقت ذخیره کنی که برای این کار هم می تونی از کوکی ، سشن ، دیتاست و غیره استفاده کنی .
بعد در صورت تایید نهایی کاربر اطلاعات موقت باید در دیتابیس اصلیت ذخیره بشه.
برای نمونه هم می تونی سایت فروشگاه موبایل رو که تو فروم آپلود شده ببینی و ازش استفاده کنی .

clover
دوشنبه 09 آذر 1388, 17:30 عصر
می تونید یک کلاس سبد خرید پیاده سازی کنید و بعد یک شی از اونو به پروفایل کاربر اضافه کنید.
با این روش در صورتی که شخص لاگین کرده باشد تغییرات سبد خرید مستقیما در بانک در پروفایل ذخیره می شوند.
برای کاربران ناشناس هم بسته به تنظیمات در بازدید های بعدی سبد خرید حفظ خواهد شد.
بعد به سادگی با پروفایل باهاش کار کنید. بر ای این منظور داخل پوشه ی app_Code وب سایت یک فایل کد با نام ShoppingCart اضافه کنید و به صورت زیر ویرایشش کنید :

using System;
using System.Data;
using System.Web;
using System.Data.SqlClient;
using System.Collections.Generic;

namespace yourNamespace.Commerce
{
[Serializable]
public class CartItem
{
private int _productID;
private string _productName;
private int _quantity;
private double _price;
private double _lineTotal;

public void New()
{
}

public void New(int ProductID, string ProductName,
int Quantity, double Price)
{
_productID = ProductID;
_productName = ProductName;
_quantity = Quantity;
_price = Price;
_lineTotal = Quantity * Price;
}

public int ProductID
{
get
{
return _productID;
}
set
{
_productID = value;
}
}

public string ProductName
{
get
{
return _productName;
}
set
{
_productName = value;
}
}

public int Quantity
{
get
{
return _quantity;
}
set
{
_quantity = value;
}
}

public double Price
{
get
{
return _price;
}
set
{
_price = value;
}
}

public double LineTotal
{
get
{
return _quantity * _price;
}
}
}

[Serializable]
public class ShoppingCart
{
private DateTime _dateCreated;
private DateTime _lastUpdate;
private List<CartItem> _items;

public ShoppingCart()
{
if (this._items == null)
{
this._items = new List<CartItem>();
this._dateCreated = DateTime.Now;
}
}

public List<CartItem> Items
{
get
{
return _items;
}
set
{
_items = value;
}
}

public void Insert(int ProductID, double Price, int Quantity,
string ProductName)
{
int ItemIndex = ItemIndexOfID(ProductID);
if (ItemIndex == -1)
{
CartItem NewItem = new CartItem();
NewItem.ProductID = ProductID;
NewItem.Quantity = Quantity;
NewItem.Price = Price;
NewItem.ProductName = ProductName;
_items.Add(NewItem);
}
else
{
_items[ItemIndex].Quantity += 1;
}
_lastUpdate = DateTime.Now;
}

public void Update(int RowID, int ProductID, int Quantity,
double Price)
{
CartItem Item = _items[RowID];
Item.ProductID = ProductID;
Item.Quantity = Quantity;
Item.Price = Price;
_lastUpdate = DateTime.Now;
}

public void DeleteItem(int rowID)
{
Items.RemoveAt(rowID);
_lastUpdate = DateTime.Now;
}

private int ItemIndexOfID(int ProductID)
{
int index = 0;
foreach (CartItem item in _items)
{
if (item.ProductID == ProductID)
{
return index;
}
index += 1;
}
return -1;
}

public double Total
{
get
{
double t = 0;
if (_items == null)
{
return 0;
}
foreach (CartItem Item in _items)
{
t += Item.LineTotal;
}
return t;
}
}
}
}
بعد داخل وب کانفیگ پروفایل کاربر را به این صورت ویرایش کنید :


<anonymousIdentification enabled="true"/> <!--اضافه شود-->
<profile enabled="true">
<properties>
<add name="FirstName"/>
<add name="LasttName"/>
<add name="Tel"/>
<add name="Email"/>
<add name="PostCode"/>
<add name="Address"/>
<add name="Comment"/>
<add name="City"/>
<add name="State"/>
<add name="Mailings" type="System.Boolean"/>
<add name="Theme"/>
<add name="Cart" serializeAs="Binary" type="yourNamespace.Commerce.ShoppingCart" allowAnonymous="true"/> <!--اضافه شود-->
</properties>
</profile>
حالا به راحتی می تونید اجناس مورد نظر کاربر را با متد Insert به سبد خرید اضافه کنید، یا با استفاده از متد های دیگه سبد خرید را مدیریت کنید.


Profile.Cart.Insert(ProductID, Price, 1, ProductName);

persianspam
دوشنبه 09 آذر 1388, 17:37 عصر
با تشکر از شما دوستان خوب و اساتید.
میرم برای تست
اگه به مشکل خوردم حتما" دوباره کمک میگیرم.
ممنون