প্রোগ্রামটিমেটিকভাবে Magento2 এ বিভাগ বিভাগের বৈশিষ্ট্য কীভাবে তৈরি করবেন


9

আমি ম্যাজেন্টো 2 এর জন্য কাস্টম এক্সটেনশনে ওয়ার্কাইন করছি এবং আমার প্রোগ্রামিং হিসাবে বিভাগ বিভাগের বৈশিষ্ট্য তৈরি করতে হবে,

আমাকে সঠিক পদক্ষেপগুলি তালিকাভুক্ত করুন, কারণ আমি নিশ্চিত নই যে কোডটি ইনস্টলডাটা.পিএফ স্থাপন করা হবে বা কোথায়?

উত্তর:


12

ম্যাজেন্টো ২.১ এবং উচ্চতর সংস্করণ থেকে আপনি ব্লগটি ডিটেইজে প্রোগ্রামে অ্যাট্রিবিউট তৈরির জন্য ব্লগকে উল্লেখ করতে পারেন, ম্যাজেন্টো 2 এ কাস্টম বিভাগের বৈশিষ্ট্য তৈরি করুন

আপনার ভিতরে কোডের নীচে থাকতে হবে

For Magento Version 2.1.*

অ্যাপ্লিকেশন / কোড / {packagename} / {moduleName} /Setup/InstallData.php

<?php
namespace {Packagename}\{Modulename}\Setup;

use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Catalog\Setup\CategorySetupFactory; 

class InstallData implements InstallDataInterface
{
    /**
    * Category setup factory
    *
    * @var CategorySetupFactory
    */
    private $categorySetupFactory;
    /**
    * Init
    *
    * @param CategorySetupFactory $categorySetupFactory
    */
    public function __construct(CategorySetupFactory $categorySetupFactory)
    {
         $this->categorySetupFactory = $categorySetupFactory;
    }

    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
         $installer = $setup;
         $installer->startSetup();
         $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
         $entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Category::ENTITY);
         $attributeSetId = $categorySetup->getDefaultAttributeSetId($entityTypeId);

         $categorySetup->addAttribute(
         \Magento\Catalog\Model\Category::ENTITY, 'custom_attribute', [
            'type' => 'varchar',
            'label' => 'Custom Attribute Description',
            'input' => 'textarea',
            'required' => false,
            'sort_order' => 100,
            'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
            'group' => 'General Information',
            'is_used_in_grid' => true,
            'is_visible_in_grid' => false,
            'is_filterable_in_grid' => true,
         ]
         );
         $installer->endSetup();
    }
}

অ্যাপ্লিকেশন / কোড / {packagename} / {moduleName} /view/adminhtml/ui_component/category_form.xml

<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
  <fieldset name="general"> 
     <field name="custom_attribute">
        <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="sortOrder" xsi:type="number">50</item>
                    <item name="dataType" xsi:type="string">string</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="label" xsi:type="string" translate="true">Custom Attribute Name</item>
                </item>
        </argument>
    </field>  
  </fieldset>
</form>

এটি ম্যাজেন্টোর পুরানো সংস্করণ,

ম্যাজেন্টো সংস্করণ 2.0 এর জন্য *

নীচের মত বিভাগ বৈশিষ্ট্য সেট করুন,

app/code/Vendor/Categoryattr/Setup/InstallData.php ফাইল,

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

namespace Vendor\CategoryAttribute\Setup;

use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;


class InstallData implements InstallDataInterface
{
    private $eavSetupFactory; 
    /**
     * Init
     *
     * @param EavSetupFactory $eavSetupFactory
     */
    public function __construct(EavSetupFactory $eavSetupFactory)
    {
        $this->eavSetupFactory = $eavSetupFactory;
    }

    /**
     * {@inheritdoc}
     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
     */
    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        /** @var EavSetup $eavSetup */
        $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
        /**
         * Add attributes to the eav/attribute
         */ 
        $eavSetup->addAttribute(
            \Magento\Catalog\Model\Category::ENTITY,
            'custom_attribute',
                      [
                        'type' => 'varchar',
                        'label' => 'Custom Attribute Description',
                        'input' => 'textarea',
                        'required' => false,
                        'sort_order' => 100,
                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                        'group' => 'General Information',
                        'is_used_in_grid' => true,
                        'is_visible_in_grid' => false,
                        'is_filterable_in_grid' => true,
            ]
        );


    }
}

var/generationফোল্ডারটি সরান এবং কমান্ড রান করুন,

পিএইচপি বিন / ম্যাজেন্টো সেটআপ: অভ্যন্তরীণ বিভাগে কাজ করে আপগ্রেড করুন


এই কোডটি চেষ্টা করুন, তবে বৈশিষ্ট্য তৈরি হয়নি।
গৌরব জৈন

আপনি কি ডেটাবেস eav_attribute টেবিলের ভিতরে চেক করেছেন, আপনার অ্যাট্রিবিউটটি জেনারেট হয় কিনা?
রাকেশ জেসাদিয়ার

হ্যাঁ ডাটাবেস সারণীতে চেক করা হয়েছে, তবে বৈশিষ্ট্যটি তৈরি করা হয়নি :(
গৌরব জৈন

plz এখানে আপনার সম্পূর্ণ কোড যুক্ত করুন দেখান যে আমরা কোডের ভিতরে কোডটি যাচাই করতে পারি, এটি রেজিস্ট্রেশন.এফপি ফাইল সহ কোড রয়েছে
রকেশ জেসাদিয়ার

আমি আমার কোড আপডেট করেছি, দয়া করে চেক করুন
গৌরব জৈন

6

ম্যাজেন্টো ২.১ হিসাবে ক্ষেত্রটি অ্যাডমিনে প্রদর্শিত হওয়ার আগে আপনাকে একটি ইউআই উপাদান তৈরি করতে হবে।

সৃষ্টি:

অ্যাপ্লিকেশন / কোড / বিক্রেতা / Categoryattr / দৃশ্য / adminhtml / ui_component / category_form.xml

<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">

    <fieldset name="custom_tab">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="label" xsi:type="string" translate="true">Custom Tab Name</item>
                <item name="collapsible" xsi:type="boolean">true</item>
                <item name="sortOrder" xsi:type="number">12</item>
            </item>
        </argument>
        <field name="custom_attribute">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="class" xsi:type="string">Magento\Catalog\Ui\Component\Category\Form\Element\Wysiwyg</item>
                    <item name="formElement" xsi:type="string">wysiwyg</item>
                    <item name="wysiwygConfigData" xsi:type="array">
                        <item name="settings" xsi:type="array">
                            <item name="theme_advanced_buttons1" xsi:type="string">bold,italic,|,justifyleft,justifycenter,justifyright,|,fontselect,fontsizeselect,|,forecolor,backcolor,|,link,unlink,image,|,bullist,numlist,|,code</item>
                            <item name="theme_advanced_buttons2" xsi:type="boolean">false</item>
                            <item name="theme_advanced_buttons3" xsi:type="boolean">false</item>
                            <item name="theme_advanced_buttons4" xsi:type="boolean">false</item>
                            <item name="theme_advanced_statusbar_location" xsi:type="boolean">false</item>
                        </item>
                        <item name="files_browser_window_url" xsi:type="boolean">false</item>
                        <item name="height" xsi:type="string">100px</item>
                        <item name="toggle_button" xsi:type="boolean">false</item>
                        <item name="add_variables" xsi:type="boolean">false</item>
                        <item name="add_widgets" xsi:type="boolean">false</item>
                        <item name="add_images" xsi:type="boolean">false</item>
                    </item>
                    <item name="template" xsi:type="string">ui/form/field</item>
                    <item name="source" xsi:type="string">category</item>
                    <item name="wysiwyg" xsi:type="boolean">true</item>
                    <item name="dataScope" xsi:type="string">description</item>
                    <item name="sortOrder" xsi:type="number">50</item>
                    <item name="rows" xsi:type="number">8</item>
                </item>
            </argument>
        </field>
    </fieldset>
</form>

1

নীচের কোড ব্যবহার করে আপনি বিভাগের বৈশিষ্ট্য যুক্ত করতে পারেন:

আপনার মডিউলে সেটআপ ফোল্ডারটি তৈরি করুন, এর ভিতরে ইনস্টলডেটা.এফপি ফাইল তৈরি করুন

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Ibnab\CustomAttribute\Setup;
use Magento\Framework\Module\Setup\Migration;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Catalog\Setup\CategorySetupFactory;

/**
 * @codeCoverageIgnore
 */
class InstallData implements InstallDataInterface
{
    /**
     * Category setup factory
     *
     * @var CategorySetupFactory
     */
    private $categorySetupFactory;

    /**
     * Init
     *
     * @param CategorySetupFactory $categorySetupFactory
     */
    public function __construct(CategorySetupFactory $categorySetupFactory)
    {
        $this->categorySetupFactory = $categorySetupFactory;
    }
    /**
     * {@inheritdoc}
     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
     */
    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $installer = $setup;
         $installer->startSetup();

        $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
        $entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Category::ENTITY);
        $attributeSetId = $categorySetup->getDefaultAttributeSetId($entityTypeId);
         $categorySetup->removeAttribute(
        \Magento\Catalog\Model\Category::ENTITY, 'my_attribute',
    );
        $categorySetup->addAttribute(
        \Magento\Catalog\Model\Category::ENTITY, 'my_attribute', [
             'type' => 'int',
             'label' => 'My Atrribute ',
             'input' => 'select',
             'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',
             'required' => false,
             'sort_order' => 100,
             'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
             'group' => 'General Information',
        ]
    );
    $idg =  $categorySetup->getAttributeGroupId($entityTypeId, $attributeSetId, 'General Information');
    $categorySetup->addAttributeToGroup(
        $entityTypeId,
        $attributeSetId,
        $idg,
        'my_attribute',
        46
    );
$installer->endSetup();
    }
}

আপনার জবাবের জন্য আপনাকে ধন্যবাদ, তবে এটি কাজ করছে বলে মনে হয় না। আমাদের পাঠ্যকে বৈশিষ্ট্যযুক্ত করা দরকার।
গৌরব জৈন

আপনি দয়া করে কোডটি যুক্ত করতে পারেন?
প্রশান্ত ভালান্দা

দয়া করে আমার কোডটি চেক করুন
গৌরব জৈন


বৈশিষ্ট্যটি অ্যাডমিনে তৈরি করে না এবং প্রদর্শন করে না।
গৌরব জৈন

1

উপরে ভাল রেফারেন্স। এইটি আমার জন্য একটি বিভাগের জন্য একটি বৈশিষ্ট্য তৈরি করতে ভাল কাজ করেছে। আমি v2.0.6 এ পরীক্ষা করেছি।

এটি অ্যাপ / কোড / বিক্রেতার / এক্সটেনশন / সেটআপ / ইনস্টলডেটা.পিএপ স্থাপন করা উচিত

<?php

namespace Vendor\Extension\Setup;

use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface;

class InstallData implements InstallDataInterface
{
    /**
     * EAV setup factory
     *
     * @var EavSetupFactory
     */
    private $eavSetupFactory;

    /**
     * Init
     *
     * @param EavSetupFactory $eavSetupFactory
     */
    public function __construct(EavSetupFactory $eavSetupFactory)
    {
        $this->eavSetupFactory = $eavSetupFactory;
    }

    /**
     * {@inheritdoc}
     */
    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();

        /** @var EavSetup $eavSetup */
        $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);

        /**
         * Add attributes to the eav/attribute
         */
        $eavSetup->addAttribute(
            \Magento\Catalog\Model\Category::ENTITY,
            'custom_attribute',
            [
                'group' => 'General Information',
                'type' => 'varchar',
                'label' => 'Custom Attribute',
                'input' => 'text',
                'required' => false,
                'sort_order' => 100,
                'global' => ScopedAttributeInterface::SCOPE_GLOBAL,
                'user_defined' => true,
                'is_used_in_grid' => true,
                'is_visible_in_grid' => false,
                'is_filterable_in_grid' => true,
            ]
        );

        $setup->endSetup();
    }
}

আমার ব্লগে আমি কীভাবে এটি করতে পারি তার একটি সম্পূর্ণ উদাহরণ লিখেছি http://blog.mdnsolutions.com


0
<?php
use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;

class InstallData implements InstallDataInterface
{
    private $eavSetupFactory;

    public function __construct(EavSetupFactory $eavSetupFactory)
    {
        $this->eavSetupFactory = $eavSetupFactory;
    }

    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();
        //Category Attribute Create Script
        $eavSetup->addAttribute(
            \Magento\Catalog\Model\Category::ENTITY,
            'myattributecode' => [
                 'type' => 'varchar',
                 'label' => 'Attribute Title',
                 'input' => 'textarea',
                 'required' => false,
                 'sort_order' => 100,
                 'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'group' => 'General Information',
                 'wysiwyg_enabled' => true,
                 'is_used_in_grid' => true,
                 'is_visible_in_grid' => false,
                 'is_filterable_in_grid' => true,
            ]
        );
        $setup->endSetup();
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.