مدونة

كيفية إنشاء سمات فئة Magento 2 برمجيًا

Magento2-category-attributes

في هذه المدونة ، ستتعلم كيفية إنشاء سمات فئة Magento 2 مخصصة برمجيًا باستخدام وحدة نمطية بسيطة. لقد أنشأنا سمة حقل نص بسيطة لفئة Magento 2.

فيما يلي المقتطفات التي يمكنك تحقيقها على الفور. تحتاج إلى اتباع الكود أدناه لوحدتك.

كيف تضيف سمات فئة Magento 2 برمجيًا؟

بشكل افتراضي ، لا يوفر Magento إمكانية إضافة سمات فئة من المسؤول. ولكن يمكننا إنشاء سمات فئة مخصصة برمجيًا. باتباع هذه الخطوات التي أشرت إليها أدناه ، يمكنك إنشاء سمات الفئة.

لنبدأ بالوحدة النمطية البسيطة لإنشاء سمة فئة مخصصة في Magento 2. الآن قم بإنشاء ملفات registration.php و module.xml لتحديد الوحدة. لذلك ، لقد استخدمت Webepower كـ Packagename حيث CustomAttribute هو اسم الوحدة النمطية.

المسار: app / code / Webepower / CustomAttribute / registration.php

 & lt؛؟ php

Magento \ Framework \ Component \ ComponentRegistrar :: تسجيل (\ Magento \ Framework \ Component \ ComponentRegistrar :: MODULE ،
    "Webepower_CustomAttribute" ،
    __DIR__
) ؛

قم بإنشاء ملف module.xml

Module.xml يعتمد في الواقع على وحدة Magento_Catelog.

المسار: app / code / Webepower / CustomAttribute / etc / module.xml

 & lt؛؟ xml version = "1.0"؟ & gt؛

& lt؛ config xmlns: xsi = "https://www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation = "urn: magento: framework: Module / etc / module.xsd" & gt؛

    العلامة & lt ؛ اسم الوحدة النمطية = "Webepower_CustomAttribute" setup_version = "1.0.0" / & GT؛

& lt؛ / config & gt؛

قم بإنشاء ملف InstallData.php

الآن عليك إنشاء InstallData.php لتحديد سمة الفئة المخصصة.

المسار: app / code / Webepower / CustomAttribute / Setup / InstallData.php

 & lt؛؟ php

مساحة الاسم Webepower \ CustomAttribute \ Setup؛
استخدم Magento \ Framework \ Setup \ ModuleDataSetupInterface ؛
استخدم Magento \ Framework \ Setup \ ModuleContextInterface ؛
استخدم Magento \ Eav \ Setup \ EavSetupFactory ؛
استخدام Magento \ Framework \ Setup \ UpgradeDataInterface ؛
فئة UpgradeData تطبق UpgradeDataInterface
{
    خاص $ eavSetupFactory؛

    / **
     * البناء
     *
     *param \ Magento \ Eav \ Setup \ EavSetupFactory $ eavSetupFactory
     * /
     الوظيفة العامة __construct (
        EavSetupFactory $ eavSetupFactory
    ) {
        $ this- & GT؛ eavSetupFactory = $ eavSetupFactory ؛
    }

    ترقية الوظيفة العامة (
        إعداد ModuleDataSetupInterface $ ،
        ModuleContextInterface $ سياق
    )
    {
        $ eavSetup = $ this- & gt؛ eavSetupFactory- & gt؛ create (['setup' = & gt؛ $ setup]) ؛
        $ eavSetup- & gt؛ addAttribute (
            \ ماجنتو \ كتالوج \ نموذج \ الفئة :: كيان ،
            "category_custom_attribute" ،
            [
                'type' = & GT. 'نص'،
                'التسمية' = & GT. "سمة مخصصة للفئة"،
                "المدخلات" = & GT. 'نص'،
                'Sort_order' = & GT ؛ 100 ،
                'المصدر' = & GT. "،
                'العالمية' = & GT. \ Magento \ Eav \ Model \ Entity \ Attribute \ ScopedAttributeInterface :: SCOPE_STORE ،
                'مرئي' = & GT. صحيح،
                'مطلوب' = & GT. خاطئة،
                'user_defined' = & GT ؛ صحيح،
                'النظام' = & GT. خاطئة،
                "افتراضي" = & GT. باطل،
                'مجموعة' = & GT. 'معلومات عامة'،
                "الخلفية" = & GT. "،
                'is_visible' = & GT ؛ صحيح،
            ]
            ) ؛
    }
}

حدد حقل السمة المخصصة في category_form.xml

المسار: app / code / Webepower / CustomAttribute / view / adminhtml / ui_component / category_form.xml

 & lt؛؟ xml version = "1.0"؟ & gt؛

& lt؛ شكل xmlns: xsi = "https://www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation = "الجرة: magento: module: Magento_Ui: etc / ui_configuration.xsd" & gt؛
    العلامة & lt ؛ اسم مجموعة الحقول = "عام" & GT ؛
        العلامة & lt ؛ اسم الحقل = "category_custom_attribute" & GT.
            & lt؛ اسم الوسيطة = "البيانات" xsi: type = "array" & gt؛
                & lt؛ اسم العنصر = "config" xsi: type = "array" & gt؛
                    & lt؛ اسم العنصر = "مطلوب" xsi: type = "منطقي" & gt؛ false & lt؛ / item & gt؛
                    & lt؛ اسم العنصر = "التحقق من الصحة" xsi: type = "array" & gt؛
                        & lt؛ اسم العنصر = "إدخال مطلوب" xsi: type = "منطقي" & gt؛ false & lt؛ / item & gt؛
                    العلامة & lt ؛ / البند & GT.
                    & lt؛ اسم العنصر = "sortOrder" xsi: type = "number" & gt؛ 333 & lt؛ / item & gt؛
                    & lt؛ اسم العنصر = "نوع البيانات" xsi: type = "string" & gt؛ string & lt؛ / item & gt؛
                    & lt؛ اسم العنصر = "formElement" xsi: type = "string" & gt؛ input & lt؛ / item & gt؛
                    & lt؛ item name = "label" translate = "true" xsi: type = "string" & gt؛ سمة مخصصة للفئة & lt؛ / item & gt؛
                العلامة & lt ؛ / البند & GT.
            & lt؛ / حجة & GT؛
        العلامة & lt ؛ / المجال & GT.
    العلامة & lt ؛ / مجموعة الحقول & GT.
& lt؛ / شكل & GT؛

قراءة المزيد: – Magento 2 تكلفة الترحيل: انقل متجرك الإلكتروني إلى Magento 2

الآن ، قمنا بتعيين سمة الفئة المخصصة الخاصة بنا في مجموعة الحقول لإظهار السمة في المجموعة العامة لصفحة الفئة. قم بتشغيل أمر ترقية الإعداد التالي لتثبيت الوحدة النمطية الخاصة بنا في Magento 2.

انتقل إلى مثيل Magento حيث قمت بتثبيت Magento ، ثم افتح Command Line:

 php bin / magento setup: ترقية
php bin / magento cache: flush
php bin / magento indexer: reindex

الآن ، يمكنك رؤية سمة الفئة المخصصة في الواجهة الخلفية من خلال التنقل في كتالوج الموقع – & gt؛ صفحات الفئات. انقر فوق أي فئة لمشاهدة سمة الفئة المخصصة في القسم العام.

نتمنى لك قراءة سعيدة!