← All projects
POS / Retail

Fulcrum POS

Deployed Next.js / TypeScript

The result

A retail operating system that connects checkout, trade-ins, inventory, customer loyalty, and online commerce across store workflows.

The challenge

A card-and-game store needed a point-of-sale that could handle complex inventory (card games, sets, singles, trade-ins), Shopify sync, payments, and SMS, plus a marketing site to front it. Off-the-shelf POS couldn't do trade-in flows or 3D-friendly cataloging.

What shipped

A Next.js and TypeScript retail application backed by MongoDB, with a separate synchronization service for commerce and catalog work. The implementation covers the full retail lifecycle, from intake and reservations through payment, returns, reconciliation, and reporting.

  • Sales, trade-ins, returns, gift cards, repairs, and preorder deposits within the retail workflow.
  • MongoDB transactions coordinate checkout writes; scoped inventory reservations protect stock allocated to another sale.
  • Payment integrations include split-card captures, refund handling, and recovery for interrupted checkouts.
  • Customer loyalty, store credit, and kiosk check-in connect customer activity to the transaction workflow.
  • Shopify synchronization spans product, inventory, and order workflows, with retry and recovery paths in the companion service.
  • Reporting uses MongoDB aggregation for sales, inventory health, drawers, and customer activity.
  • Catalog ingestion uses bounded work, leases, and release controls so background enrichment can yield to commerce workloads.

FULCRUM retail software connects the counter, inventory and online commerce for card-and-game stores. This case explains the operating workflows and the recovery rules behind them.

A retail system built around the store

FULCRUM grew around the operating needs of card-and-game retail: ordinary sales sit alongside trade-ins, singles, preorders, repairs, store credit, and online inventory. Treating each of those as a disconnected add-on would leave staff reconciling the gaps at the counter.

The application brings those activities into a shared retail workflow. Checkout connects customer activity and payment with inventory changes; intake and reservations handle stock before it becomes part of a completed sale. Command Center reporting gives operators a separate view of sales, drawers, and inventory health.

The engineering is in the transitions

MongoDB transactions coordinate checkout writes, and scoped reservations protect quantities already allocated to another transaction. Payment handling includes split captures, refunds, and recovery for interrupted checkouts. These are explicit parts of the implementation because a partially completed retail operation needs a recoverable state.

Loyalty and store credit follow the transaction boundary as well. A customer’s kiosk selection is not treated as the completed financial action; finalization owns the transition that affects the sale.

Connecting the physical and online stores

A companion synchronization service handles Shopify product, inventory, and order workflows, including retry and repair paths. Background catalog work uses bounded jobs, leases, and release controls so enrichment can yield to higher-priority commerce work.

The result is a system spanning the counter and the online store, with recovery and reporting built into the operating model. The screenshots show the transaction experience and the populated Command Center rather than a generic dashboard mockup.

Related engineering: MongoDB transactions and reporting, TypeScript applications, and Shopify integration.

What this project clarifies

A useful retail brief includes interrupted sales as well as successful ones. Identify which system owns stock and how staff should handle a payment or synchronization result that needs review.

For a related project, see retail integration development.

Have something like this in mind?

This is the kind of build I take on. Book a call and we'll scope yours.