PDA

View Full Version : ایجاد سبد خرید در فروشگاه



tc1000
جمعه 06 دی 1387, 23:29 عصر
جهت سبد خرید یک فروشگاه اینترنتی چه نظری دارید.
فروشگاهی بصورتی که هیچ ثبت نامی نداره و فق سفارش و بعد پرداخت هستش و نیازی به ثبت نام کسی نیست حالا بهتریین راه پر کردن سبد خرید چیه؟

1-آیا میشه یک آرایه درست کرد و کالا ها رو داخل اون ریخت و در کوکی نگداری کرد؟ آیا کار درستی؟

2-میشه یوزر رو با ای پی ورودیش ذخیره کرد و سبد کالا رو با اون ای پی در دیتا بیس ذخیره کرد ( اینجا ممکنه یک ISP از ای پی های Invalid استفاده کنه و یوزر های رو NAT کنه ) انوقت این کار دیگه کارایی نداره

3- بعه بعد رو شما بگید چون مغزم کار نیکنه

Behrouz_Rad
جمعه 06 دی 1387, 23:45 عصر
http://www.barnamenevis.org/forum/showthread.php?t=130127

tc1000
شنبه 07 دی 1387, 00:03 صبح
عنصر اصلی در طراحی سبد خرید در ASP.NET، شی Cache هست.
اطلاعات خرید در یک لیست Generic، و لیست Generic نیز در Cache نگهداری میشه.
حداقل اطلاعاتی که برای هر مشتری نیاز هست شامل: مشخصه ی مشتری، IP مشتری، یک عبارت راندوم و زمان انتخاب آخرین محصول.

نکته ی مهمی که باید به اون دقت داشته باشید، احتمال یکسان بودن IP های کاربران است. به عنوان مثال، کاربرانی که از یک شبکه ی LAN استفاده می کنند و IP تمامی اونها یکسان هست.
چون نیاز به یک مشخصه برای تمیز دادن افراد در هنگام خرید هست و به دلیل گفته شده نمیشه به IP کاربران "مهمان" اعتماد کرد، لذا یک عبارت راندوم رو - مثلاً با استفاده از متد NewGuid کلاس GUID - ایجاد، در کوکی ذخیره، و در هنگام ورود کاربر به سایت بر روی سیستم اون ذخیره می کنیم. کاربران عضو چون از نام کاربری استفاده می کنند نیاز به کوکی ندارند.
نکته ی مهم اینکه ابتدا باید فعال بودن کوکی ها بر روی سیستم کاربر مهمان - مثلاً با استفاده از متد Cookies کلاس HttpBrowserCapabilities - رو بررسی کنید. هر چند که در اکثریت قریب به اتفاق مواقع کوکی ها بر روی سیستم فعال هستند اما پیش بینی وجود رخدادی حتی در حد 1 درصد، می تونه از وقوع مشکل در هنگام تعامل کاربر با صفحه جلوگیری کنه. در صورت غیر فعال بودن کوکی ها، از خرید کاربر جلوگیری و پیغام مناسبی رو نمایش بدید.

در هنگام ارسال درخواست خرید، لیست Generic از Cache بازیابی شده و با حرکت بین آیتم های اون - پیشنهاد من استفاده از LINQ هست - افرادی که زمان آخرین انتخاب کالای اونها از مقدار مشخصی گذشته و درخواست رو نهایی نکردن، از لیست حذف میشن.
نکته ی مهمتر اینکه، برای Cache باید زمان Sliding به منظور Expire تعیین کنید و نه زمان Absolute!

بقیه ی موارد واضح هست. به هر حال اگر ابهامی بود، در جهت رفع اون حاضرم.

موفق باشید.


من فقط یک تویح کوچیک بدم ببینم درست فهمیدم
1- ip طرف و یک عدد تصادفی میشه مصه ای برای ما که این یوزر ثبت نام نشده رو بتونیم دنبال کنیم و سبد خرید اون رو توی دیتا بیس ذخیره کنیم. خلاصشو درست متوجه شدم؟

Behrouz_Rad
شنبه 07 دی 1387, 00:11 صبح
بله، دقیقاً.