How to import simple product in magento 2 using CSV?

You can import simple products in Magento 2 by CSV from the admin panel.

Log in to the admin panel with your credentials.
Go To System -> Data Transfer -> Import
From Entity Type Select Products.
Select Add/Update from Import Behavior settings.

Create a CSV file to import only simple products. I have created simple products CSV file, Download Simple-Products-CSV for check possible column, and data of the simple product.

There are many columns for import product in Magento 2. Check Some of the useful column description with details,

sku => Product Unique SKU
attribute_set_code => Product Attribute Set code(get from Stores -> Product -> Attribute sets)
product_type => simple for import simple product(Possible types simple,configurable,bundle,grouped,downloadable,virtual)
website_id => 1 (Select id from Stores -> All stores -> Website choose your website and get id)
product_websites => base (Select website code from Stores -> All stores -> Website choose your website and get code)
name => Product name (keep unique name so dont face error for URL key)
short_description => Product short description
description => Product long description
categories => Products categories (Keep comma separated for multiple cateory, Give full path from Default Category to your category, Ex. Default Category/Gear/Bags)
tax_class_name => Product Tax class name
meta_title => Product meta title for SEO
meta_keywords => Product meta keyword for SEO
meta_description => Product description for SEO
price => Product Original Price
special_price => Product Special price
product_online => 1(Possible value 1 or 2, if 1 enable and 2 for disable product)
color => Product color (Optional attributes)
size => Product Size (Optional attributes)
weight => 1 (if value is 0 product is virtual)
visibility => Not Visible Individually (Possible values Not Visible Individually, or Catalog or Catalog, Search or Search)
qty => Product Qty
is_in_stock => 1 (Product is in stock or out of stock)
base_image => /pic1.jpg (Product main image in product page)
small_image => /pic1.jpg (Product small image in cart page)
thumbnail_image => /pic1.jpg (Product thumbnail image in listing page)
additional_images => /pic1.jpg,/pic2.jpg,/pic3.jpg (Product additional image for product page gallery)

For Image import using CSV, give product name with prefix as /.
Example Product name is pic1.jpg, gives the name for a column is /pic1.jpg

Also, you must keep the product image under the pub/media/import folder.

Pub media folder must have full writable permission to image upload.

Check Import configurable product in Magento 2.

Download Simple Product Demo CSV Sheet, Simple-Products-CSV

Don’t forget to run  indexer command using a command line,
php bin/magento indexer:reindex

What is the use of Add/Update, Replace, Delete behaviour of product import?

When you import products using CSV in Magento 2 by the native functionality of Magento from System -> Data Transfer -> Import
Select Entity Type -> Products
Import Behavior dropdown display Add/Update, Replace, Delete options.

(1)Add/Update Product: Product are added into admin catalog -> product.from CSV file.

In This scenario, if product is already exist, at that time content are updated for that product and if product is not already available in catalog, create new product.

(2)Replace: Replace works as remove same old product and generate new product with new id.

If you have already a product with SKU ABC and its product id is 1, and you can choose Replace from the dropdown at import time, new Product ABC are created with new id 2 so remove same product with id 1 and generate the new product with new id.

(3)Delete: Remove all product from catalog, match with given SKU from a csv file.

How to get product stock qty and stock information by product id in Magento 2?

You can get Product stock related information using the Catalog Inventory module of Magento 2.

Magento\CatalogInventory\Api\StockRegistryInterface is used for getting Stock Information from the Product.

If you want to only get Product Quantity and Product status might be it’s in stock or not then refer Get Product quantity from product object

Let’ create Block file and call function from a block,

<?php
namespace Rbj\Stockinfo\Block;

class Stockinfo extends \Magento\Framework\View\Element\Template
{
    public function __construct(
        \Magento\Backend\Block\Template\Context $context,
        \Magento\CatalogInventory\Api\StockRegistryInterface $stockItemRepository,
        array $data = []
    )
    {
        $this->stockItemRepository = $stockItemRepository;
        parent::__construct($context, $data);
    }
    /* Using Product id */
    public function getStockItem($productId)
    {
        return $this->stockItemRepository->getStockItem($productId);
    }
    /* Using Product SKU */
    public function getStockItemBySku($productSku)
    {
        return $this->stockItemRepository->getStockItemBySku($productSku);
    }
}

Now, We can get the product stock information by id and SKU in a template file using the below way.

$id = 1; //Product id
/* by Product id */
$productStockById = $block->getStockItem($id);

/* by Product SKU */
$sku = '24-MB01';
$productStockBySku = $block->getStockItemBySku($sku);
echo "<pre>";print_r($productStockBySku->debug());

The output will be something like below,

Array
(
    [item_id] => 1
    [product_id] => 1
    [stock_id] => 1
    [qty] => 100.0000
    [min_qty] => 0.0000
    [use_config_min_qty] => 1
    [is_qty_decimal] => 0
    [backorders] => 0
    [use_config_backorders] => 1
    [min_sale_qty] => 1.0000
    [use_config_min_sale_qty] => 1
    [max_sale_qty] => 10000.0000
    [use_config_max_sale_qty] => 1
    [is_in_stock] => 1
    [notify_stock_qty] => 1.0000
    [use_config_notify_stock_qty] => 1
    [manage_stock] => 1
    [use_config_manage_stock] => 1
    [stock_status_changed_auto] => 0
    [use_config_qty_increments] => 1
    [qty_increments] => 1.0000
    [use_config_enable_qty_inc] => 1
    [enable_qty_increments] => 0
    [is_decimal_divided] => 0
    [website_id] => 0
    [type_id] => simple
)

You can get qty, min_sale_qty, is_in_stock, backorder, stock_id, website_id related data with ease.