Guides

How to import products from CSV, XML and Google Sheets in CloudCart

How to import products from a CSV file in CloudCart: the columns you need, uploading from Excel, supplier XML feeds and updating prices without duplicates.

The CloudCart team17 min read
A stack of paper spreadsheets whose rows line up as product cards on a laptop screen
In this article · 14 sections
  1. What is a CSV file, what opens it, and what is an XML feed?
  2. Which import method should you choose?
  3. Which columns does the CSV import file need?
  4. How do you upload products from Excel, step by step?
  5. How do you import products from a supplier's XML feed?
  6. How do you update prices from a supplier's XML feed?
  7. Google Sheets: bulk changes to products already in your store
  8. Imports and changes with an AI agent instead of columns and mapping
  9. How do you export orders and sales from CloudCart as a CSV file?
  10. How many products can you import on each plan?
  11. The other direction: an XML feed from your store to Pazaruvaj, eMAG and Google
  12. Best practices for importing products
  13. Import mistakes to avoid
  14. Frequently asked questions

In short: a CSV file is a plain-text table with values separated by commas. In CloudCart you upload it under Products → Import → Import with CSV file. A supplier's XML feed goes in through the XML Import app, and bulk edits to products you already sell are done in Google Sheets. A CSV import always creates new products, so update prices with XML Import, XML Sync or Google Sheets.

This guide is for anyone loading a catalog into a store that sells in Bulgaria or across the EU: from an Excel list, a Bulgarian supplier's feed or another platform. It covers which tool fits which job, the exact columns, the admin steps and the mistakes to avoid.

What is a CSV file, what opens it, and what is an XML feed?

CSV (comma-separated values) is a text file holding a table: each line is one record, and the values on the line are separated by a comma or another character (RFC 4180). Excel, Google Sheets and almost every ecommerce platform read and write CSV, which is why it is the most common format for moving a catalog.

Excel, Google Sheets, LibreOffice Calc or any text editor opens a CSV file, and the same programs create one: in Google Sheets with File → Download → Comma-separated values (.csv). The line "TSH-01,Basic T-shirt,24.90" is a code, a name and a price.

XML (Extensible Markup Language) is a text format that wraps data in tags, such as <price>24.90</price> (W3C specification). Wholesalers and suppliers publish their catalog as an XML feed at a fixed web address (URL). Your store reads it on a schedule.

In CloudCart, the Bulgarian ecommerce platform, each format has its own app:

ToolSourceCreates new productsUpdates existing productsBest for
CSV ImportA .csv or .txt file you uploadYesNo, a second import creates duplicatesFirst catalog load, migration
XML ImportThe URL of an XML feedYesYes, only the fields ticked "Update"A supplier's catalog, a new product line
XML SyncThe URL of an XML feed, on a scheduleYesYes, the fields ticked "Update", on every runDropshipping, daily prices and stock
Google SheetsA spreadsheet CloudCart creates in your Google accountYes, a row with an empty Product IDYes, the sheet wins on DownloadManual changes to prices, names, descriptions
AI agent with a PAT tokenA sentence and a file you give the agentYesYes, by SKU or by a ruleChanges you can describe in one sentence

Which import method should you choose?

It depends on where the data comes from and how often it changes: once, use CSV; from a supplier, use XML; already in the store, use Google Sheets or an AI agent.

  • A new store with the catalog in Excel. Save the sheet as CSV and upload it with CSV Import.
  • Moving from WooCommerce, Shopify, OpenCart or Magento. Export the products from the old platform as CSV or XML and import them. How to keep your URLs and Google rankings is covered in the guide to migrating from WooCommerce without losing SEO.
  • A supplier with an XML feed. XML Import loads the catalog once and then, by default, reads the feed again every 12 hours. XML Sync is for suppliers whose prices and stock change every day. How to start with such a supplier is in what dropshipping is.
  • A new price list for products you already sell. Google Sheets if you type the prices by hand, or an AI agent if the change is a rule ("+8% on brand X").
  • Dropshipping. XML Sync with "Update" ticked only on price and quantity, so your own descriptions are never overwritten.

Which columns does the CSV import file need?

A CloudCart product CSV needs two columns: product.id and product.name. If a product has variants, every variant row also needs variant.parent_id. All other columns are optional, and you map them by hand in the last step of the import.

CloudCart fieldRequiredWhat goes in the column
product.idYesYour own product code in the file. Rows with the same code become one product.
product.nameYesThe product name.
variant.parent_idYes, for variantsThe code of the main product the variant belongs to.
variant.v1 / variant.v1_valueNoThe first option and its value, such as "Size" and "M". There are also v2 and v3: up to 3 options per variant.
Price, SKU, barcode, weightNoAt product level or at variant level (variant.price, variant.sku, variant.quantity).
CategoryNoA path with a separator, such as "Clothing > Shirts". You set the separator in the import settings.
product_images.srcNoImage URLs, separated by commas in one cell.
Description, brand, tags, propertiesNoText. Several columns can be combined into one field.

CloudCart downloads each image once into its own media library, so the old site can be switched off after the import. The CSV Template button in the first step of the import downloads a sample file.

An example for a clothing store: a T-shirt in 3 sizes is 3 rows in the file. All three rows have variant.parent_id "TSH-01", and the v1 and v1_value columns hold "Size" and S, M, L. After the import the store has 1 product with 3 variants, so the product count can be lower than the row count.

How do you upload products from Excel, step by step?

Products from Excel go into CloudCart as a CSV file, because the import does not accept .xls or .xlsx. In Excel, choose Save As → CSV UTF-8 (Microsoft Support). UTF-8 encoding keeps every character intact, including the Cyrillic names that Bulgarian suppliers often send. A file saved as Windows-1251, the older Cyrillic encoding, can come out as unreadable symbols.

  1. Open the import. In the admin: Products → the Import button (the cloud icon) → Import with CSV file. The same import is also under Apps → CSV Import.
  2. Step 1, Upload file. Drop the file in or pick it from your computer. The delimiter (comma, semicolon or tab) is detected from the first 10 KB of the file.
  3. Step 2, CSV file settings. Turn on the header row if the first line of the file holds the column names. The switch is off by default, and the first line would otherwise become a product. Here you also set the character that separates category levels (such as >).
  4. Advanced settings. Publishing, featured or new, shipping, stock tracking and selling when out of stock, for every row in the file.
  5. Step 3, Mapping. Next to each CloudCart field, pick the column from your file. The value from the first row is shown next to it. Select Submit.
  6. Track the progress. The Track importing progress button opens the task list. The count of imported and failed rows refreshes every 5 seconds, and failed rows appear in a separate table with the error.

Important: run a file with 10 to 20 rows first. The CSV import has no undo: Cancel import stops the task, but products already created stay. A wrong mapping then touches only 20 products.

How do you import products from a supplier's XML feed?

You import an XML feed with the XML Import app: you enter the feed URL, map its tags to CloudCart fields and the platform creates the products. The app accepts only a URL (HTTP or HTTPS). For a file on your computer, use the CSV import.

  1. Install the app. Apps → XML Import → Install, then + New task.
  2. Step 1: URL and rules. Paste the feed URL. Choose the import type: new products, updates to existing ones, or both. This step also holds the switches for stock tracking (Track inventory), selling when out of stock (Continue selling), hiding products that have left the feed (Disable missings) and a fixed category for all products.
  3. Step 2: the tags. Name the tag that wraps each product and map the tags to fields: name, price, SKU, description, images, category, quantity. Choose how the feed describes variants. Every field has an Update checkbox next to it.
  4. Step 3: finish. Map the categories (missing ones are created, levels use >), the default tax and brand, and the properties. Saving starts the task.
  5. Check the status. Under Status you see the progress of each task. A large feed keeps importing in the background.

By default the feed is read again every 12 hours. The platform waits up to 120 seconds for the supplier's server to answer. After 3 failed attempts in a row, the task switches itself off so it does not write stale data.

How do you update prices from a supplier's XML feed?

Prices from a supplier's feed are updated with the Update checkbox in step 2 of XML Import or XML Sync. Tick only price and quantity: unticked fields, such as your own descriptions and SEO texts, stay as they are on every later read of the feed.

The platform finds the existing product by the task that created it and the code of the row in the feed, so updates do not create duplicates. In XML Sync you also choose in step 1 what products are matched by (Compare by): SKU, barcode or ID.

  • Daily prices and stock. XML Sync compares the feed with your catalog on every run and updates, creates or hides products.
  • Discontinued products. Disable missings hides them without deleting them. In XML Sync, Enable exists products shows a hidden product again when it returns to the feed with stock.
  • Images. Once they are loaded, untick Update on them. If the supplier replaces an image URL with a broken one while Update is ticked, the product can end up with no image.

If the supplier sends an Excel price list rather than a feed, it is faster to give the file to an AI agent: "update the prices by SKU and show me which codes are missing".

Google Sheets: bulk changes to products already in your store

Google Sheets is the recommended way to change prices, names, descriptions, brands and categories of products already in CloudCart. Upload sends the catalog to a sheet, and Download brings the changes back.

  1. Connect your Google account. Apps → Google Sheets → Settings → Sign in with Google. The platform creates the spreadsheet itself; you cannot choose your own.
  2. Choose products and columns. Filter: all products, a category, a brand or specific products. (The tag and selection filters do not narrow the Upload.) Tick at least one column to edit.
  3. Upload. In the Tasks tab, select the up-arrow button. Every Upload clears the sheet and writes it again.
  4. Edit in the sheet. A new row with an empty Product ID becomes a new product. New categories (as a path, "Clothing > Shirts") and brands are created automatically.
  5. Download. The down-arrow button brings the changes back, after at least one successful Upload.

Important: on Download, the sheet wins. Admin changes made between Upload and Download are replaced, tags included, so run Upload right before you edit.

Google Sheets handles products only. If the app is not in your app list, your plan does not include it. How products, variants, properties and brands are structured is explained in the guide to the CloudCart product catalog.

Imports and changes with an AI agent instead of columns and mapping

An AI agent connected with a PAT token (a personal access token) loads and changes products from a sentence, with no column mapping. It is a program such as Claude Code, ChatGPT Codex, Gemini CLI or Cursor that works through the CloudCart Admin GraphQL API with the permissions of the token you give it.

An example: "Here is the supplier's price list in prices-11.xlsx. Update the prices by SKU, leave products that are not in the file untouched, and show me the first 5 before you save." With the CloudCart skills for AI agents, at 100 rows or more the agent first writes the current values to a CSV file and does a dry run that changes nothing; above 1,000 rows that file is mandatory. With an agent that lacks these skills, ask it to show the plan first. The file is the way back that the CSV import does not have.

How do you export orders and sales from CloudCart as a CSV file?

Orders are exported as CSV with the Export button at the top right of Orders. The export takes exactly the orders you see after filtering (period, status, payment), or the full history with no filter, in a fixed set of more than 40 columns with one row per product in an order.

  • Up to 50 orders. The file downloads straight to your browser.
  • More than 50 orders. The export runs in the background, CloudCart emails you a download link and keeps the file in the store's file manager.
  • Two-factor authentication. If it is on for your account, the platform asks for a code first.

The file is raw material for a pivot table in Excel. An AI agent with a Read Only PAT token skips that step: "show me revenue, order count and average order value for this month against last month" returns the numbers straight from the store.

How many products can you import on each plan?

Import limits follow your store's plan. The table follows the pricing and plans page, billed annually, prices excluding VAT.

LimitBaby Pack (€14)Starter Pack (€33)CC Pro (€83)CC Master (€249)
Products in the store1002,0007,500Unlimited
CSV import1002,0007,50010,000
XML Import: products per task1002,0007,50025,000
XML Import: active tasks1112
XML Import: total products ever imported1002,0007,500100,000
XML Sync: products1002,0007,50025,000

If a CSV import hits the product limit halfway, the task stops with a message saying how many rows were imported out of how many. In XML Import, products above the limit are not processed, and you get a notification and an email. The XML Import total counts every product ever imported with the app; only deleting the products resets it. You raise the limits with a higher plan or an extra product pack. The commission on sales is 0% on every plan, however many products you load.

The other direction: an XML feed from your store to Pazaruvaj, eMAG and Google

The same catalog goes out to price comparison sites and marketplaces as an XML feed CloudCart generates. The XML Feed app (Apps → XML Feed) has ready formats for Google Merchant Center, the Facebook catalog, TikTok, Pazaruvaj (a Bulgarian price comparison site), eMAG (an online marketplace), Glami, Skroutz and Criteo. You turn on a format and give its fixed URL to the channel.

A price changed by XML Sync or by the AI agent reaches Pazaruvaj and Google Shopping on the next read of the feed, with no second file.

These feeds also power product ads. The more complete your columns at import (SKU, barcode, brand, category, images), the fewer products the ad accounts reject.

Best practices for importing products

  1. Test with 10 to 20 rows, then load the full catalog.
  2. Keep the same columns every time. The mapping is not saved between imports.
  3. Import as drafts. Leave "Publish imported products" off, review 10 products, then publish.
  4. Fill in SKUs and barcodes. Later price and stock updates from a supplier, an ERP or an AI agent match on them.
  5. One category separator. "Clothing > Shirts" and "Clothing/Shirts" build two different trees.
  6. Check 3 image URLs in a browser before the import.
  7. Stock from your ERP. If stock lives in warehouse software such as Microinvest, a Bulgarian inventory program, bring it in through an integration.

Import mistakes to avoid

  • Re-importing a CSV to change prices. It creates duplicates. Use Google Sheets, XML Import with Update ticked or an AI agent.
  • Admin IDs in product.id. The number in a product's admin URL (such as 583) does not update product 583: the column is the code inside your file.
  • The header row switched off. The first line becomes a product called "Name".
  • A file in Windows-1251. Cyrillic text from a Bulgarian supplier turns into unreadable symbols. Save as CSV UTF-8.
  • Importing again because products are not visible yet. They appear on the storefront gradually while search refreshes, but they are in the admin right away.
  • Two imports at once. A store runs one CSV import at a time, on every plan.

If an import went wrong, the Imported with filter in the product list shows every product from one task: select them all, delete them in one go and upload the corrected file. Every way to load and edit a catalog is on the product catalog page, and a full move from another platform is on the migration to CloudCart page. Questions about a specific file go to support@cloudcart.com.

Frequently asked questions

Save the sheet in Excel as CSV UTF-8 and upload it under Products → Import → Import with CSV file. Files in .xls and .xlsx are not accepted. Map the columns in step 3 and select Submit.

product.id (your product code) and product.name (the name) are required. Variant rows also need variant.parent_id. Everything else is optional, and the CSV Template button downloads a sample file.

Create a task in XML Import or XML Sync and, in step 2, tick Update only on price and quantity. On every later read of the feed, only those fields change. XML Sync is for feeds that change every day.

No. The CSV import in CloudCart always creates new products, and uploading the same file again creates duplicates. Change existing products with Google Sheets, XML Import with Update ticked, or an AI agent.

In Orders, filter the period and select Export at the top right. Up to 50 orders download right away; for more, CloudCart emails you a link.

It depends on the plan: the store holds 100 products on Baby Pack, 2,000 on Starter Pack, 7,500 on CC Pro and unlimited on CC Master. All limits are on the pricing page.

Sources

  1. RFC 4180www.rfc-editor.org
  2. W3C specificationwww.w3.org
  3. Microsoft Supportsupport.microsoft.com
The CloudCart teamChecked against the platform documentation. Questions: support@cloudcart.com

Build your online store

The first 3 months on every plan are €1/month. Questions: support@cloudcart.com

Create a store for €1