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

SoFlow built a phone-first inventory system that tracks physical gear in D1 and prepares public Webflow listing sync without leaking private stock details.
KST Inventory Barcode Scanner
Client
KST Inventory Barcode Scanner
Timeline
Services
No items found.
Website
About

Challenge

Goal

Result

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 to create a practical inventory tool for physical products that staff could use from a phone while keeping public listings in Webflow and commerce data in the shop stack.

This is some text inside of a div block.

Physical inventory is not the same as a product catalog. The business needed to know what exact item exists, where it is, what condition it is in, whether it can be demoed or sold, and what public data should appear on the website.

This is some text inside of a div block.

The system had to separate private operational data from public listing data, support barcode-style workflows, default Webflow sync to reviewable dry-runs, and avoid sending 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. It 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.

This is some text inside of a div block.

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

This is some text inside of a div block.
  • Phone-first inventory and barcode 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 public 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 creates a safer foundation for demo products, secondhand listings, stock review, and future public request workflows.

This is some text inside of a div block.
  • D1 is the operational source of truth for physical items
  • Webflow sync defaults to dry-run and staged targets
  • 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 store all inventory data in Webflow CMS?

Webflow is useful for public presentation, but operational inventory needs private fields, lifecycle state, reviewable sync jobs, and retry behavior that belong in a backend system.

Can this support secondhand or demo listings?

Yes. The architecture separates physical item state from public listing profiles, which makes it suitable for demo gear, used stock, client secondhand listings, trade-ins, and consignment flows.

Does the app write directly to Webflow?

The current safe posture is review-first. Sync jobs and dry-run payloads can be inspected before any live Webflow write is enabled.

This is some text inside of a div block.

This implementation proves that SoFlow can design operational systems where Webflow remains 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 store all inventory data in Webflow CMS?

Webflow is useful for public presentation, but operational inventory needs private fields, lifecycle state, reviewable sync jobs, and retry behavior that belong in a backend system.

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

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

After

After the implementation, physical inventory could live in D1 while Webflow received only reviewed public listing fields through controlled sync jobs.

This is some text inside of a div block.

Webflow CMS can display public items, but it should not be the operational source of truth for serial numbers, staff state, private notes, lifecycle events, or sync retries.

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

Let's talk

Ready to elevate your business?