Sales email to ShipStation · 2026
Parse a sales email, hold it or build a label
Laboratoryscrocle.cloud/demo/shipstationIndependent engineer

Orders arrive by email, and staff copy the shipping address, SKU, and quantity into ShipStation by hand. A missing ZIP code still produces a label, so a bad address can ship. The goal is to extract the order, validate it, and hold it before anything ships.
The constraint
This demo does not watch Gmail and does not call a live ShipStation store. Extraction is patterns plus Pydantic, not a model. Production would attach the inbox and POST the same JSON.
Built with
PythonFastAPIPydantic
How it works
Email in. Parse and validate. If it is complete, build order and label JSON. If not, hold. No live carrier.
- Sales email
- Parse
- Validate
- ShipStation JSON
- Label preview
- Hold / review
The calls that shaped it
Each decision with the pressure that forced it and the price it keeps costing.
Check before you print
A bad city, state, or ZIP goes to hold. The demo will not invent a label for an incomplete address.
Payloads you can read
The create-order and create-label JSON are the same shapes ShipStation expects. You can see them. They are not sent.
Open an inbox message and run it. A complete order builds ShipStation JSON and a label preview; a missing ZIP goes to hold. Try the missing-ZIP case: that hold path is the part that protects a real store.
Where it stands
Demo. Live at scrocle.cloud/demo/shipstation. The extract, validate, hold path runs against example orders.
What was handed over
- How to run the FastAPI demo locally
- That ShipStation writes are simulated
- What a production inbox watch would add