Adding products in Magento (now Adobe Commerce) starts from the Admin sidebar under Catalog > Products, where you click “Add Product” and choose a product type. The process involves filling in required fields, configuring inventory and visibility settings, and assigning the product to categories. Whether you’re adding a single item or thousands via CSV import, here’s how each method works.
Creating a Simple Product
A simple product is the most common type: one item with no variations. From the Admin panel, go to Catalog > Products and click “Add Product.” Magento marks every required field with a red asterisk, but only three fields are truly mandatory to save a product: Product Name, SKU, and Price. The SKU auto-generates based on the product name, though you can overwrite it with your own identifier.
Beyond those three fields, you’ll want to fill in several others before the product is ready for customers. Set the quantity on hand and stock status (In Stock or Out of Stock) under the inventory section. Upload product images, which display as thumbnails on category pages and enlarge on the product detail page. Write a short and long description to explain what the product is and why someone should buy it. Assign a weight if the product is physical, since Magento uses weight to calculate shipping rates.
Once you’ve entered the basics, assign the product to one or more categories so it appears in the right place on your storefront. Then scroll to the Websites section and confirm the product is assigned to the correct website and store view. This step is easy to overlook, especially on multi-store setups, and a missing assignment is one of the most common reasons a product doesn’t show up on the frontend.
Choosing the Right Product Type
Magento supports several product types beyond simple products. Picking the right one determines how customers interact with your listing and how inventory is tracked.
- Configurable products represent one product with multiple variations, like a t-shirt available in small, medium, and large. Customers select a variant from dropdown menus but can only buy one variant at a time. Pricing can stay the same across all options or vary per selection. Inventory is tracked for the parent product and for each individual variation.
- Grouped products display several related items on a single page. Each item keeps its own name, price, and SKU. Customers pick which items they want and set quantities for each. Inventory is tracked only at the individual product level, not at the group level.
- Bundle products let customers build their own combination, like a custom computer where they choose a processor, memory, and storage. You can set fixed pricing (one price regardless of selections) or dynamic pricing (the total changes based on what the customer picks). Inventory can be tracked at the bundle level or the component level.
- Virtual products are non-physical items like services, memberships, or warranties. They skip the weight and shipping fields entirely since nothing is shipped.
- Downloadable products are digital files like ebooks or software. Magento provides the download link after purchase.
Configurable products require the most setup because you need to create attribute sets first (like “Size” or “Color”), then generate the individual child products for each combination. If you’re selling a shirt in three sizes and two colors, that’s six child simple products linked to one configurable parent.
Bulk Importing Products via CSV
When you have dozens or hundreds of products to add, manual entry isn’t practical. Magento’s native import tool lets you upload a CSV file with all your product data at once. Navigate to System > Data Transfer > Import to get started.
Set the Entity Type to “Products,” then click “Download Sample File.” This gives you a CSV template with all the column headers Magento expects, filled with placeholder data. Use this template as your starting point rather than building a spreadsheet from scratch, since column headers must be spelled exactly as Magento expects them.
A few formatting rules to keep in mind:
- Field separator: Use commas by default.
- Special characters: Equal signs, angle brackets, quotes, backslashes, pipes, and ampersands can break the import. Wrap text containing these characters in double quotes so Magento interprets them as data rather than formatting.
- File encoding: Save the CSV as UTF-8 without a Byte Order Mark (BOM). Files with a BOM frequently cause import failures.
- File size: The default upload limit is 2 MB, determined by your server’s PHP settings. For larger catalogs, you may need to increase this limit or split the file.
When you upload the file, Magento gives you three import behavior options. “Add/Update” adds new products and updates existing ones based on matching SKUs, leaving all other products untouched. “Replace” deletes the existing record for any matching SKU and creates a fresh one from the CSV data. “Delete” removes any product whose SKU appears in the file, ignoring all other columns. For most catalog additions, “Add/Update” is the safest choice.
Filling In SEO Fields
Every product page in Magento has built-in fields for search engine optimization. Filling these in helps your products appear in Google and other search results rather than relying solely on your storefront’s navigation.
The meta title appears in browser tabs and as the clickable headline in search results. Keep it under 70 characters and make it unique for each product. The meta description provides the short summary beneath that headline. Aim for 150 to 160 characters, though the field accepts up to 255. Both of these should include the keywords a customer would actually search for.
The URL key controls the product page’s web address. Magento generates one automatically from the product name, but you can edit it to be shorter or more descriptive. Product URL keys must be globally unique across your entire store. If you enable canonical meta tags for products (under Stores > Settings > Configuration > Catalog > Search Engine Optimization), Magento automatically adds a canonical URL tag pointing to the clean product URL. This prevents duplicate content issues when the same product is accessible through multiple category paths.
Magento also adds structured data markup based on the schema.org standard to your product pages by default. This enables rich snippets in search results, which can display price, availability, and review ratings directly in Google listings without any extra configuration on your part.
Making Products Visible on the Frontend
Saving a product doesn’t guarantee it appears on your storefront. Several settings need to align before customers can see and purchase it.
First, set the product’s status to “Enabled.” A disabled product is saved in the database but hidden from the store. Next, check the Visibility setting. Magento offers four options: “Not Visible Individually” (the product only appears as part of a configurable, grouped, or bundle product), “Catalog” (visible in category listings but not in search), “Search” (appears in search results but not in category pages), and “Catalog, Search” (appears everywhere). For standalone products, you almost always want “Catalog, Search.”
Verify that the product has available stock quantity and that the stock status is set to “In Stock.” Products marked out of stock or with zero quantity typically won’t display unless you’ve specifically configured your store to show out-of-stock items.
Confirm the product is assigned to the correct website and store views, especially if you run multiple storefronts from one Magento installation. Then assign it to at least one category so it has a place in your site’s navigation.
After saving, two backend steps often need to happen before the product actually appears. Go to System > Index Management and reindex the “Product Listings” index. Then clear your Magento cache (System > Cache Management) so the frontend reflects the latest data. Some hosting environments handle reindexing automatically on a schedule, but if your new product isn’t showing up, running both steps manually is the fastest fix.

