A barcode inventory system connected to D1 and Webflow CMS sync operations

SoFlow built a phone-first, D1-backed inventory app that lets staff scan and track physical gear, then prepares dry-run Webflow listing syncs that deliberately exclude serial numbers, private notes, and client identity.
KST Inventory Barcode Scanner
Client
KST Inventory Barcode Scanner
Timeline
Case study draft
Services
No items found.
Website
About

A phone-first inventory system that stays private by default

This implementation connects operational inventory, barcode scanning, product lookup, Webflow listing preparation, and controlled sync jobs. It is a stronger system than treating Webflow CMS as the source of operational stock truth.
Challenge

A product catalog can't tell you what's actually in the room

Physical inventory isn't the same problem as a product catalog. The business needed to know what exact item exists, where it physically is, what condition it's in, whether it can be demoed or sold, and - separately - what subset of that should ever appear on the public website.

Goal

Give staff a phone-first tool, not a spreadsheet

Implement an installable Cloudflare Worker app backed by D1 that supports product lookup, missing-product capture, inventory item create/edit flows, listing profiles, Webflow payload previews, sync jobs, and a control room for D1, SureCart, Webflow, jobs, and diagnostics.

Result

A D1-backed inventory system with reviewed, dry-run Webflow sync

The inventory scanner gives demo products, secondhand listings, and stock review a safer operational foundation, with public sync always staged behind a review step.

Stack
Cloudflare Workers, Cloudflare D1, JavaScript, Webflow CMS, WordPress, SureCart, PWA
Systems
Webflow CMS, WordPress wp-json, SureCart, Cloudflare D1
Category
Commerce Systems
This is some text inside of a div block.

The brief was a practical inventory tool staff could run from a phone, keeping public listings in Webflow and commerce data in the shop stack rather than mixing all three together.

This is some text inside of a div block.

Physical inventory isn't the same as a product catalog. The business needed to know what exact item exists, where it is, what condition it's in, whether it can be demoed or sold, and what subset of that data should ever reach the public website.

This is some text inside of a div block.

The system had to keep private operational data separate from public listing data, support barcode-style workflows from a phone, default Webflow sync to reviewable dry-runs, and never send serial numbers, private notes, holder names, or client identity to Webflow.

This is some text inside of a div block.

SoFlow implemented an installable Cloudflare Worker app backed by D1, supporting product lookup, missing-product capture, inventory item create/edit flows, listing profiles, Webflow payload previews, sync jobs, and a control room covering D1, SureCart, Webflow, jobs, and diagnostics.

This is some text inside of a div block.

D1 owns physical inventory records and sync job state. The Worker's UI lets staff scan or enter product codes, create inventory items, prepare listing profiles, and review Webflow payloads before any staged or live CMS write happens.

This is some text inside of a div block.
  • Phone-first inventory and barcode-style workflow
  • D1-backed physical item records and product references
  • Missing-catalog-product review flow
  • Quick stock scanner with review JSON for stock adjustments
  • Dry-run Webflow sync jobs for demo and secondhand listings
  • Control room for D1, Webflow schema, sync jobs, and diagnostics
This is some text inside of a div block.

The inventory scanner gives demo products, secondhand listings, and stock review a safer operational foundation, with room to extend into public request workflows later.

This is some text inside of a div block.
  • D1 is the operational source of truth for every physical item
  • Webflow sync defaults to dry-run and staged targets, never live-first
  • Public listing payloads intentionally exclude serial numbers, private notes, holder names, and client identity
  • Control room exposes health, schema, payload, and sync job state for staff review
This is some text inside of a div block.

Why not just manage all of this inside Webflow CMS?

Webflow is good at presenting products, but physical inventory carries private fields - serial numbers, condition, holder names, lifecycle state - that shouldn't live in a public CMS. Keeping that in D1 lets Webflow stay a clean, reviewed public listing surface.

Can this support secondhand or demo listings?

Yes. Separating physical item state from public listing profiles makes it suitable for demo gear, used stock, secondhand listings, trade-ins, and consignment flows without extra rework.

Does the app write directly to Webflow?

No, not by default. The safe posture is review-first - sync jobs and dry-run payloads can be inspected before any live Webflow write is ever enabled.

This is some text inside of a div block.

This proves SoFlow can design operational systems where Webflow stays the public presentation layer while Cloudflare Workers and D1 own private workflow state, review gates, and integration safety.

This is some text inside of a div block.

Why not just manage all of this inside Webflow CMS?

Webflow is good at presenting products, but physical inventory carries private fields - serial numbers, condition, holder names, lifecycle state - that shouldn't live in a public CMS. Keeping that in D1 lets Webflow stay a clean, reviewed public listing surface.

Can this support secondhand or demo listings?

This is some text inside of a div block.

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Block quote

Ordered list

  1. Item 1
  2. Item 2
  3. Item 3

Unordered list

  • Item A
  • Item B
  • Item C

Text link

Bold text

Emphasis

Superscript

Subscript

This is some text inside of a div block.

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Block quote

Ordered list

  1. Item 1
  2. Item 2
  3. Item 3

Unordered list

  • Item A
  • Item B
  • Item C

Text link

Bold text

Emphasis

Superscript

Subscript

This is some text inside of a div block.
This is some text inside of a div block.
Before

Public listing content, stock visibility, and physical item state risked being mixed together across the CMS, commerce tools, and manual processes.

After

Physical inventory now lives in D1, and Webflow receives only reviewed public listing fields through controlled sync jobs.

This is some text inside of a div block.

Webflow CMS can display public items well, but it has no business being the operational source of truth for serial numbers, staff state, private notes, lifecycle events, or sync retries.

A dedicated backend is what makes it possible to validate, review, queue, and retry public listing syncs safely.

Let's talk

Ready to elevate your business?