{"id":897,"date":"2023-12-06T18:05:22","date_gmt":"2023-12-06T12:35:22","guid":{"rendered":"https:\/\/magecurious.com\/blog\/?p=897"},"modified":"2024-11-18T00:47:25","modified_gmt":"2024-11-17T19:17:25","slug":"how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2","status":"publish","type":"post","link":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/","title":{"rendered":"How To Create Product Attribute Programmatically using Data Patch in Magento 2"},"content":{"rendered":"\n<p>Hello Everyone,<\/p>\n\n\n\n<p>In this blog, we will learn about how to Create New Product Attributes Programmatically using Data Patch in Magento 2.<\/p>\n\n\n\n<p>Data Patch feature is introduced from Magento 2.3.x.<\/p>\n\n\n\n<p>Without wasting your time, let us guide you straight away. Follow the easy step given below to Create Product Attribute in Magento 2.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>STEPS FOR CREATE PRODUCT ATTRIBUTE IN MAGENTO 2<\/strong><\/h2>\n\n\n\n<p><strong>Step 1: Create ProductAttribute.php file<\/strong><\/p>\n\n\n\n<p><strong>app\/code\/Vendor\/Extension\/Setup\/Patch\/Data\/ProductAttribute.php<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;?php\nnamespace Vendor\\Extension\\Setup\\Patch\\Data;\n\nuse Magento\\Eav\\Setup\\EavSetup;\nuse Magento\\Eav\\Setup\\EavSetupFactory;\nuse Magento\\Framework\\Setup\\ModuleDataSetupInterface;\nuse Magento\\Framework\\Setup\\Patch\\DataPatchInterface;\n\nclass ProductAttribute implements DataPatchInterface\n{\n   private $_moduleDataSetup;\n\n   private $_eavSetupFactory;\n\n   public function __construct(\n       ModuleDataSetupInterface $moduleDataSetup,\n       EavSetupFactory $eavSetupFactory\n   ) {\n       $this-&gt;_moduleDataSetup = $moduleDataSetup;\n       $this-&gt;_eavSetupFactory = $eavSetupFactory;\n   }\n\n   public function apply()\n   {\n       \/** @var EavSetup $eavSetup *\/\n       $eavSetup = $this-&gt;_eavSetupFactory-&gt;create(&#x5B;&#039;setup&#039; =&gt; $this-&gt;_moduleDataSetup]);\n\n       $eavSetup-&gt;addAttribute(\\Magento\\Catalog\\Model\\Product::ENTITY, &#039;custom_product_attribute&#039;, &#x5B;\n           &#039;type&#039; =&gt; &#039;int&#039;,\n           &#039;backend&#039; =&gt; &#039;&#039;,\n           &#039;frontend&#039; =&gt; &#039;&#039;,\n           &#039;label&#039; =&gt; &#039;Custom Product Attribute&#039;,\n           &#039;input&#039; =&gt; &#039;select&#039;,\n           &#039;class&#039; =&gt; &#039;custom_product_attribute_class&#039;,\n           &#039;source&#039; =&gt; \\Magento\\Catalog\\Model\\Product\\Attribute\\Source\\Boolean::class,\n           &#039;global&#039; =&gt; \\Magento\\Eav\\Model\\Entity\\Attribute\\ScopedAttributeInterface::SCOPE_GLOBAL,\n           &#039;visible&#039; =&gt; true,\n           &#039;required&#039; =&gt; false,\n           &#039;user_defined&#039; =&gt; false,\n           &#039;default&#039; =&gt; &#039;&#039;,\n           &#039;searchable&#039; =&gt; false,\n           &#039;filterable&#039; =&gt; false,\n           &#039;comparable&#039; =&gt; false,\n           &#039;visible_on_front&#039; =&gt; false,\n           &#039;used_in_product_listing&#039; =&gt; true,\n           &#039;unique&#039; =&gt; false,\n       ]);\n   }\n\n   public static function getDependencies()\n   {\n       return &#x5B;];\n   }\n\n   public function getAliases()\n   {\n       return &#x5B;];\n   }\n\n   public static function getVersion()\n   {\n      return &#039;1.0.0&#039;;\n   }\n}\n<\/pre><\/div>\n\n\n<p>In above code we created an int type attribute you can change as per your requirements.<\/p>\n\n\n\n<p><strong>Step 2: Finally run the below commands<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ php bin\/magento setup:upgrade\n$ php bin\/magento cache:clean\n$ php bin\/magento cache:flush\n<\/pre><\/div>\n\n\n<p><strong>Step 3: Output:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/P_bJXRJN0-eFwLnD5ABiWrvQZ6kbUzMk6sBXwlmiOeT0_kjcZNYmSdjcdCDPDp8cLUKxvQL4hCfQBtN9MU712t13GgAOwht4vllxeSKOi0jtbvLJu6whcDfRA1rm_5OCGR-jSNjX1zy9deiXvKE-fdg\" alt=\"\"\/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Above created product attribute is stored in&nbsp; eav_attribute table.<\/p>\n\n\n\n<p>Now go to Admin -&gt; Catalog -&gt; Products -&gt; &lt;select any product&gt; -&gt; Edit.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final Thoughts:<\/strong><\/h2>\n\n\n\n<p>So this was the easiest way which we have told you in this blog. This is how you can Create Product Attribute Programmatically in Magento 2. Hope you liked the blog.<\/p>\n\n\n\n<p>So quickly go to the comment box and tell me how you like this blog?<\/p>\n\n\n\n<p><strong>Stay tuned with us on our site to get new updates of Magento.<\/strong><\/p>\n\n\n\n<p>Thanks for reading and visiting our site.<\/p>\n\n\n<!-- FeedbackWP Plugin --><div  class=\"rmp-widgets-container rmp-wp-plugin rmp-main-container js-rmp-widgets-container js-rmp-widgets-container--897 \"  data-post-id=\"897\">    <!-- Rating widget -->  <div class=\"rmp-rating-widget js-rmp-rating-widget\">          <p class=\"rmp-heading rmp-heading--title\">        How useful was this post?      <\/p>              <p class=\"rmp-heading rmp-heading--subtitle\">        Click on a star to rate it!      <\/p>        <div class=\"rmp-rating-widget__icons\">      <ul class=\"rmp-rating-widget__icons-list js-rmp-rating-icons-list\">                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Not at all useful\" data-value=\"1\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star \"><\/i>          <\/li>                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Somewhat useful\" data-value=\"2\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star \"><\/i>          <\/li>                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Useful\" data-value=\"3\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star \"><\/i>          <\/li>                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Fairly useful\" data-value=\"4\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star \"><\/i>          <\/li>                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Very useful\" data-value=\"5\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star \"><\/i>          <\/li>              <\/ul>    <\/div>    <p class=\"rmp-rating-widget__hover-text js-rmp-hover-text\"><\/p>        <button class=\"rmp-rating-widget__submit-btn rmp-btn js-submit-rating-btn\">      Submit Rating    <\/button>    <p class=\"rmp-rating-widget__results js-rmp-results rmp-rating-widget__results--hidden\">      Average rating <span class=\"rmp-rating-widget__results__rating js-rmp-avg-rating\">0<\/span> \/ 5. Vote count: <span class=\"rmp-rating-widget__results__votes js-rmp-vote-count\">0<\/span>    <\/p>    <p class=\"rmp-rating-widget__not-rated js-rmp-not-rated \">      No votes so far! Be the first to rate this post.    <\/p>    <p class=\"rmp-rating-widget__msg js-rmp-msg\"><\/p>  <\/div>  <!--Structured data -->        <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hello Everyone, In this blog, we will learn about how to Create New Product Attributes Programmatically using Data Patch in Magento 2. Data Patch feature is introduced from Magento 2.3.x. Without wasting your time, let us guide you straight away. Follow the easy step given below to Create Product Attribute in Magento 2. STEPS FOR [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":898,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-897","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-magento-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Product Attribute Programmatically using Data Patch- Magento 2<\/title>\n<meta name=\"description\" content=\"Learn product attributes programmatically in Magento 2 using data patches to add custom attributes to products, enhancing your catalog\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Product Attribute Programmatically using Data Patch- Magento 2\" \/>\n<meta property=\"og:description\" content=\"Learn product attributes programmatically in Magento 2 using data patches to add custom attributes to products, enhancing your catalog\" \/>\n<meta property=\"og:url\" content=\"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Magecurious\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-06T12:35:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-17T19:17:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2023\/12\/image_2023_12_05T12_38_03_071Z.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1260\" \/>\n\t<meta property=\"og:image:height\" content=\"496\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Magecurious\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Magecurious\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Product Attribute Programmatically using Data Patch- Magento 2","description":"Learn product attributes programmatically in Magento 2 using data patches to add custom attributes to products, enhancing your catalog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/","og_locale":"en_US","og_type":"article","og_title":"Product Attribute Programmatically using Data Patch- Magento 2","og_description":"Learn product attributes programmatically in Magento 2 using data patches to add custom attributes to products, enhancing your catalog","og_url":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/","og_site_name":"Magecurious","article_published_time":"2023-12-06T12:35:22+00:00","article_modified_time":"2024-11-17T19:17:25+00:00","og_image":[{"width":1260,"height":496,"url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2023\/12\/image_2023_12_05T12_38_03_071Z.png","type":"image\/png"}],"author":"Magecurious","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Magecurious","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/#article","isPartOf":{"@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/"},"author":{"name":"Magecurious","@id":"https:\/\/magecurious.com\/blog\/#\/schema\/person\/6bced7da0991e7fbbd4550006a6494e2"},"headline":"How To Create Product Attribute Programmatically using Data Patch in Magento 2","datePublished":"2023-12-06T12:35:22+00:00","dateModified":"2024-11-17T19:17:25+00:00","mainEntityOfPage":{"@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/"},"wordCount":207,"commentCount":0,"publisher":{"@id":"https:\/\/magecurious.com\/blog\/#organization"},"image":{"@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/#primaryimage"},"thumbnailUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2023\/12\/image_2023_12_05T12_38_03_071Z.png","articleSection":["Magento 2 Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/","url":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/","name":"Product Attribute Programmatically using Data Patch- Magento 2","isPartOf":{"@id":"https:\/\/magecurious.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/#primaryimage"},"image":{"@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/#primaryimage"},"thumbnailUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2023\/12\/image_2023_12_05T12_38_03_071Z.png","datePublished":"2023-12-06T12:35:22+00:00","dateModified":"2024-11-17T19:17:25+00:00","description":"Learn product attributes programmatically in Magento 2 using data patches to add custom attributes to products, enhancing your catalog","breadcrumb":{"@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/#primaryimage","url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2023\/12\/image_2023_12_05T12_38_03_071Z.png","contentUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2023\/12\/image_2023_12_05T12_38_03_071Z.png","width":1260,"height":496},{"@type":"BreadcrumbList","@id":"https:\/\/magecurious.com\/blog\/how-to-create-product-attribute-programmatically-using-data-patch-in-magento-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/magecurious.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How To Create Product Attribute Programmatically using Data Patch in Magento 2"}]},{"@type":"WebSite","@id":"https:\/\/magecurious.com\/blog\/#website","url":"https:\/\/magecurious.com\/blog\/","name":"Magecurious","description":"Blog","publisher":{"@id":"https:\/\/magecurious.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/magecurious.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/magecurious.com\/blog\/#organization","name":"Magecurious","url":"https:\/\/magecurious.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/magecurious.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2026\/03\/cropped-New_Project.png","contentUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2026\/03\/cropped-New_Project.png","width":596,"height":113,"caption":"Magecurious"},"image":{"@id":"https:\/\/magecurious.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/magecurious.com\/blog\/#\/schema\/person\/6bced7da0991e7fbbd4550006a6494e2","name":"Magecurious","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/magecurious.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c9178df2190b2309da97c9f28dd475bc338275cf664d12678d7e5da51c761271?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c9178df2190b2309da97c9f28dd475bc338275cf664d12678d7e5da51c761271?s=96&d=mm&r=g","caption":"Magecurious"},"sameAs":["https:\/\/magecurious.com"],"url":"https:\/\/magecurious.com\/blog\/author\/magecurious-wp\/"}]}},"jetpack_featured_media_url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2023\/12\/image_2023_12_05T12_38_03_071Z.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/posts\/897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/comments?post=897"}],"version-history":[{"count":0,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/posts\/897\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/media\/898"}],"wp:attachment":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/media?parent=897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/categories?post=897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/tags?post=897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}