Website · Store · Store Viewالبنية بالتفصيل.
بنية الـ multi-store في Magento — الطريقة اللي بيها متجر واحد يدير كذا موقع ولغة وعملة. من أكتر المفاهيم اللي بتلخبط، وبتتسأل كتير. هنفكّكها مستوى مستوى.
Magento 2 بينظّم المتجر في هرم تحت الـ Global من تلات مستويات: الـ Website بيجمع طرق الدفع والشحن ويقدر يفصل العملاء، والـ Store (أو Store Group) بيحدّد الكتالوج عن طريق الـ root category، والـ Store View بيحدّد اللغة والعرض. وأي إعداد مالوش قيمة في المستوى الأقل بيتورّث من المستوى اللي فوقه.
الهرم — الصورة الكاملة
شوف العلاقة بين المستويات الأول، وبعدين نفصّل كل واحد.
كل مستوى بيحتوي اللي تحته. Website فيه Stores، والـ Store فيه Store Views. والإعدادات بتـورّث من فوق لتحت — لو مغيّرتش حاجة في مستوى، بياخد من اللي فوقه.
Global (الجذر)
أعلى مستوى — التثبيت كله.
الـ Global هو التثبيت (installation) كله. الإعدادات اللي هنا بتنطبق على كل حاجة ما لم يتم تغييرها في مستوى أقل.
- الإعدادات الأساسية للنظام.
- إعدادات الـ backend (قاعدة البيانات، الـ cache).
- القيم الافتراضية اللي بتورّث لكل المستويات.
Website
أعلى مستوى فعلي للفصل — العملة والعملاء والدفع.
الـ Website هو أعلى وحدة فصل حقيقية. كل website مستقل في: العملة، العملاء، طرق الدفع والشحن، والأسعار.
- العملة الأساسية — كل website ليه عملته.
- العملاء — الحسابات ممكن تتشارك أو تتفصل على مستوى website.
- طرق الدفع والشحن — تختلف من website لتاني.
- الأسعار — ممكن أسعار مختلفة (لو Catalog Price Scope = Website).
شركة عندها website للسوق الأمريكي (دولار، عملاء أمريكان، Stripe) وwebsite للسوق الأوروبي (يورو، عملاء أوروبيين، طرق دفع أوروبية). تثبيت واحد، websitين منفصلين.
Store (Group)
المستوى الأوسط — الكتالوج وشجرة الأقسام.
الـ Store (اسمه في الكود Store Group) هو المستوى اللي بيحدّد الكتالوج — شجرة الأقسام (categories) والـ root category. كل store بيعرض مجموعة منتجات/أقسام معيّنة.
- Root Category — نقطة بداية شجرة الأقسام.
- الكتالوج المعروض — أنهي أقسام ومنتجات تظهر.
- بيتبع website واحد (بياخد عملته وعملاءه).
جوّه الـ website الأمريكي، عندك store للملابس (root category = Clothing) وstore للإلكترونيات (root category = Electronics). نفس العملة والعملاء (من الـ website)، بس كتالوجات مختلفة.
Store View
أدنى مستوى — اللغة وطريقة العرض.
الـ Store View هو المستوى اللي بيتحكّم في اللغة وطريقة العرض. بشكل أساسي بيُستخدم عشان تعرض نفس المتجر بلغات مختلفة.
- اللغة — الاستخدام الأساسي (عربي، إنجليزي...).
- ترجمة المحتوى — أسماء المنتجات، الأوصاف.
- إعدادات العرض — بعض التخصيصات البصرية.
الـ store الأمريكي بيكون له store view بالإنجليزي وstore view بالإسباني. نفس المنتجات والأسعار، بس اللغة والترجمة مختلفة. الزائر بيبدّل بينهم من أعلى الصفحة.
مثال كامل
نجمّع كل المستويات في سيناريو واحد واضح.
شركة ملابس عالمية عايزة تبيع في أمريكا وأوروبا، بمنتجات وعملات ولغات مختلفة. إزاي تترتّب؟
- Global — الشركة، إعدادات عامة.
- US Website — دولار، عملاء أمريكان / EU Website — يورو، عملاء أوروبيين.
- US Store / EU Store — الكتالوج المناسب لكل سوق.
- Store Views — US بالإنجليزي والإسباني، EU بالفرنساوي والألماني.
الـ Scope والإعدادات
إزاي الإعدادات بتشتغل عبر المستويات.
الـ Scope هو المستوى اللي الإعداد بينطبق عليه. أي إعداد في Magento بيتحدّد على أحد المستويات: global، website، أو store view.
الإعدادات بتورّث من فوق لتحت. لو إعداد مش متحدّد على مستوى store view، بياخد من الـ website، ولو لأ، من الـ global. ده الـ configuration fallback.
خصائص المنتج ليها scope برضه: بعضها global (زي الـ SKU، ثابت للكل)، وبعضها store view (زي الاسم والوصف، عشان يتترجموا لكل لغة).
أسئلة الإنترفيو
الأسئلة المتكررة عن البنية دي.
البنية اتوضّحت ✓
دلوقتي فاهم بنية الـ multi-store: Global فوق الكل، Website للعملة والعملاء، Store للكتالوج، Store View للغة. وعرفت امتى تستخدم كل مستوى.
الخلاصة اللي تفتكرها: العملة والعملاء → Website، الكتالوج → Store، اللغة → Store View. لو حفظت الجملة دي، مش هتتلخبط تاني، وهتجاوب أي سؤال عن البنية بثقة.
خلّصت الدرس؟علّمه عشان تتابع تقدّمك في الكورس.
أسئلة شائعة
ما الفرق بين Website و Store و Store View في Magento 2؟
الـ Website أعلى مستوى فصل حقيقي، وبيتحكّم في العملاء وطرق الدفع والشحن والعملة. الـ Store (اسمه في الكود Store Group) بيحدّد الكتالوج عن طريق الـ root category. والـ Store View بيتحكّم في اللغة والعرض، والتلاتة هرم متداخل: Website ← Store ← Store View.
إمتى أعمل Website جديد بدل Store View في Magento 2؟
اعمل Website جديد لما تحتاج عملاء منفصلين أو طرق دفع مختلفة أو عملة مختلفة لسوق تاني. لو كل اللي محتاجه لغة مختلفة لنفس المتجر بنفس المنتجات، يبقى Store View كفاية.
ما الفرق بين Store و Store Group في Magento 2؟
هما نفس الحاجة: اللي اسمه "Store" في لوحة الأدمن اسمه في الكود Store Group، وده المستوى اللي بيحدّد الكتالوج. الـ Store View حاجة تانية خالص، وده المستوى الأدنى بتاع اللغة والعرض، فخلّي بالك من اللخبطة دي.
يعني إيه Scope في إعدادات Magento 2؟
الـ Scope هو المستوى اللي الإعداد بينطبق عليه: global (اسمه في الكود default)، أو website، أو store view. والإعدادات بتورّث من فوق لتحت، فلو الإعداد مش متحدّد على الـ store view بياخد من الـ website، ولو مش متحدّد هناك بياخد من الـ global، وده الـ configuration fallback.
إزاي أخلّي اسم المنتج مختلف لكل لغة في Magento 2؟
خصائص المنتج ليها scope، وخصائص زي name والوصف بتكون scope = store view، فبتخزّن قيمة مختلفة لكل store view (لغة). ده ممكن بفضل نظام الـ EAV، أما خاصية زي الـ SKU فبتكون global وثابتة للكل.
الـ root category بيتحدد في أنهي مستوى في Magento 2؟
بيتحدد في مستوى الـ Store (Store Group)، وكل store ليه root category بتحدّد شجرة الأقسام اللي هتظهر فيه. مثلًا جوّه نفس الـ website ممكن يبقى عندك store للملابس وstore للإلكترونيات، بنفس العملة والعملاء بس بكتالوجات مختلفة.