coresmith.dev
← Toate lucrările

ERP de retail cu mai multe depozite + POS

Operațiuni retail2 luniechipă proprielivrat
Problema

Trei locații, un fișier Excel, nicio legătură cu fiscalul.

Stocul trăia în fișiere Excel copiate manual între locații. Casa de marcat nu știa ce e în depozit, iar nimic nu vorbea cu imprimanta fiscală, deci fiecare bon era retastat pe alt aparat.

Erorile de numărătoare se adunau: o vânzare într-un magazin nu vedea o rezervare din altul.

Abordarea

O schemă, un binar, offline din start.

O singură schemă PostgreSQL ca sursă de adevăr pentru stoc, prețuri și documente, cu clientul desktop vorbind cu ea printr-un strat subțire de Express. Clientul rulează în magazin și continuă să funcționeze când cade rețeaua.

Imprimanta fiscală a fost partea grea: comandată pe serial, din exact aceeași acțiune care încheie vânzarea, ca un bon să nu poată devia niciodată de la tranzacția înregistrată.

Arhitectura

Client desktop pe o bază de date adevărată.

Înveliș Electron, React 19 cu TypeScript, Zustand pentru starea locală și TanStack Query pentru cache-ul de server. Express și Sequelize în spate, PostgreSQL cu 43 de tabele care acoperă locații, mișcări, documente și audit.

ElectronReact 19TypeScriptZustandTanStack QueryMUIExpressSequelizePostgreSQLserialportTREMOL S
Rezultatul

De la vânzare la bon fiscal, dintr-un clic.

43tabele
3locații
2 lunipână în producție

Stocul e din nou un singur număr. Bonul fiscal se tipărește din aceeași tranzacție care înregistrează vânzarea, deci magazinul și evidența fiscală nu mai pot să se depărteze una de alta.

Ai nevoie de ceva asemănător?

Începe un proiect