الیاس سخاوتی نیا
4 سال پیش توسط الیاس سخاوتی نیا مطرح شد
6 پاسخ

منطق برنامه نویسی سبدخرید

سلام
من در اصل برای برنامه موبایل این سوال رو دارم
ولی کلا میخواستم با منطقش آشنا بشم چجوری بهتره
صفحه 1 : محصول رو در نظر بگیرین >> https://elrak.ir/my-files/273328-2.jpg
خب اینجا کاربر محصولی رو انتخاب میکنه یا کم و زیاد میکنه تعدادش رو
حالا صفحه 2 : سبد خرید >> https://elrak.ir/my-files/999641-3.jpg
اینجا کاربر محصولاتی که انتخاب کرده همراه با قیمت و... میبینه.
کاربر ممکنه از صفحه 1 عدد محصولی رو افزایش بده
به صفحه 2 بره عدد محصول رو کم کنه و دوباره برگرده به صفحه 1
طبیعتا اینجا باید اطلاعات هماهنگ باشن
مشکل من همینه
کاری که من الان کردم اینه با هر بار تغییر مقدار توی صفحه 1 یا 2 اونو توی دیتابیس آنلاین ذخیره میکنم
میخواستم ببینم باید چیکار کنم دقیقا؟
توی shared preferences که نمیشه درست و حسابی چیزی ذخیره کرد
من باید توی دیتابیس آفلاین توی گوشی ذخیره کنم و موقع پرداخت به دیتابیس آنلاین اضافه کنم؟
بعد مثلا یه کاربر بیاد یه محصول رو انتخاب کنه چه مواردی رو ذخیره کنم؟
مثلا کاربر امروز با قیمت 1000ت به سبد خرید اضافه کرده و فردا دوباره میاد تعداد سبد خرید رو کم و زیاد کنه قیمت شده 1500 مثلا
خب اینجوری باید هی قیمت رو از دیتابیس آنلاین بگیرم؟
بازم سرعت کاهش پیدا میکنه (رد و بد اطلاعات بین اپ و سرور)
ممنون میشم یکم راجع به فرآیند این کار توضیح بدین
تشکر
@hesammousavi @ali.bayat @juza66 @milad @alireza.mzh


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

من با فلاتر کار نکردم
اما در حین کار با RN معمولا چنین داده هایی رو توی استیت ها ذخیره میکنیم و بعد با استفاده از یه State Manager بین صفحات مختلف اپ میتونیم به داده هامون دسترسی داشته باشیم

اما در مورد قیمت:
اگر شما دارید اطلاعات غذاهارو از یه API میگیرید و قیمت ها ممکنه عوض بشند..
همون ابتدا که اپ لود میشه (اگر تعداد غذاها کمه) تمام لیست غذاها رو بگیرید.
اما اگر لیست طولانی داره باز هم باید به API درخواست بزنی و و لیست و قیمت لحظه ای رو بگیری (ولی برای لیست های طولانی باید از LazyLoad هم استفاده کنی)

حالا اینکه این گزینه ها به چه شکل در فلاتر در دسترس شما هست رو باید تحقیق کنید.


Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 4 سال پیش مطرح شد
1

اگه کاربر تعداد رو عوض کرد یه درخواست میفرستی سمت سرور و تعداد رو اپدیت میکنی تو دیتابیس
هرصفحه ای هم خواستی سبد خرید رو نشون بدی از دیتابیس باید بخونی


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 4 سال پیش مطرح شد
1

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


Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 4 سال پیش مطرح شد
1

@elyasbeshkani
در مورد قضیه پرفورمنس هم زیاد نگران نباش .. دیگه هر زبانی روی هر سرور ضعیفی هم میتونه چنتا کوئری به دیتابیسو هندل کنه


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 4 سال پیش مطرح شد
0

@ali.bayat
بله ، مثل این که State Manager توی فلاتر هم هست و من بی خبر بودم ازش
یه سوال دارم، من مثلا توی همین زمینه فلاتر چیکار کنم که بتونم از روش های جدید و امکاناتش خبردار بشم؟
چون تا حالا میانه خوبی با داکیومنت های اصلی هر تکنولوژی نداشتم و فقط یه چیزی یاد گرفتم و همینجوری مونده
چجوری میتونم خودمو به روز نگه دارم؟ و بفهمم برای حرفه ای تر شدن باید از چه چیزایی استفاده کنم؟
مثلا همین State Manager نمیدونستم چیه و چه کاربردی داره!
ممنونم ازتون

@hossein.r.1442
ممنون از شما

@rezajashnsaz0011
ممنون منم دقیقا الان همینکار رو کردم ولی خب توی موبایل یکم قضیه ناجور میشه


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

از اونجایی که برای به روز موندن باید دائما اطلاعات جدید رو خوند... پیشنهاد من مستندات هست


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام