نبيل الالمعي
نبيل الالمعي

@nabeel_alalmai

8 تغريدة 43 قراءة Jan 04, 2020
مشاركتي الاولى في عالم #المصادر_المفتوحة
مكتبة صغيرة لـ Laravel لادارة سلة التسوق على قاعدة البيانات
github.com
ليش ممكن تحتاج مكتبة لادارة السلة؟ وكيف تتم عملية حفظ البيانات خلف الكواليس؟ خلك معي ?
اي موقع تسوق الكتروني يكون فيه منتجات سواء كانت جوالات, عصيرات, ملابس .. اي شئ - كلها عبارة عن منتجات Products
يدخل الزائر للموقع ويختار منتجات ويضيفها للسلة قبل التوجهة لصفحة الدفع.
ممكن يختار منتج واحد وممكن اكثر من منتج ??
ايش يصير في خلف الكواليس؟
اربعة عناصر تتشارك في عملة اضافة العناصر للسلة
- المستخدم (عضو مسجل في الموقع او زائر)
- السلة Cart
- عنصر السلة Cart Item
- المنتج Product
لكل عضو سلة نشطة واحدة فقط.
بمعنى ان العضو يضيف كل المنتجات في السلة وعند اكمال الدفع يتم اغلاق السلة الخاصة به (تغير حالتها الى مدفوع)
الان اذا اراد المستخدم شراء منتجات اخرى سيتم انشاء سلة جديدة له وتضاف المنتجات الجديدة فيها
ماذا لو كان زائر للموقع( غير مسجل)
لتحسين تجربة المستخدم, عادتاً نسمح للزائر باضافة منتجات للسلة والمواصلة لصفحة الدفع, وبما انه غير مسجل, ننشئ سلة برقم عشوائي لفترة مؤقتة عند الانتقال لصفحة الدفع, نطلب منه التسجيل وبعد التسجيل يتم معاملته مثل الاعضاء.
اضافة المنتجات لسلة المشتريات Cart تتم عن طريق ربط منتج Product في عنصر Cart Item ويرتبط ال Cart Item في السلة.
السلة Cart فيها بيانات السلة العامة, مثل السعر الاجمالي وحالة السلة اذا كانت نشطة او منتهية ومن هو العضو صاحب السلة
وتاريخ انشاء السلة...
عنصر السلة Cart Item يربط بين Product و السلة ونحدد في الكمية واي تفاصيل خاصة بالعملية.
العلاقة بين السلة وعناصر السلة والمنتجات كالتالي:
كل سلة تحتوي على مجموعة من العناصر, وكل عنصر ينتمي لسلة وحدة فقط. One-Many
كل عنصر مرتبط بمنتج واحد فقط One-One
في عمليات الشراء تنتهي مهمة السلة عندما يتم الدفع Checkout وبعد الدفع المستخدم يحصل على سلة فارغة جديدة
اتمنى اني وفقت في طرح الفكرة بشكل مبسط بعيدا عن الكود
* المكتبة في بداية الثرد تقوم بكل هذه العمليات واكثر?

جاري تحميل الاقتراحات...