SHOPIFY SYNTHGitHub ↗

Shopify Synth

Generates realistic, seed-reproducible Shopify store data: orders, customers, and catalog records. Calibrated to real D2C behavior, including COD-heavy payment splits, return-to-origin risk, discount-driven demand, and festival seasonality. Built to test pipelines and dashboards against data that behaves like a real store.

1
Upload a catalog

Bring your own product export CSV, or use the sample.

2
Set parameters

Click a preset to quick-fill, or dial in your own values.

3
Add overrides

Optional. Layer in festival spikes or campaign windows, or skip this step entirely.

4
Generate

Download as JSON or a Shopify-shaped order export CSV.

01 / GENERATION PERIOD

Generation period

Same seed + same params = identical output every run


02 / PRODUCT CATALOG

Product catalog

Upload a Shopify product export CSV. This is required: generated orders need real SKUs and product IDs to reference.

Download sample CSV

03 / PARAMETERS

Parameters

Quick-fill (optional)

Click a preset to fill the fields below. You can still edit any value after.

Base parameters

VOLUME
≥ 0
≥ 0
×
0–1
CUSTOMERS
0–1
0–1
PAYMENTS & RETURNS
0–1
0–1
0–1
DISCOUNTS & BASKET
0–1
1–10
0–1

04 / TIMELINE OVERRIDES

Timeline overrides (optional)

Your parameters above describe an ordinary day. Some days aren't ordinary: a festival spike, a discount push, a slow decline. Paste one row per time window below to change specific parameters for that window only.

You can add as many rows as you need, each covering a different date range. Anything left blank in a row keeps reading from the parameters above.

Leave this empty to generate the full period using only your parameters above. This section is optional.

EXAMPLE: TWO SEPARATE OVERRIDE WINDOWS
Festival spike, Oct 15 to Nov 5. Four parameters move together:
orders_per_day_mean35 to 95discount_rate0.12 to 0.40items_per_order_mean1.3 to 2.4multi_unit_rate0.15 to 0.35
Post-festival slowdown, Jan 5 to Jan 20. Just two parameters this time:
orders_per_day_mean35 to 18new_customer_rate0.35 to 0.20

Each row overrides only what you name. Everything else in that window still reads from your parameters above. Add a third row, a tenth, however many windows this dataset needs.

OVERRIDES.CSV

05 / GENERATE

Generate

Upload a product catalog. Fill in all parameters.