Uploading products with CSV lets Non-Shopify merchants import a product catalog into Tolstoy without connecting a Shopify store. It helps merchants use products in shoppable Tolstoy experiences, tag media to products, and keep product data available for website widgets. This CSV import flow does not show a separate paid-plan gate or its own publish button, although any live widget that uses those products still needs the plan required for that widget type.
How to Set Up
Go to Settings > Set up store.
Click Set up store then click Upload your products from CSV
Prepare your CSV file using the column names in CSV columns below.
Make sure the required columns are included:
id,title,url,imageUrl, andprice.Choose how you want to import the catalog:
Connect URLorUpload File.Use
Connect URLif your CSV is hosted online and you want Tolstoy to be able to refresh it automatically.Use
Upload Fileif you want to import a CSV directly from your computer as a one-time upload.If you chose
Connect URL, paste the CSV file URL and clickConnect.If you chose
Upload File, clickChoose CSV fileand select the file from your computer.Wait for the import status to update. Tolstoy may show messages such as
Product import requested,Product import in progress, orProduct import completed.If Tolstoy shows a
Default currencyselector after the import is set up, choose the currency you want applied.If you connected a CSV URL and want ongoing updates, enable or keep the
Automatically refresh every 24 hoursoption turned on.Open
Settings>Product Catalogand confirm the imported products appear correctly.
CSV columns
Column names are matched loosely — capitals, spaces, underscores and hyphens are ignored, so Image_Link, image link and imagelink all work.
Required. A row missing any of these is skipped.
id— your unique product or variant ID. If two rows share anid, the last one in the file wins.title— product name.url(also accepted aslink) — link to the product page on your site.imageUrl(also accepted asimage_link) — main product image.price— current price, for example37.95.
Optional.
inventory(also accepted asavailability) — whether the product can be bought. See Stock and availability below.descriptionHtml(also accepted asdescription) — product description, plain text or HTML.images— additional images, separated by commas.compareAtPrice(also accepted assale_price) — the higher “was” price, shown struck through.currencyCode— for exampleUSDorILS. Falls back to your default currency.currencySymbol— for example$. Worked out from the currency code when left empty.brand— shown as the product’s vendor.item_group_id(also accepted asitemGroupId) — groups rows into one product with several variants. Rows sharing anitem_group_idbecome variants of it, and each row’sidbecomes that variant’s ID.metafield_<name>— any extra detail to keep with the product, for examplemetafield_material.
Using a Google Merchant Center or Meta feed
If you already export a standard product file for Google Merchant Center or Meta Commerce, you can connect or upload it as it is — no rebuilding. Tolstoy reads Google’s own field names: id, title, description, link, image_link, price, sale_price, availability, brand and item_group_id.
Fields Tolstoy does not use —
condition,gtin,mpn,google_product_category,product_type,shipping,additional_image_linkand the rest — are ignored rather than rejected, so you do not have to strip them. If you want the extra images, copy them into animagescolumn.Google writes availability as
in stock,out of stock,preorderorbackorder, and some exports use the schema.org URL form. All of them are understood — see Stock and availability below.Tolstoy stores the price exactly as you send it, so keep
pricenumeric —37.95— and put the currency incurrencyCode. A Google-style37.95 ILSis imported as it is.
Stock and availability
The inventory column — or availability, if you export a Google or Meta shopping feed — tells Tolstoy whether a product can be bought. It takes either a number or a word.
A number —
25,0,3 available— stores that exact quantity.0means out of stock.in stock,available,available for order,preorder,presale,backorder,limited availability— in stock, with no specific quantity.out of stock,sold out,unavailable,not available,discontinued— out of stock.http://schema.org/InStock,http://schema.org/OutOfStockand the other schema.org values — the same as the plain words above.
Wording is flexible: in stock, in_stock, IN STOCK and In-Stock all mean the same thing, and a count in brackets does not confuse it — out of stock (0) is still out of stock.
If you leave the column out, or a value is one Tolstoy cannot read, the product is treated as available and is never shown as out of stock. Stock is optional, and a catalog with no stock column works normally.
So to mark something out of stock, say so. Include the column, with either 0 or out of stock on that row. Tolstoy cannot infer it from a file that does not mention stock.
English and schema.org wording is recognised today. If your feed says ausverkauft or agotado, use 0 or out of stock instead, or contact support and we will add your wording.
Troubleshooting / FAQs
All of my products show as out of stock, but they are in stock on my site.
Check whether your file has an inventory or availability column, and what is in it. If there is no such column, there is nothing to fix — products import as available. If the column holds 0 on those rows, your export is writing a zero quantity: correct it at the source, or remove the column entirely. If it holds wording that is not listed under Stock and availability — including wording in another language — replace it with in stock or out of stock, or contact support so we can add it. After correcting the file, wait for the next sync or re-upload it to apply the change straight away.
Some of my products disappeared after a sync.
Each sync replaces your catalog with the contents of the file, so any product that is not in the latest file is removed. A row is also skipped when id, title, url, imageUrl or price is empty. Check those five columns are filled on every row.
Why did my CSV import fail?
The most common reasons are missing required columns, invalid column names, an unreadable CSV file, or a URL Tolstoy cannot access. Check the file structure and try again.
Which CSV columns are required?
Tolstoy requires id, title, url, imageUrl, and price. Other supported columns are optional.
What is the difference between Connect URL and Upload File?
Connect URL links Tolstoy to a hosted CSV and can refresh it automatically every 24 hours. Upload File imports a CSV from your computer as a one-time upload.
Why are my products not showing up yet?
The import may still be processing. Wait until the status shows that the import is complete, then check Product Catalog. Keep in mind that a connected file syncs once every 24 hours, at around 11:00 UTC, so you might have to give it time before you see your missing products.
Can I use CSV product upload without Shopify?
Yes. This flow is specifically for Non-Shopify or manual website setups.
Why are the prices or currency incorrect?
Check the values in price, currencyCode, and currencySymbol, and set the Default currency in Tolstoy if needed.
How do I update products later?
If you used Connect URL, refresh or keep recurring sync enabled. If you used Upload File, upload a new CSV file when your catalog changes.


