Hello Magento Friends,
Welcome to Magento 2 Tutorial series for creating the product programmatically. This is the comprehensive guide on How to Create Virtual Product Programmatically in Magento 2.
To handle a wide range of product catalogs, Magento 2 supports different product types.
Mainly we can create 6 types of products Programmatically in Magento 2:
- Simple Product
- Configurable Product
- Grouped Product
- Virtual Product
- Bundle Product
- Downloadable Product
Virtual products are abstract products that do not have a physical presence. Subscriptions, membership, services, warranties are the types of virtual products. Virtual products do not involve shipment and delivery.
Here, is the full-fledged solution to Create Virtual Product Programmatically in Magento 2.
Steps to Create Virtual Product Programmatically in Magento 2:
Step 1: Create a virtual_product.php file in the Magento root directory and add the below code
<?php use Magento\Framework\AppInterface; try { require_once __DIR__ . '/app/bootstrap.php'; } catch (\Exception $e) { echo 'Autoload error: ' . $e->getMessage(); exit(1); } try { $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER); $objectManager = $bootstrap->getObjectManager(); $appState = $objectManager->get('Magento\Framework\App\State'); $appState->setAreaCode('frontend'); $virtual_product = $objectManager->create('Magento\Catalog\Model\Product'); $virtual_product->setStatus(1); // status enabled/disabled 1/0 $virtual_product->setName('Virtual Product Name'); // Set Your Virtual Product Name $virtual_product->setSku('virtual_product_sku'); // Set Virtual Product SKU $virtual_product->setTypeId('virtual'); // Set Product Type Id (simple/virtual/downloadable/configurable/grouped/bundle) $virtual_product->setAttributeSetId(4); // Set Attribute Set ID $virtual_product->setWebsiteIds(array(1)); // Set Website Ids $virtual_product->setTaxClassId(0); // Set Tax class ID $virtual_product->setVisibility(4); // visibility of product (Not Visible Individually (1) / Catalog (2)/ Search (3)/ Catalog, Search(4)) $category_id = array(2, 3); $virtual_product->setCategoryIds($category_id); // Assign your to category using category Id $virtual_product->setPrice(199); // Set Virtual Product Price $virtual_product->setStockData( [ 'use_config_manage_stock' => 0, 'manage_stock' => 1, 'min_sale_qty' => 1, 'max_sale_qty' => 2, 'is_in_stock' => 1, 'qty' => 1000, ] ); $virtual_product->save(); if ($virtual_product->getId()) { echo "Virtual Product Created Successfully."; } } catch(\Exception $e) { print_r($e->getMessage()); }
After adding the above code, run the below URL
https://yourdomain.com/virtual_product.php
That’s it!
Conclusion:
This way, you can Create Virtual Product Programmatically in Magento 2. Besides this, make your store feature-rich with custom extension development according to the requirements of your store. Share the article further to help out your friends and stay in touch with us!
Happy Reading!