👥 Total Users: – 🟢 Online Now: –

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.

All tables
This table

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.

TableKey columnsLinks to
customerscustomer_id, full_name, email, phone, city, state, signup_date, loyalty_tier-
productsproduct_id, sku, product_name, category, brand, unit_price, stock_qty, avg_rating-
ordersorder_id, order_date, status, channel, coupon_code, subtotal, discount, shipping_fee, order_total, is_flagged_fraudcustomers
order_itemsorder_item_id, quantity, unit_price, line_totalorders, products
paymentspayment_id, payment_method, payment_status, amount, transaction_id, paid_atorders

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

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

Explore Free Online PDF & Image Tools by Docynx