برای شروع نیازهای اصلی را میگیم:
1- پنل کاربری 2- محصولات 3- دسته بندی محصولات 4- سبدخرید 5- واریز 6- نقش های مختلف(خریدار-فروشنده) 7- پنل مدیریتی 8- ویژگی های محصولات 9- انبار داری 10- حسابداری 11- تخفیف و کپن 12- پیشنهادات 13- نظرات خریداران قبلی 14- بنر تبلیغاتی محصولات 15- درگاه بانکی 16- ارسال و بسته بندی(لوجستیک) 17- مدیریت کارتهای بانکی 18-اطلاعات تماس 19- تبلیغات و اینستاگرام 20- گزارش انبارداری و گزارش حسابداری 21- گزارش مربوط به کمپین های تبلیغاتی 22- گزارش مربوط به روند فروش 23- داده کاوی مواردی که سلیقه کاربر در آن دخیل است
یک سری از موارد بالا مربوط به پروژه ما نمی شود:
این موارد توسط سازمان های دیگر پیاده سازی شده اند و من فقط از آنها استفاده میکنم. اصلا سایت من قابلیت پیاده سازی اینها ندارد
17- مدیریت کارتهای بانکی 16- ارسال و بسته بندی(لوجستیک)
یک سری از موراد بالا در فاز اول قابل پیاده سازی نیستند. حتی این موارد را میتوان به صورت برون سپاری به شرکتها و تیمهای دیگر سپرد: در ابتدای کار یک ماژول کوچک از این نیاز را پیاده سازی میکنم تا در آینده و فازهای بعدی آنها را کامل کنم:
9- انبار داری 10- حسابداری 19- تبلیغات و اینستاگرام
یک سری از موارد بالا مربوط به گزارش ها است. گزارش ها بر روی داده ها اتفاق می افتند پس تا زمانی که پروژه راه اندازی نشده و داده کافی وجود ندارد نمیتوان در مورد اینها نظری داد. برخی از این گزارش ها هم وابسته به زمان خاص و پیاده سازی صرفا برای یک دفعه هستند:
20- گزارش انبارداری و گزارش حسابداری 21- گزارش مربوط به کمپین های تبلیغاتی 22- گزارش مربوط به روند فروش 23- داده کاوی مواردی که سلیقه کاربر در آن دخیل است
یک سری از موارد کاملا گرافیکی هستند و باید با نظر قطعی گرافیست و طراحان تیم پیاده سازی بشوند:
14- بنر تبلیغاتی محصولات 19- تبلیغات و اینستاگرام
حالا میتوانیم موارد بالا را دسته بندی کنیم و موارد مربوط هم را در دسته های مشخص وارد کنیم:
سیستم کاربری: 1- پنل کاربری 6- نقش های مختلف(خریدار-فروشنده) 18-اطلاعات تماس
کالاها: 2- محصولات 3- دسته بندی محصولات 8- ویژگی های محصولات 13- نظرات خریداران قبلی
فرآیند خرید: 4- سبدخرید 5- واریز 11- تخفیف و کپن 15- درگاه بانکی
گزارشات و داده کاوی: 20- گزارش انبارداری و گزارش حسابداری 21- گزارش مربوط به کمپین های تبلیغاتی 22- گزارش مربوط به روند فروش 23- داده کاوی مواردی که سلیقه کاربر در آن دخیل است 12- پیشنهادات
مالی و دارایی: 9- انبار داری 10- حسابداری
در مورد جزئیات هر یک از موارد بالا بیشتر توضیح میدهیم:
1- سیستم کاربری: سیستمی است که در آن اطلاعات مربوط به نام کاربری و رمز عبور و بازیابی و ورود و خروج کاربر در آن مدیریت می شود. هر کاربر دارای نقش هایی است که باعث می شود منو های مختلف به او نمایش داده شود. یعنی به کاربر خریدار یک پنل نمایش کالا نشان داده شود با گرافیک زیبا و جذاب ولی به مدیران و فروشندگان یک پنل مدیریتی همراه با گزارش و گرافیکی آرام بخش نشان داده شود. ثبت نام خریداران ابتدا صرفا با استفاده از شماره موبایل آنها خواهد بود. این حساب موقت کاربری قابلیت خرید نهایی ندارد، در صورتی که کاربر مایل به خرید نهایی باشد باید اطلاعات تکمیلی را نیز وارد کند. اطلاعات تماس کاربران فروشنده و خریدار جهت امور پستی همچنین اطلاعات تماس تلفنی و مشخصات فردی نیز ذخیره می شود. خریداران و فروشندگان می توانند حقیقی یا حقوقی باشند در صورتیکه حقوقی بودند باید اطلاعات مالیاتی آنها نیز ذخیره شود.
2- کالاها: محصولات در دسته های مشخص که خود دسته به صورت سلسله مراتبی هستند دسته بندی مشوند. هر محصول می تواند مشخصات مربوط به خود را داشته باشد. هر مشتری میتواند در مورد محصول نظراتی را ارسال کند. این نظرات به دو دسته نظر و پرسش تقسیم می شوند که پرسش ها دارای پاسخ از طرف مدیران یا فروشندگان است. هر نظر میتواند دارای امتیاز نیز باشد که در رنج صفر تا 10 ذخیره می شوند. نظرات مثبت با علامتی سبز رنگ و نظرات منفی با علامتی قرمز رنگ مشخص میشوند. افراد دیگر نیز متوانند نظرات را تایید یا رد کنند(لایک و دیسلایک).در فاز اول تعداد موجودی کالا نیز به صورت ساده و بدون انبار داری ذخیره می شود و قابل شارژ میباشد. در آینده با اتصال به سیستم انبارداری این مورد حذف خواهد شد، در صورتی که کالایی موجودی صفر داشته باشد قابلیت خرید ندارد. قیمت هر کالا نیز در این جا نگهداری میشود. اگر از یک محصول انواع مختلفی وجود داشت(مثلا رنگهای مختلف) همه آنها یک جا نمایش داده میشوند ولی به کاربر اجازه انتخاب نوع خاص داده میشود. قطعا قیمت و موجودی انبار هریک از این محصولات مربوط به خود آن است.
3- خرید: برای خرید محصولات موجود در انبار(موجودی آن بیشتر از صفر باشد) توسط کاربر فعال(کاربری که اطلاعات تماس و آدرس خود را وارد کرده باشد) مشخص میشوند. به صورت پیش فرض همه محولات با تعداد یک عدد در سبد خرید می آیند. در این سبد خرید در مرحله بعدی باید بتوان تعداد هریک محصولات مورد نظر کاربر را افزایش یا کاهش داد. این افزایش باید کمتر از موجودی انبار باشد. در صورتی کاهش مقدار صفر گرفت از سبد خرید حذف شود. در صورت تایید کاربر باید مجموع مبلغ سبد خرید به کاربر نمایش داده شود. همچنان سبد خرید قابلیت ویرایش(افزودن و کاستن کالاهای موجود در سبد خرید) دارد. در این فرم از کاربر کپن تخفیف درخواست میشود. در صورتیکه کاربر کپن معتبری داشته باشد مبلغ یا درصد تخفیف از مجموع مبلغ سبد خرید کم می شود و مبلغ نهایی به کاربر نمایش داده میشود. از کاربر پرسیده میشود آیا مایل به انجام پرداخت می باشد. در صورتی که تایید کرد بقیه مراحل به درگاه بانکی سپرده خواهد شد. درگاه بانکی بعد از عملیات نتیجه را برمیگرداند. اگر نتیجه موفقیت آمیز بود دیگر سبد خرید قابل ویرایش نخواهد بود. در غیر اینصورت همچنان مراحل قابل تکرار است. در صورتی که موفقیت آمیز بود فعلا تا قبل از پیاده سازی سیستم حسابداری صرفا مبلغ دریافتی همراه با زمان پرداخت و کاربر پرداخت کننده و شماره فاکتور در جدولی ذخیره خواهد شد. از موجودی تمامی کالاهای موجود در سبد کالا نیز به تعداد فاکتور شده کم می شود. بقیه مراحل لوجستیک توسط نیروی انسانی فروشگاه جهت بسته بندی و ارسال انجام خواهد شد. بخش نظرات روی کالاهای موجود در فاکتور برای کاربر خریدار باز میشود و از این ببعد این کاربر قابلیت ارسال نظر روی کالاهایی که خریده است را دارد. سبدهای خرید در لحظه ایجاد با وضعیت فعال نشانه گذاری می شوند. بعد از تراکنش مالی وضعیت سبد خرید به پرداخت شده تغییر میابد. در صورتی که مدت 3 روز از ایجاد سبد خرید بگذرد و پرداخت انجام نشود، سبد خرید به وضعیت انصراف در می آید.
4- گزارش ها و داده کاوی ها: این باشه برای بعدا.
5- مالی و دارایی: سیستم حسابداری و انبار داری به صورت کامل باید توسط تیمی دیگر تحلیل و پیاده سازی شود. به صورت موقتی اطلاعات اولیه در جداولی ذخیره خواهند شد. این نیز باشه برای بعدا.
مرحله بعدی باید این موارد به صورت نمودار های موجودیت رابطه (Entity-Relation-Diagram ERD) رسم شوند. یک عدد وایت برد آنلاین یا یکی از نرم افزار های رسم ERD را اجرا کنید و رسم آنرا شروع کنید.
هر چیزی که در مورد آن داده ای ذخیره می شود یک موجودیت است. لیست موجودیت با توجه به توضیحات بالا عبارتند از:
1- سیستم کاربری: کاربر-نقش کاربری-منو-اطلاعات تکمیلی-اطلاعات تماس-اطلاعات مالیاتی مشتریان حقوقی
2- کالاها: محصول-دسته بندی-مشخصات محصول-نظر-انواع کالاها-ویژگی برای انواع کالا
3- خرید: سبدخرید-کپن تخفیف-اطلاعات درگاه بانکی-اطلاعات درخواست هایی که به بانک میفرستیم-اطلاعات نتیجه از بانک-تراکنش مالی
در نمودار ERD برای هر یک از این موجودیت ها یک مستطیل رسم می شود. سپس این موجودیت به هم متصل میشوند. چهار نوع اتصال داریم: یک به یک- یک به چند- چند به یک- چند به چند. اتصالات چند به چند باید به دو اتصال یک به چند و چند به یک تبدیل شوند. برای پیاده سازی بهتر اتصالات یک به یک نیز باید به صورت یک اتصال یک به چند در نظر گرفته شود. همه موجودیت به هم وصل نیستند. ولی همانطور که در قسمت توضیح هر سیستم گفته شد بعضی از موجودیت ها به موجودیت های دیگر وصل هستند: برای مثال سبد خرید به محصولات و کاربر خریدار وصل است.
همانطور که که میبینید یک کاربر دارای چندین سبد خرید است ولی هر سبد خرید مربوط به یک کاربر می باشد. و همچنین میبینید که اتصال سبدخرید و کالا چند به چند است و باید اصلاح شود.
به همین شکل کل سیستم را به صورت نمودار ER در میاوریم.
من محمد(سروش) محمدی هستم و سالهای زیادی هست که درحال کار در حوزه برنامه نویسی هستم. میخوام وقتی باز کنم و برای خودم و شما از برنامه نویسی بنویسم.