اتخطّى للمحتوى

المرحلة 01 · الأساسياتدرس 5 من 217 دقيقة قراءةآخر تحديث:

Lesson 05 / 21

Website · Store · Store Viewالبنية بالتفصيل.

بنية الـ multi-store في Magento — الطريقة اللي بيها متجر واحد يدير كذا موقع ولغة وعملة. من أكتر المفاهيم اللي بتلخبط، وبتتسأل كتير. هنفكّكها مستوى مستوى.

● Multi-Store Scope Hierarchy + أمثلة

Magento 2 بينظّم المتجر في هرم تحت الـ Global من تلات مستويات: الـ Website بيجمع طرق الدفع والشحن ويقدر يفصل العملاء، والـ Store (أو Store Group) بيحدّد الكتالوج عن طريق الـ root category، والـ Store View بيحدّد اللغة والعرض. وأي إعداد مالوش قيمة في المستوى الأقل بيتورّث من المستوى اللي فوقه.

// الفكرة الكبيرة Magento مصمّم إن تثبيت واحد يدير كذا متجر. البنية 3 مستويات متداخلة: Website ← Store ← Store View (فوقهم كلهم الـ Global). كل مستوى بيتحكّم في حاجات مختلفة (العملة، اللغة، الكتالوج). لما تفهم مين بيتحكّم في إيه، البنية كلها بتبقى منطقية.
01

الهرم — الصورة الكاملة

شوف العلاقة بين المستويات الأول، وبعدين نفصّل كل واحد.

Global
التثبيت كله
Website
عملة · عملاء · دفع
Store (Group)
الكتالوج · شجرة الأقسام
Store View
اللغة · العرض
القاعدة الأساسية

كل مستوى بيحتوي اللي تحته. Website فيه Stores، والـ Store فيه Store Views. والإعدادات بتـورّث من فوق لتحت — لو مغيّرتش حاجة في مستوى، بياخد من اللي فوقه.

تشبيه فكّرها زي شركة عندها فروع. الشركة (Global) ليها سياسة عامة. كل فرع كبير (Website) ليه عملته وعملاءه. جوّه الفرع أقسام (Store) بمنتجات مختلفة. وكل قسم بيتكلم بلغات مختلفة للزباين (Store View).
• • •
02

Global (الجذر)

أعلى مستوى — التثبيت كله.

إيه هو

الـ Global هو التثبيت (installation) كله. الإعدادات اللي هنا بتنطبق على كل حاجة ما لم يتم تغييرها في مستوى أقل.

بيتحكّم في إيه
  • الإعدادات الأساسية للنظام.
  • إعدادات الـ backend (قاعدة البيانات، الـ cache).
  • القيم الافتراضية اللي بتورّث لكل المستويات.
i
في الكود، الـ scope ده اسمه default أو global. أي إعداد مش متحدّد لمستوى معيّن، بيتقري من هنا.
• • •
03

Website

أعلى مستوى فعلي للفصل — العملة والعملاء والدفع.

إيه هو

الـ Website هو أعلى وحدة فصل حقيقية. كل website مستقل في: العملة، العملاء، طرق الدفع والشحن، والأسعار.

بيتحكّم في إيه (المهم)
  • العملة الأساسية — كل website ليه عملته.
  • العملاء — الحسابات ممكن تتشارك أو تتفصل على مستوى website.
  • طرق الدفع والشحن — تختلف من website لتاني.
  • الأسعار — ممكن أسعار مختلفة (لو Catalog Price Scope = Website).
مثال

شركة عندها website للسوق الأمريكي (دولار، عملاء أمريكان، Stripe) وwebsite للسوق الأوروبي (يورو، عملاء أوروبيين، طرق دفع أوروبية). تثبيت واحد، websitين منفصلين.

i
القاعدة الذهبية: لو محتاج عملة مختلفة أو عملاء منفصلين → website جديد. ده أهم فرق يميّز الـ website عن باقي المستويات.
• • •
04

Store (Group)

المستوى الأوسط — الكتالوج وشجرة الأقسام.

إيه هو

الـ Store (اسمه في الكود Store Group) هو المستوى اللي بيحدّد الكتالوج — شجرة الأقسام (categories) والـ root category. كل store بيعرض مجموعة منتجات/أقسام معيّنة.

بيتحكّم في إيه
  • Root Category — نقطة بداية شجرة الأقسام.
  • الكتالوج المعروض — أنهي أقسام ومنتجات تظهر.
  • بيتبع website واحد (بياخد عملته وعملاءه).
مثال

جوّه الـ website الأمريكي، عندك store للملابس (root category = Clothing) وstore للإلكترونيات (root category = Electronics). نفس العملة والعملاء (من الـ website)، بس كتالوجات مختلفة.

!
نقطة بتلخبط: الكلمة "Store" في Magento غامضة. في الأدمن اسمها "Store"، بس في الكود Store Group. والـ "Store View" حاجة تانية! خلّي بالك من الفرق.
• • •
05

Store View

أدنى مستوى — اللغة وطريقة العرض.

إيه هو

الـ Store View هو المستوى اللي بيتحكّم في اللغة وطريقة العرض. بشكل أساسي بيُستخدم عشان تعرض نفس المتجر بلغات مختلفة.

بيتحكّم في إيه
  • اللغة — الاستخدام الأساسي (عربي، إنجليزي...).
  • ترجمة المحتوى — أسماء المنتجات، الأوصاف.
  • إعدادات العرض — بعض التخصيصات البصرية.
مثال

الـ store الأمريكي بيكون له store view بالإنجليزي وstore view بالإسباني. نفس المنتجات والأسعار، بس اللغة والترجمة مختلفة. الزائر بيبدّل بينهم من أعلى الصفحة.

i
الـ Store View هو اللي الزائر فعليًا بيتصفّح. لما تفتح متجر Magento، أنت دايمًا داخل store view معيّن (اللي بيحدّد لغتك وعرضك).
• • •
06

مثال كامل

نجمّع كل المستويات في سيناريو واحد واضح.

السيناريو

شركة ملابس عالمية عايزة تبيع في أمريكا وأوروبا، بمنتجات وعملات ولغات مختلفة. إزاي تترتّب؟

Global — الشركة
US Website ($)
EU Website (€)
US Store
EU Store
EN
ES
FR
DE
  • Global — الشركة، إعدادات عامة.
  • US Website — دولار، عملاء أمريكان / EU Website — يورو، عملاء أوروبيين.
  • US Store / EU Store — الكتالوج المناسب لكل سوق.
  • Store Views — US بالإنجليزي والإسباني، EU بالفرنساوي والألماني.
i
لاحظ التدرّج: العملة اتحدّدت في الـ website، الكتالوج في الـ store، واللغة في الـ store view. كل احتياج راح للمستوى المناسب. ده جوهر فهم البنية.
• • •
07

الـ Scope والإعدادات

إزاي الإعدادات بتشتغل عبر المستويات.

إيه هو الـ Scope

الـ Scope هو المستوى اللي الإعداد بينطبق عليه. أي إعداد في Magento بيتحدّد على أحد المستويات: global، website، أو store view.

الوراثة (Fallback)

الإعدادات بتورّث من فوق لتحت. لو إعداد مش متحدّد على مستوى store view، بياخد من الـ website، ولو لأ، من الـ global. ده الـ configuration fallback.

مثال: الـ Product Attributes

خصائص المنتج ليها scope برضه: بعضها global (زي الـ SKU، ثابت للكل)، وبعضها store view (زي الاسم والوصف، عشان يتترجموا لكل لغة).

i
ربط بمكتبتك: ده مرتبط بالـ EAV. خاصية زي name بتكون scope = store view عشان تتخزّن قيمة مختلفة لكل لغة. الـ EAV هو اللي بيسمح بالمرونة دي.
• • •
08

أسئلة الإنترفيو

الأسئلة المتكررة عن البنية دي.

Q1إيه الفرق بين Website و Store و Store View؟
الإجابة: Website بيتحكّم في العملة والعملاء والدفع. Store بيتحكّم في الكتالوج (شجرة الأقسام). Store View بيتحكّم في اللغة والعرض. هرم متداخل: Website ← Store ← Store View.
Q2امتى تعمل website جديد بدل store view؟
الإجابة: لما تحتاج عملة مختلفة أو عملاء منفصلين أو طرق دفع مختلفة → website. لو محتاج بس لغة مختلفة لنفس المتجر → store view. القاعدة: العملة والعملاء = website، اللغة = store view.
Q3يعني إيه Scope في الإعدادات؟
الإجابة: الـ scope هو المستوى اللي الإعداد بينطبق عليه (global/website/store view). الإعدادات بتورّث من فوق لتحت — لو مش متحدّدة في مستوى، بتاخد من اللي فوقه (fallback).
Q4إزاي product attribute بيكون بقيم مختلفة لكل لغة؟
الإجابة: لأن الخاصية scope بتاعها = store view. زي الاسم والوصف — بيتخزّنوا بقيمة مختلفة لكل store view (لغة). ده بفضل الـ EAV اللي بيسمح بقيم متعددة للخاصية حسب الـ scope.
Q5الـ root category بيتحدّد في أنهي مستوى؟
الإجابة: في مستوى الـ Store (Store Group). كل store ليه root category بتحدّد شجرة الأقسام اللي هتظهر فيه. عشان كده الـ store هو مستوى الكتالوج.

البنية اتوضّحت ✓

دلوقتي فاهم بنية الـ multi-store: Global فوق الكل، Website للعملة والعملاء، Store للكتالوج، Store View للغة. وعرفت امتى تستخدم كل مستوى.

الخلاصة اللي تفتكرها: العملة والعملاء → Website، الكتالوج → Store، اللغة → Store View. لو حفظت الجملة دي، مش هتتلخبط تاني، وهتجاوب أي سؤال عن البنية بثقة.

// magento 2 · website · store · store view

خلّصت الدرس؟علّمه عشان تتابع تقدّمك في الكورس.

كاتب الدرس

Abdulrahman Masoud

عندك سؤال على الدرس أو محتاج مساعدة في مشروع Magento؟ كلّمني.

أسئلة شائعة

ما الفرق بين 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 للإلكترونيات، بنفس العملة والعملاء بس بكتالوجات مختلفة.