Free E-commerce Mock Data Generator
Generate five linked tables in one click: customers, products, orders, order items and payments. IDs match across tables, prices fit the product, totals add up, and sales spike in festive seasons. Download as ZIP, CSV, JSON or SQL. Your data is generated in your browser, with no login.
Preview shows the first 100 rows. Downloads contain every row.
What you get
Every table has a primary key, and child tables carry foreign keys, so joins, SQL constraints and Power BI or Tableau relationships work straight away.
| Table | Key columns | Links to |
|---|---|---|
| customers | customer_id, full_name, email, phone, city, state, signup_date, loyalty_tier | - |
| products | product_id, sku, product_name, category, brand, unit_price, stock_qty, avg_rating | - |
| orders | order_id, order_date, status, channel, coupon_code, subtotal, discount, shipping_fee, order_total, is_flagged_fraud | customers |
| order_items | order_item_id, quantity, unit_price, line_total | orders, products |
| payments | payment_id, payment_method, payment_status, amount, transaction_id, paid_at | orders |
Realism built in: a few best-sellers and a long tail of slow movers, festive-season and Black Friday peaks, cancellations and returns, refunds, free-shipping thresholds, coupons and a small share of flagged orders. Turn on Messy data mode to add blanks, duplicate customers, odd casing and typos, which is useful for practicing data cleaning.
Import it in a minute
PostgreSQL: unzip, then run:
psql -d mydb -f schema.sql \copy customers FROM 'customers.csv' CSV HEADER \copy products FROM 'products.csv' CSV HEADER \copy orders FROM 'orders.csv' CSV HEADER \copy order_items FROM 'order_items.csv' CSV HEADER \copy payments FROM 'payments.csv' CSV HEADER
Python (pandas):
import pandas as pd
orders = pd.read_csv("orders.csv", parse_dates=["order_date"])
customers = pd.read_csv("customers.csv")
sales = orders.merge(customers, on="customer_id")
print(sales.groupby("city")["order_total"].sum().sort_values(ascending=False).head())
Power BI or Tableau: load all five CSVs. Matching column names let the tool detect relationships automatically.
Who uses it
- Developers and QA teams testing checkout, order and payment flows
- Data analysts and BI teams building sales dashboards without production data
- Students practicing SQL joins, window functions and data cleaning
- Startups and agencies building demos and prototypes
FAQ
Is the e-commerce mock data generator free?
Yes. It is free, needs no login and runs in your browser.
Is the generated data real?
No. Every customer, product, order and payment is randomly generated for testing, demos and learning.
Do the tables link to each other?
Yes. Orders reference customers, order items reference orders and products, and payments reference orders. In messy mode a few duplicate customer rows are added on purpose, so schema.sql then skips primary and foreign key constraints.
Can I get the exact same dataset again?
Yes. The same seed, row count, locale, messy setting and latest order date always produce the same data. Use Copy share link to save or share your settings.
How many rows can I generate?
Up to 20,000 customers, which creates roughly 35,000 orders and 55,000 order lines. Large sizes depend on your device.
Is my data uploaded anywhere?
No. The datasets are generated locally and are never sent to Docynx servers. Like most websites, this page uses analytics and ads.
Related tools: Finance Mock Data Generator • Healthcare Dataset Generator • Generic Sample Data Tool • Date & Time Difference Calculator • Compare PDF Documents