{"id":90,"date":"2022-05-07T05:31:26","date_gmt":"2022-05-07T05:31:26","guid":{"rendered":"https:\/\/magecurious.com\/blog\/?p=90"},"modified":"2024-11-18T13:40:32","modified_gmt":"2024-11-18T08:10:32","slug":"magento-2-how-to-create-simple-product-with-custom-options-programmatically","status":"publish","type":"post","link":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/","title":{"rendered":"Magento 2 How to Create Simple Product with Custom Options Programmatically"},"content":{"rendered":"\n<p>Hello Guys! \ud83d\udc4b<\/p>\n\n\n\n<p>     In a previous blog, we create a simple product programmatically here is a <a rel=\"noreferrer noopener\" href=\"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-programmatically\/\" data-type=\"URL\" data-id=\"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-programmatically\/\" target=\"_blank\">link<\/a> to checkout.<\/p>\n\n\n\n<p>Now, in this blog, we create simple products with custom options with the following snippet of code.<\/p>\n\n\n\n<p>Custom options of products are given to the customer to choose their need.<\/p>\n\n\n\n<p>Magento 2 give different type of options. The following are the type of options given by Magento 2.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Text<\/strong><ul><li>Field<\/li><li>Area<\/li><\/ul><\/li><li><strong>File<\/strong><\/li><li><strong>Select<\/strong><ul><li>Drop-down<\/li><li>Raddio Buttons<\/li><li>Checkbox<\/li><li>Multiple Select <\/li><\/ul><\/li><li><strong>Date<\/strong><ul><li>Date<\/li><li>Date &amp; Time<\/li><li>Time<\/li><\/ul><\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Step 1 : Create <strong>simple-product-custom-options.php<\/strong> in your magento 2 root.<\/code><\/pre>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\nuse Magento\\Framework\\AppInterface;\n\ntry {\n    require_once __DIR__ . &#039;\/app\/bootstrap.php&#039;;\n\n} catch (\\Exception $e) {\n    echo &#039;Autoload error: &#039; . $e-&gt;getMessage();\n    exit(1);\n}\ntry{\n    $bootstrap = \\Magento\\Framework\\App\\Bootstrap::create(BP, $_SERVER);\n\n    $objectManager = $bootstrap-&gt;getObjectManager();\n\n    $appState = $objectManager-&gt;get(&#039;\\Magento\\Framework\\App\\State&#039;);\n    $appState-&gt;setAreaCode(&#039;frontend&#039;);\n\n    $product = $objectManager-&gt;create(&#039;\\Magento\\Catalog\\Model\\Product&#039;);\n    $product-&gt;setSku(&#039;sku-test&#039;); \/\/ Sku of product \n    $product-&gt;setName(&#039;Test Sample Product&#039;); \/\/ Here set Product name\n    $product-&gt;setAttributeSetId(4); \/\/ Set attribute set id\n    $product-&gt;setStatus(1); \/\/ Here set status on product enabled = 1 &amp; disabled = 0\n    $product-&gt;setWeight(10); \/\/ Here set weight of product\n    $product-&gt;setVisibility(4); \/\/ set here  visibilty of product\n    $product-&gt;setTaxClassId(0);\n    $product-&gt;setTypeId(&#039;simple&#039;); \/\/ Here set type of product (simple\/virtual\/downloadable\/configurable)\n    $product-&gt;setPrice(100); \n    $product-&gt;setStockData(\n        array(\n            &#039;use_config_manage_stock&#039; =&gt; 0,\n            &#039;manage_stock&#039; =&gt; 1,\n            &#039;is_in_stock&#039; =&gt; 1,\n            &#039;qty&#039; =&gt; 999999999\n        )\n    );\n\n    $customOption = $objectManager-&gt;create(&#039;Magento\\Catalog\\Api\\Data\\ProductCustomOptionInterface&#039;);\n\n    $customOption-&gt;setTitle(&#039;Text&#039;)\n        -&gt;setType(&#039;area&#039;)\n        -&gt;setIsRequire(true)\n        -&gt;setSortOrder(1)\n        -&gt;setPrice(1.00)\n        -&gt;setPriceType(&#039;fixed&#039;)\n        -&gt;setMaxCharacters(50)\n        -&gt;setProductSku($product-&gt;getSku());\n\n    $customOptions&#x5B;] = $customOption;\n    $product-&gt;setOptions($customOptions);\n\n    $product-&gt;save();\n}\ncatch(\\Exception $e){\n    print_r($e-&gt;getMessage());\n}\n\n\n\n\n<\/pre><\/div>\n\n\n<pre class=\"wp-block-code\"><code>Now run simple-product-custom-options.php scripts from your browser.<\/code><\/pre>\n\n\n\n<div style=\"height:39px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<!-- FeedbackWP Plugin --><div  class=\"rmp-widgets-container rmp-wp-plugin rmp-main-container js-rmp-widgets-container js-rmp-widgets-container--90 \"  data-post-id=\"90\">    <!-- 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 rmp-icon--full-highlight\"><\/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 rmp-icon--full-highlight\"><\/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 rmp-icon--full-highlight\"><\/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 rmp-icon--full-highlight\"><\/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 rmp-icon--full-highlight\"><\/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 \">      Average rating <span class=\"rmp-rating-widget__results__rating js-rmp-avg-rating\">5<\/span> \/ 5. Vote count: <span class=\"rmp-rating-widget__results__votes js-rmp-vote-count\">10<\/span>    <\/p>    <p class=\"rmp-rating-widget__not-rated js-rmp-not-rated rmp-rating-widget__not-rated--hidden\">      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 Guys! \ud83d\udc4b In a previous blog, we create a simple product programmatically here is a link to checkout. Now, in this blog, we create simple products with custom options with the following snippet of code. Custom options of products are given to the customer to choose their need. Magento 2 give different type of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":190,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[14,13,11],"class_list":["post-90","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-magento-2","tag-custom-options","tag-magento-2","tag-simple-product"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Simple Product Custom Options Programmatically- Magento 2<\/title>\n<meta name=\"description\" content=\"Learn to create simple product with custom options programmatically in Magento 2. Enhance product management with following guide.\" \/>\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\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Simple Product Custom Options Programmatically- Magento 2\" \/>\n<meta property=\"og:description\" content=\"Learn to create simple product with custom options programmatically in Magento 2. Enhance product management with following guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/\" \/>\n<meta property=\"og:site_name\" content=\"Magecurious\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-07T05:31:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-18T08:10:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2022\/05\/Option-Programmer.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=\"1 minute\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Simple Product Custom Options Programmatically- Magento 2","description":"Learn to create simple product with custom options programmatically in Magento 2. Enhance product management with following guide.","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\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/","og_locale":"en_US","og_type":"article","og_title":"Simple Product Custom Options Programmatically- Magento 2","og_description":"Learn to create simple product with custom options programmatically in Magento 2. Enhance product management with following guide.","og_url":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/","og_site_name":"Magecurious","article_published_time":"2022-05-07T05:31:26+00:00","article_modified_time":"2024-11-18T08:10:32+00:00","og_image":[{"width":1260,"height":496,"url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2022\/05\/Option-Programmer.png","type":"image\/png"}],"author":"Magecurious","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Magecurious","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/#article","isPartOf":{"@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/"},"author":{"name":"Magecurious","@id":"https:\/\/magecurious.com\/blog\/#\/schema\/person\/6bced7da0991e7fbbd4550006a6494e2"},"headline":"Magento 2 How to Create Simple Product with Custom Options Programmatically","datePublished":"2022-05-07T05:31:26+00:00","dateModified":"2024-11-18T08:10:32+00:00","mainEntityOfPage":{"@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/"},"wordCount":92,"commentCount":0,"publisher":{"@id":"https:\/\/magecurious.com\/blog\/#organization"},"image":{"@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/#primaryimage"},"thumbnailUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2022\/05\/Option-Programmer.png","keywords":["custom-options","Magento-2 Archives","simple-product"],"articleSection":["Magento 2 Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/","url":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/","name":"Simple Product Custom Options Programmatically- Magento 2","isPartOf":{"@id":"https:\/\/magecurious.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/#primaryimage"},"image":{"@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/#primaryimage"},"thumbnailUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2022\/05\/Option-Programmer.png","datePublished":"2022-05-07T05:31:26+00:00","dateModified":"2024-11-18T08:10:32+00:00","description":"Learn to create simple product with custom options programmatically in Magento 2. Enhance product management with following guide.","breadcrumb":{"@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/#primaryimage","url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2022\/05\/Option-Programmer.png","contentUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2022\/05\/Option-Programmer.png","width":1260,"height":496,"caption":"Featured Image"},{"@type":"BreadcrumbList","@id":"https:\/\/magecurious.com\/blog\/magento-2-how-to-create-simple-product-with-custom-options-programmatically\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/magecurious.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Magento 2 How to Create Simple Product with Custom Options Programmatically"}]},{"@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\/2022\/05\/Option-Programmer.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/posts\/90","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=90"}],"version-history":[{"count":0,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/posts\/90\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/media\/190"}],"wp:attachment":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/media?parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/categories?post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/tags?post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}