Inspiration
When a small shop’s website goes offline, its products and customers still exist—but its ability to take orders may disappear.
A merchant might have a stock spreadsheet, an older product PDF and a folder of photos. Rebuilding from those records takes effort, especially when prices disagree or inventory is outdated.
We created RestoreCart to turn surviving records into a temporary storefront while keeping uncertain information visible. Our guiding principle is simple: AI helps reconstruct the shop; the seller approves the facts; PayPal handles checkout.
What it does
RestoreCart brings sellers and buyers together in one application.
Sellers can upload CSV files, PDFs and product images, then use Gemini to reconstruct product drafts. Gemini identifies conflicting information, proposes details and provides source references. Sellers review the findings, confirm physical stock, allocate units for emergency sales, preview the storefront and publish.
Buyers can search published products, see prices and shop names, add items to a basket and pay through PayPal sandbox. Their receipt shows progress from payment checking to preparation, ready for pickup and collection.
Sellers manage those orders, schedule pickup appointments, download sales reports and request full sandbox refunds for eligible uncollected orders. Refunding payment and returning items to stock require separate actions.
The complete journey is:
Upload records → review evidence → approve products → publish → accept payment → fulfill and track orders.
An optional WooCommerce connection entry is also implemented. Sellers can enter their store URL and API credentials themselves; real-store recovery remains pending verification.
How we built it
We built RestoreCart with React and TypeScript for the interface, Express for the server and SQLite for operational records.
Gemini interprets source documents and images, proposes product information and helps sellers resolve ambiguity. Responses are validated before use. A genuine saved review can be replayed for demonstrations and is clearly labelled, avoiding unnecessary API calls.
PayPal is central to checkout. The server creates sandbox orders and verifies captured payment details before recording a purchase as paid. Stock reservations protect allocated inventory during checkout, while reconciliation logic handles uncertain payment outcomes.
We separated draft products from the published catalog so unfinished edits do not immediately change what buyers see. Server-side ownership checks, session protection and validation guard seller operations.
AG Grid Community provides searchable, sortable order management. An optional Bryntum Scheduler Pro trial displays pickup appointments, with a plain appointment-list fallback. Render hosts the application.
For the optional WooCommerce connector, credentials are encrypted server-side. Connection checks are read-only, and safeguards restrict destination URLs, private-network access, redirects and oversized or slow responses.
Challenges we ran into
Reconciling conflicting records. A plausible product listing is not necessarily accurate. We needed to show conflicting prices beside their supporting evidence and let the seller make the final decision.
Separating historical stock from physical stock. An uploaded spreadsheet cannot prove what is available now. We added physical-count confirmation and a separate allocation for RestoreCart sales.
Handling uncertain payments. Returning from checkout does not prove payment succeeded. We retained a visible checking state until server verification establishes the outcome.
Keeping refunds and inventory consistent. Returning money does not establish that an item is physically available to sell again. Restocking therefore requires a separate seller confirmation.
Simplifying the interface. Early screens exposed too much technical detail. We reorganized the seller experience around Shop editor, Orders, Recovery and Settings, with supporting details available when needed.
Accomplishments that we're proud of
We completed a working journey from reconstructed catalog to buyer checkout, seller fulfillment and pickup tracking.
A hosted verification completed an actual $52 PayPal sandbox payment, followed by seller order handling and buyer status updates. This was a sandbox transaction, not commercial revenue.
Our latest automated suite passes 125 tests, covering validation, account isolation, stock handling, payment and refund behavior, recovery logic and connector safeguards. The production build also passes.
We are particularly proud of the boundaries between AI assistance, seller decisions and verified financial state. AI cannot silently approve stock, publish listings or mark an order paid.
What we learned
AI adds value when it helps people understand incomplete evidence and make better decisions.
We learned to distinguish a suggested product detail from a confirmed fact, a checkout attempt from a verified payment, and a refund from a physical stock return.
We also learned that a coherent product experience matters as much as individual integrations. Clear next steps, useful error messages and visible order progress make the underlying technology understandable.
What's next for RestoreCart: AI-Powered Store Recovery
Our next priorities are to test with real merchants, measure the time and corrections needed to reopen a catalog, verify WooCommerce recovery against a consenting merchant’s test store, and activate durable hosted storage.
RestoreCart is currently a resettable sandbox prototype. Its default free hosted storage may lose records after restart or redeployment. The application uses one configured PayPal sandbox merchant; independent seller payment onboarding is outside the current scope.
Our goal is to help small merchants reopen from the records they have—and keep every emergency order traceable.
Built With
- ag
- bryntum
- checkout
- express.js
- gemini
- grid
- node.js
- paypal
- react
- render
- sqlite
- typescript
- vite
- woocommerce
Log in or sign up for Devpost to join the conversation.