اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكن تخزين معلومات المنتجات التي يريد المستخدم شرائها بطريقتين:

عبر JavaScript في متصفح الويب

يمكن تخزين بيانات المنتجات في localStorage عند الضغط على زر "إضافة إلى السلة"، بالشكل التالي:

// بيانات المنتج الذي يريد المستخدم إضافته إلى سلة المشتريات
const productDetails = {
  name: "Phone",
  price: 1234,
  // ...
};

// نقوم بجلب أي منتجات موجودة بالفعل في سلة المشتريات
const productsInCart = JSON.parse(localStorage.getItem("cart")) || [];

// نجمع المنتجات الموجودة بالفعل مع المنتج الحالي في مصفوفة واحدة
const allProductsAsString = JSON.stringify([...productsInCart, productDetails]);

// نقوم بتخزين هذه البيانات في localStorage
localStorage.setItem("cart", allProductsAsString);

وفي صفحة سلة المشتريات، يمكن الحصول على كل المنتجات بالشكل التالي:

// نقوم بجلب أي منتجات موجودة بالفعل في سلة المشتريات
const productsInCart = JSON.parse(localStorage.getItem("cart")) || [];

ميزات وعيوب هذه الطريقة

  • لا تحتاج إلى قاعدة بيانات على الخادم لتخزين البيانات.
  • سريعة للغاية، حيث أن كل المهمة تتم في المتصفح بدون الحاجة إلى إرسال أي طلبات إلى الخادم.
  • لا تحتاج إلى تسجيل دخول، حيث يمكن للمستخدم إختيار المنتجات التي يريد شرائها ويضعها في سلة المشتريات حتى قبل أن يسجل في موقع من الأساس.
  • تعمل في متصفح واحد فقط، أي أنه إذا قام المستخدم بتسجيل الدخول إلى متصفح آخر لن يجد أي منتجات في سلة المشتريات.

عبر PHP في الواجهة الخلفية

في البداية يجب عمل جدول في قاعدة البيانات لتخزين المنتجات التي يضعها أي مستخدم في سلة المشتريات، ويكون شكل الجدول على النحو التالي:

id | user_id | product_id | quantity
--------------------------------------
1  | 123     | 789        | 1 
2  | 165     | 124        | 4 
3  | 785     | 543        | 1 
4  | 956     | 876        | 3 

إذا قام المستخدم بإضافة أي منتج إلى سلة المشتريات يجب أن يتم إضافته إلى هذا الجدول، وفي هذا الجدول نحتاج إلى user_id و product_id أي أن المستخدم يجب أن يكون مُسجل في الموقع حتى يتمكن من إستعمال هذه الميزة.

هنا جملة SQL Query لإضافة منتج إلى الجدول cart السابق:

INSERT INTO cart (user_id, product_id, quantity)
VALUES (123, 789, 3);

أما لعرض المنتجات التي وضعها المستخدم في سلة المشتريات، يمكننا إستعمال جملة SQL التالية:

SELECT * FROM cart
INNER JOIN products
ON products.id = cart.product_id;

ميزات وعيوب هذه الطريقة

  • تحتاج إلى قاعدة بيانات على الخادم لتخزين البيانات.
  • بطيئة نوعًا ما، حيث أن عملية إضافة أي منتج في سلة المشتريات تحتاج إلى إرسال طلب Request إلى الخادم.
  • تحتاج إلى تسجيل دخول قبل إستعمالها، بما أننا نستعمل user_id في الجدول cart فيجب أن يسجل المستخدم في الموقع أولًا.
  • تعمل في جهة الخادم، أي أنه إذا قام المستخدم بتسجيل الدخول إلى متصفح آخر أو حاسوب مختلف تمامًا فسوف يجد كل المنتجات في سلة المشتريات كما هي.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...