Magento 2: प्रोग्राम में प्रोडक्ट एट्रीब्यूट जोड़ें


15

मैगेंटो 2 उत्पाद कैसे बनाएं कार्यक्रम के प्रकार के साथ गुण: पाठ क्षेत्र।


यहाँ उदाहरण है - magento.stackexchange.com/a/229270/9951 बिना सेटअप के मक्खी पर Magento2 के लिए विशेषता जोड़ें
एलेक्स

जवाबों:


34

प्रोग्राम में उत्पाद गुण जोड़ने का अवलोकन

  • चरण 1: फ़ाइल बनाएँ InstallData.php
  • चरण 2: install() विधि को परिभाषित करें
  • चरण 3: कस्टम विशेषता बनाएँ

चरण 1: फ़ाइल बनाएँInstallData.php

हम InstallData वर्ग के साथ शुरू करेंगे जो में स्थित है

app/code/Mageplaza/HelloWorld/Setup/InstallData.php. 

इस फ़ाइल के लिए सामग्री:

<?php
namespace Mageplaza\HelloWorld\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;

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

}

चरण 2: स्थापित () विधि को परिभाषित करें

<?php

public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{

}

चरण 3: कस्टम विशेषता बनाएं यहां InstallData.phpउत्पाद विशेषता को प्रोग्राम बनाने के लिए सभी लाइनें हैं ।

<?php
namespace Mageplaza\HelloWorld\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;

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

    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
        $eavSetup->addAttribute(
            \Magento\Catalog\Model\Product::ENTITY,
            'sample_attribute',
            [
                'type' => 'int',
                'backend' => '',
                'frontend' => '',
                'label' => 'Sample Atrribute',
                'input' => '',
                'class' => '',
                'source' => '',
                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                'visible' => true,
                'required' => true,
                'user_defined' => false,
                'default' => '',
                'searchable' => false,
                'filterable' => false,
                'comparable' => false,
                'visible_on_front' => false,
                'used_in_product_listing' => true,
                'unique' => false,
                'apply_to' => ''
            ]
        );
    }
}

जैसा कि आप देख सकते हैं, सभी addAttribute विधि की आवश्यकता है: इकाई का प्रकार आईडी जिसे हम विशेषता जोड़ना चाहते हैं विशेषता का नाम समूह, इनपुट प्रकार, स्रोत, लेबल जैसे विशेषता को परिभाषित करने के लिए प्रमुख मूल्य जोड़े की एक सरणी…

सभी किए गए, कृपया अपग्रेड स्क्रिप्ट php bin / magento सेटअप को चलाएं: मॉड्यूल को स्थापित करने के लिए अपग्रेड करें और उत्पाद का नमूना sample_attribute बनाया जाएगा।

यदि आप उत्पाद विशेषता को हटाना चाहते हैं, तो आप addAttribute के स्थान पर पद्धति को हटा सकते हैं। यह इस तरह होगा:

संपादित करें:

स्थापना रद्द करने के लिए एप्लिकेशन / कोड / Mageplaza / HelloWorld / Setup / Uninstall.php बनाएं।

<?php
namespace Mageplaza\HelloWorld\Setup;

use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\UninstallInterface;

class Uninstall implements UninstallInterface
{
    private $eavSetupFactory;

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

    public function uninstall(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
        $eavSetup->removeAttribute(
            \Magento\Catalog\Model\Product::ENTITY,
            'sample_attribute');
    }
}

इसके अलावा आप कस्टम उत्पाद विशेषता बनाने के लिए नीचे दिए गए URL का अनुसरण कर सकते हैं।

URL: https://www.mageplaza.com/magento-2-module-development/magento-2-add-product-attribute-programmatically.html


मैं एक फ़ाइल अपलोड विशेषता बनाना चाहता हूं। मुझे क्या बदलाव करने हैं? कृपया मार्गदर्शन करें
पंचांग

@ephemeral आप 'इनपुट' => '' का मान बदल सकते हैं, आप इसे यहाँ पढ़ सकते हैं: magento.stackexchange.com/a/116829/2694
Andhi Irawan

मुझे 'int' से बदलना होगा? इस लिंक मैं फ़ाइल अपलोड करने के लिए :( खोजने के फ्लॉप पर
अल्पकालिक

विशेष संकेत के रूप में, फ़ील्ड को 'इनपुट' => '' रिक्त न होने दें। यह एक त्रुटि को प्रभावित करेगा। magento.stackexchange.com/questions/204420/…
ZFNerd

hi @ प्रकाश पटेल, इंस्टॉलर के बिना हम उत्पाद विशेषता बना सकते हैं?
जफ़र पिंजर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.