Import products from an Excel or CSV file
What you will have: Your Excel catalog is loaded into Genuka, with its variants, prices and opening stock.
You start with your whole catalog instead of retyping each item by hand.
Why it matters
Typing a catalog of several hundred items by hand takes days and multiplies typos. If your products are already in a spreadsheet, the import loads them in one go, and is then used to update prices and stock in bulk.
Summary
From the product list, you import an .xlsx, .xls or .csv file built on the Genuka template: each row is a variant, and consecutive rows with the same title form a product. The import creates new products and updates those that already exist; it runs in the background, with a progress bar.
Before you start
- The import button only appears with the
products.createright (orproducts.*), and the server refuses the import without it; export requiresproducts.export. The Courier profile has neither of these rights. - First choose the active shop: imported products are linked to that shop only (and detached from other shops if they already existed).
Steps
- Open Catalog › Products & Services (
/products). - Open Import products (directly, or in the More options menu when both import and export are available).
- Click Download template file here and fill in the template.
- Drop your file ("Drag and drop a file here or click to select a file").
- Tick or not Overwrite existing data (see below), then Save.
- Follow the progress on the list (for example "120 rows out of 300"), then Import Completed or Import failed. Rejected rows are listed with their number (the first 5 shown).
You also receive an "Import Completed" or "Import failed" notification if you turned on these events in My Account › Notifications.
Template columns
| Column | Expected content |
|---|---|
| Parent ID | Not read by the import (an existing product is matched by title) |
| Product Title | Product title, required. Consecutive rows with the same title = one product |
| Product Description | Description |
| Product Published | 1, published or true = published; empty or any other value = draft |
| Product Options | Options and values: Color: White,Brown | Size: S,M,L,XL (options separated by |, values by commas) |
| Product Images | The product's image URLs, separated by commas |
| Variant Title | Variant name (e.g. White / S) |
| Variant Composition | Variant values: Color: White,Size: S |
| Variant Price | Selling price (0 if empty) |
| Variant Comparison Price | Price before (struck-through price) |
| Variant Cost | Cost price (supplier price) |
| Variant Stock Warehouse Name | Warehouse of the stock (otherwise: the shop's first warehouse) |
| Variant Stock Expiration Date | Batch expiry date (Excel date) |
| Variant Stock Production Date | Batch production date (Excel date) |
| Variant Stock Batch Number | Batch number |
| Variant Stock Quantity | Quantity in stock; filling this column turns on stock tracking for the variant |
| Variant Image | Read but currently has no effect: use Product Images |
| Variant SKU | Internal reference |
| Variant Barcode | Barcode |
| Collections | Collection names separated by commas; an unknown collection is created |
| Duration Minutes / Buffer Minutes | For services: duration and buffer time |
| Variant Professionals Emails | For services: emails of the professionals (team members), separated by commas |
| Type | services for a service; any other value gives a classic product |
An optional metadata column (not in the template) is also read: key=value;key2=value2, saved in the product's metadata. The business's product custom fields are read from the columns that carry their key.
There is no column for tags.
Images by URL
- Put several URLs in the same
Product Imagescell, separated by a comma:https://example.com/a.jpg,https://example.com/b.jpg. The order of the URLs gives the order of the images. - URLs must start with
http://orhttps://and be publicly accessible: Genuka downloads each image and stores it in its own media, in the background. During this processing, the list shows a loading indicator in place of the thumbnail. - An unreachable or invalid URL is ignored without a message: the product is imported without that image. Check your records after the import.
- No limit on the number of images is imposed.
Create or update?
- Product: found by its exact title in your business; if it exists, it is updated, otherwise created.
- Variant: matched to an existing variant by SKU, then barcode, then option combination, then title.
- Overwrite existing data unticked: "Only adds or updates the data in the file. Variants and warehouse stocks missing from the file are kept."
- Overwrite existing data ticked: "Existing products will be fully replaced by the file. Variants and warehouse stocks missing from the file will be deleted."
Edge cases and common mistakes
- The template's example rows are of type
serviceswith a professional[email protected]: imported as they are, they fail ("Professionals not found for emails"). Delete them before importing. - Dates: production and expiry dates must be real Excel dates (cells formatted as dates), not text.
- Products in draft after import: the
Product Publishedcolumn was empty. Fix it and reimport, or change the status in bulk from the list (Change status action). - A CSV file: the separator (comma, semicolon, tab or vertical bar) is detected automatically from the first line.
Export, then reimport?
Export (Export, xlsx, csv or pdf formats) produces columns close to the template. From 500 products, the download link is sent by email instead of a direct download. An export is not a reliable import template: it has no Type column (services would become classic products again), and a variant stored in several warehouses takes several rows there. Start from the import template. The price before, on the other hand, survives the round trip: the export's Variant Comparison Price column does carry each variant's price before. The Total column gives, row by row, the unit price x the quantity in stock. The last row of the export, Total, adds up the price, the cost, the quantity in stock and this column: its total is the value, at selling price, of the exported stock. The import ignores the Total column and skips this last row. The export can also be limited to certain batch numbers (only the rows of those batches come out) or group variants: a single row per product, under the parent product's name, with the quantity of all its variants added up and the price of its first variant; the total then multiplies the price and the cost by the quantity (stock value). A grouped export is never to be reimported: its variants are merged there.
FAQ
How do I put several images on a product in the Excel file?
In the Product Images column, list the URLs separated by commas.
Does the import update my existing products? Yes: a product with the same title is updated. Tick "Overwrite existing data" only if the file should fully replace the variants and stocks.
Can I import tags? No, the template has no column for tags. Collections, yes.
My products are already imported: how do I file them in a collection without reimporting?
From the collection page (Link existing products), or by asking the Genuka assistant to add all products that meet a criterion (supplier, price, creation period, batch): see "Tags and collections" (etiquettes-tags).
See also
- Create a product and publish it (
creer-produit) - Variants, options and metadata (
variantes-produit) - Barcodes and SKUs (
codes-barres-sku)
Sign in to keep track of the lessons you have done.
Open in Genuka