Sample E-commerce Dataset Generator

Fake product catalog data for shop demos

Generates a synthetic e-commerce dataset with products, SKUs, prices, categories, stock levels, and ratings, exportable as JSON or CSV. Perfect for demoing shopping platforms, analytics dashboards, and import pipelines. Runs entirely in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What fields does each product have?

Each row includes an id, a generated name, a SKU, a category, a price, a discount percentage and resulting sale price, stock quantity, an in-stock boolean, a rating out of five, a review count, and a short SKU-based description. Prices and discounts are internally consistent.

This generator produces a believable synthetic e-commerce catalog — products with names, SKUs, prices, discounts, stock levels, and ratings — that you can drop into demos, analytics dashboards, seed scripts, and import pipelines. Every row is internally consistent, so the data behaves correctly when your tooling does maths on it.

Why synthetic data matters for e-commerce development

Using real product data from a live catalog in development and testing creates several risks: real prices might leak to unintended audiences, privacy policies may not cover development environments, and live catalog data is often messy, incomplete, or outdated. Synthetic data solves all three problems — it is safe to share, screenshot, and publish, it is structurally complete, and it is generated fresh on demand.

For e-commerce specifically, the challenge with naive random data is that fields must be internally consistent. If salePrice is random rather than derived from price × (1 − discount%), then any analytics code that checks margin or discount logic will produce nonsense. This generator derives all commercial fields from each other, so the data stays coherent across calculations.

What each product record contains

FieldDescription
idUnique integer identifier
nameComposed from adjective + material + product noun
skuCategory prefix + zero-padded sequence (e.g., ELEC-00042)
categoryOne of several standard retail departments
priceFull price, within a category-plausible range
discountRandom percentage, often 0 for most items
salePriceround(price × (1 − discount / 100), 2) — always derived, never random
stockQtyInteger quantity on hand
inStockBoolean derived from stockQty > 0
ratingRandom 3.0–5.0, reflecting realistic review skew
reviewCountScales with rating (highly rated products tend to have more reviews)
descriptionShort SKU-based description string

How it works

For each product the generator composes a name from adjective, material, and noun word pools, assigns a category, and derives the commercial fields. Because salePrice is computed from price and discount rather than being random, any revenue or margin calculation you run against the dataset gives sensible results. Export as JSON for APIs and seed files, or as CSV with a header row and proper quoting for spreadsheets and bulk importers.

Practical applications

UI development: Generate 10–20 products for a realistic product listing page without needing to mock API calls. The names and images (if you add placeholder URLs by convention) look like a real catalog.

Analytics testing: Generate 500+ products and import into a BI tool or analytics dashboard to test chart rendering, filtering, and aggregation. The price/discount/rating distribution will produce meaningful chart shapes.

Database seeding: Paste a JSON array into a seed file for testing order flows, cart logic, and checkout. Because prices and quantities are internally consistent, stock-check and discount-application logic behaves correctly.

Import pipeline testing: Use the CSV export to test your bulk product import tool, including edge cases like products with 0 stock, 0 discount, or maximum rating values.

Tips

Use a small row count for quick UI screenshots and a few hundred rows to stress-test tables, pagination, and chart rendering. The CSV exporter quotes any field containing a comma or quote so it never corrupts columns. Regenerate for a fresh catalog, or copy and save a dataset you want to reuse as a stable fixture in automated tests.