Skip to main content
معاينة الفلتر حسب المتغير

فلتر حسب المتغير

مكون فلتر منتجات متصل بـ Shopify لـ Framer يجلب جميع خيارات المتغيرات من الكتالوج ويعرضها كأزرار فلتر قابلة للنقر، مع حفظ التحديد النشط في localStorage لاستخدامه من قِبل مكونات أخرى.

ما الذي يفعله

يجلب فلتر حسب المتغير جميع متغيرات المنتجات من متجر Shopify عبر Storefront API، ويجمّعها حسب اسم الخيار (مثل الحجم، اللون، نمط الإطار)، ويعرض كل قيمة فريدة كزر فلتر. عند نقر المستخدم على زر، يحفظ المكون التحديد في localStorage ويبث حدث تخزين — مما يتيح لمكون قائمة المنتجات في نفس الصفحة تصفية نتائجه بشكل تفاعلي. السلوكيات الرئيسية:
  • يجلب المتغيرات من Shopify — عند التحميل، يستعلم عن Shopify Storefront API للحصول على جميع المنتجات ومتغيراتها. يعود إلى بيانات معاينة وهمية إذا لم تكن بيانات اعتماد Shopify متاحة (مثل داخل لوحة Framer).
  • يجمّع حسب اسم الخيار — تُجمَّع خيارات المتغيرات تلقائيًا وتُصنَّف حسب اسم خيار Shopify (مثل جميع قيم الحجم معًا، وجميع قيم اللون معًا).
  • تحديد فردي أو متعدد — يمكن تكوينه للسماح بتحديد فلتر واحد في كل مرة أو فلاتر متعددة في آنٍ واحد.
  • منطق فلتر AND/OR — تحديد قيم متعددة ضمن مجموعة الخيار نفسها يستخدم منطق OR (مثل Small أو Medium). تحديد قيم عبر مجموعات خيارات مختلفة يستخدم منطق AND (مثال: الحجم: Small AND اللون: Black).
  • يحفظ التحديد في localStorage — تُكتَب وسوم الفلتر النشط ومعرّفات المنتجات المطابقة كلاهما في localStorage وتُبقى متزامنة عبر تفاعلات الصفحة ونسخ المكونات.
  • يبث أحداث التخزين — يطلق أحداث storage حتى تتفاعل المكونات الأخرى (مثل شبكة المنتجات) مع تغييرات الفلتر دون إعادة تحميل الصفحة.
  • تسمية اختيارية — يمكن عرض تسمية نصية فوق أزرار الفلتر.
  • آمن للمعاينة — يعرض خيارات الحجم واللون الوهمية في لوحة Framer عندما لا تتوفر بيانات اعتماد Shopify.

ضوابط الخصائص

جميع الضوابط متاحة في لوحة Framer اليمنى عند تحديد المكون.

Initial

Label

Show Label

Product Limit

Variants Per Product

Fetch All Variants

Enable Multi-Select

Filter by Product ID

Layout

Gap

Styles

يتحكم في المظهر البصري لأزرار الفلتر.

ملاحظات

  • يتطلب هذا المكون تعيين window.DOMAIN وwindow.ACCESSTOKEN عالميًا على الصفحة لجلب البيانات المباشرة من Shopify. بدونها، يعرض خيارات الحجم واللون الوهمية لمعاينة اللوحة.
  • تُحفظ حالة الفلتر في localStorage تحت مفتاحين: variantFilter (الوسوم المحددة) وvariantFilterProductIds (معرّفات المنتجات المطابقة). يمكن لأي مكون آخر في الصفحة قراءة هذين المفتاحين لتطبيق الفلتر.
  • يطلق المكون حدث storage على window في كل مرة يتغير فيها الفلتر، حتى تتحدث مكونات قائمة المنتجات بشكل تفاعلي دون إعادة تحميل الصفحة.
  • منطق AND/OR: تُجمَع قيم متعددة ضمن نفس الخيار (مثل حجمين) بـ OR. تُجمَع القيم عبر خيارات مختلفة (مثل حجم ولون) بـ AND.
  • في وضع Fetch All Variants، يتنقل المكون عبر حتى 100 صفحة من المنتجات. قد يستغرق هذا لحظة عند التحميل الأول للكتالوجات الكبيرة جدًا.