Normalize JPEG Inventory Feed to Parquet

Convert supplier JPEG stock feeds into clean Parquet rows with normalized SKUs and inventory levels.

Drop your JPEG file here (or click to browse).
(50 MB or less file)
0%
Uploading...
Loading...
Loading…
Sign-up to upload larger files
HOW IT WORKS

From Supplier Feed to Store-Ready Parquet

Watch a supplier's JPEG stock feed become a clean Parquet with the tools already in Data Prep: one row per SKU, real quantities, and a stock status your store understands.

DataConverter.io
kestrel-inventory.jpg(1.4 KB)
Start Over
Tools
Transform
Aggregate
Combine
History (0)
No actions applied yet
Showing 1 to 9 of 9 records
#skuUPCDescriptionStatuscodeQtyNextShipment
1KK-1042084213010422Cast Iron Skillet, 10 inIn StockRNO18
2KK-1042084213010422Cast Iron Skillet, 10 inIn StockATL6
3KK-1043084213010439Cast Iron Skillet, 12 inLow StockRNO2
4KK-1043084213010439Cast Iron Skillet, 12 inLow StockATL0
5KK-2210084213022104French Press, 34 ozBackorderRNO02026-11-04
6KK-2210084213022104French Press, 34 ozBackorderATL02026-11-04
7KK-3105084213031052Chef's Knife, 8 inIn StockRNO50+
8KK-3105084213031052Chef's Knife, 8 inIn StockATL14
9KK-0877084213008771Enamel Dutch Oven, 5.5 qtDiscontinuedRNO3
  • Prev
  • 1
  • Next
store-inventory.parquet5 SKUs · 5 columns

UploadOne row per warehouse: 9 rows for 5 items

Show Shoppers the Stock You Actually Have

Supplier feeds split stock across warehouses, label it in words, and leave out restock dates. A normalized feed fixes all of it before your store imports a single row.

9 warehouse counts1 number per SKU0 units oversold
Every warehouse

Add up stock across all your warehouses.

Feeds list each warehouse on its own. Summarize Data adds them into one number per SKU, so 18 in Reno and 6 in Atlanta become 24.

kestrel-inventory.jpg · on handTotal
KK-1042 24
KK-1043 2
KK-2210 0
KK-3105 64
KK-0877 3
RNO warehouseATL warehouse
No overselling

Never sell the last units twice.

Hold back a safety buffer and take discontinued items to zero, so a Low Stock item with 2 left shows as out of stock.

Feed saysKK-1043Low Stock · 2 on hand
Store gets0 to sellout_of_stock
Feed saysKK-0877Discontinued · 3 on hand
Store gets0 to selldiscontinued
Backorders

Tell shoppers when it's back.

The supplier's next shipment date becomes a restock date your store can show, instead of a plain out of stock.

French Press, 34 oz KK-2210 · 0 on hand Back in stock Nov 4 NextShipment 2026-11-04 → RestockDate
SCHEDULED FEED PULLS

Normalize Inventory Feeds via API

Save your transformation steps as a template, post incoming supplier feeds directly to the API, and receive clean Parquet files ready for store import.

Explore the API
normalize-inventory-feed.sh
curl -X POST "https://dataconverter.io/api/v1/convert/template" \  -H "Authorization: Bearer YOUR_TOKEN_HERE" \  -F "templateId=YOUR_TEMPLATE_ID" \  -F "file=@kestrel-inventory.jpg" \  --output store-inventory.parquet✓ 200 OK · store-inventory.parquet · 1,284 SKUs

Frequently asked questions

How do I add up stock across warehouses?

Use Summarize Data to Group By SKU and Sum the quantity column. Use First on attributes like status or restock date to keep each item's details.

How do I turn values like "50+" or "Low Stock" into numbers?

Use Add Columns expressions. parseInt(replaceString(toString(Qty), "+", "")) reads 50+ as 50, and conditional expressions like iif(...) set stock status directly from counts.

Can I handle feeds from several suppliers?

Yes. Save separate templates for each supplier configuration with mapped standard output columns. Every feed converts into a unified catalog structure regardless of supplier formatting differences.

Will the Parquet export keep the leading zeros in UPCs and GTINs?

Yes. Barcodes are read as text, so their leading zeros stay.