inocode
Soluții digitale, rezultate reale
case study · Retail · 5 luni

ODA.

Aplicație pentru echipa de teren — inventar, comenzi și livrări offline-first pe 60+ magazine.

60+
magazine în producție
Cum am ajuns aici· 3 min
ODA — hero
O
ODA
Retail · public

Aplicație pentru echipa de teren — inventar, comenzi și livrări offline-first pe 60+ magazine.

mobilesaas
Stagiu
Retail · rețea 60+ locații
Echipă
3 ingineri + 1 designer
Durată
5 luni
Stack
React Native · SQLite · TypeScript
timp inventar
−55%
funcțional offline
100%
tl;dr · 30 secunde
01 · Problema

Echipele din magazine pierdeau ore întregi la inventar pentru că aplicația veche pica dacă cădea net-ul. Refăceau totul pe hârtie.

02 · Ce am făcut

Am făcut o aplicație care merge normal chiar și fără internet. Se sincronizează singură când semnalul revine.

03 · Rezultatul

Inventar făcut de 2× mai rapid, date în ERP în 5 minute (nu 3 zile), 94% adopție voluntară.

C
C.N.
Director Operațiuni · ODA
Prima aplicație pe care oamenii de pe teren o folosesc voluntar. Restul le foloseau că erau obligați."
01Problema
Aveam magazine în zone cu semnal 3G intermitent. Aplicația veche pica la mijloc de inventar. Reluam de la zero.
Ce costa asta, în bani și timp

Un inventar pierdut = 60-80 min × 2 oameni × 60 magazine. Plus 2-3 zile întârziere până datele ajungeau în ERP, deci decizii de aprovizionare luate pe informație veche.

ODA operează 60+ magazine, multe în orașe mici. Aplicația web anterioară cerea conexiune stabilă. Când pica net-ul la mijloc de inventar (400+ SKU-uri), datele se pierdeau. Personalul făcea inventar pe hârtie, apoi îl introducea seara — cu erori și întârzieri de 2-3 zile.

02Decizia

Offline-first, nu offline-tolerant

Diferența e crucială: aplicația scrie mereu local, sincronizează când poate.

Opțiunea A

PWA cu service worker

+ pro

Reutilizează codul web. Fără app store.

− contra

iOS taie cache-ul în ~2 săptămâni. Nu poți programa notificări fiabil.

Opțiunea B

Nativ separat iOS + Android

+ pro

Performanță maximă. Access la toate API-urile.

− contra

2× cod, 2× echipă, 2× buguri. Buget dublu pentru zero valoare vizibilă utilizatorului.

alegerea noastră
Opțiunea C

React Native + SQLite local

+ pro

Un cod, două platforme. SQLite = zero-config offline. Sync în background când e net.

− contra

Necesită arhitectură sync serioasă (conflict resolution, deduplicare).

Am refuzat PWA pentru că știam ce se întâmplă pe iOS după 2 săptămâni fără deschidere. Nu vrei să afli asta în producție.

Diana, mobile lead
03Build

SQLite local + sync incremental

Aplicația scrie tot ce faci direct în telefon, imediat. Nu așteaptă net-ul niciodată. Când semnalul revine, trimite datele în tăcere, în fundal. Utilizatorul nu vede diferența între „am net” și „nu am net” — pentru el, merge la fel.

cum funcționează, pe scurt
Ce intră
Scanare / mutare / comandă în magazin
Ce facem
Salvat instant local, trimis când e semnal
Ce iese
Datele în ERP în <5 min, fără să pierdem nimic
execuție · în progres
cât a durat
5sprints
L1L5
timeline execuție
  1. L1
    Discovery în 3 magazine pilot
  2. L2
    UI + local DB, sync stub
  3. L3
    Sync real, conflict resolution
  4. L4
    5 magazine pilot, iterații pe UX
  5. L5
    Roll-out 60 magazine
ODA · impactul
60+
magazine în producție

Aplicație pentru echipa de teren — inventar, comenzi și livrări offline-first pe 60+ magazine.

−55%
timp inventar
100%
funcțional offline

Prima aplicație pe care oamenii de pe teren o folosesc voluntar. Restul le foloseau că erau obligați."

C.N., Director Operațiuni
04Launch

Ce vede echipa de pe teren

Inventarul unui magazin de 400 SKU-uri se face acum în ~35 minute (față de ~80 anterior), fără dependență de net. Datele sunt în ERP înainte ca gestionarul să ajungă la mașină. Erorile de introducere au scăzut aproape complet — scanerul nu greșește.

Timp inventar / magazin
80min
35min
−55%
≈ 45 min × 60 magazine × 2-3 ori/lună recuperați
Erori de introducere
~4% linii
<0.3%
−90%
aprovizionare corectă, fără stoc mort
Delay date în ERP
2-3 zile
<5min
quasi-live
decizii pe informație de azi, nu de acum 3 zile
Adopție echipă
n/a
94%
solid
o folosesc voluntar, nu forțat
Produsul live
05După

Unde e proiectul azi

Aplicația e în producție pe 60+ magazine. Am predat codul echipei lor interne în T2 2025. Facem review lunar și avem opțiune de intervenție pe incident. Următoarea etapă: modul comenzi B2B pentru clienți fideli.

Un an mai târziu

Cu timpul câștigat, echipele din magazine fac merchandising propriu. Erorile de aprovizionare au scăzut și au recuperat marja pe SKU-urile lente.

Prima aplicație pe care oamenii de pe teren o folosesc voluntar. Restul le foloseau că erau obligați.
C.N.Director Operațiuni · ODA
angajamentul inocode

Ce primești și ce nu riști.

ce include
  • Discovery structurat: 2 săptămâni, arhitectură + risc + plan de sprint
  • Cod scris de seniori (7+ ani), nu de juniori supervizați
  • Deploy, monitorizare, alarme și runbook pentru echipa ta
  • Handover complet: docs, video walkthrough, sesiune de knowledge transfer
  • SLA opțional post-lansare, cu inginer on-call — nu ticket queue
garanția inocode

Dacă în primele 2 săptămâni de discovery nu vezi valoare concretă, oprești fără cost și primești înapoi tot ce ai plătit.

01Fixed scope pe prima fază. Fără „mai adăugăm după".

02Codul e al tău din prima zi, pe repo-ul tău. Zero lock-in.

03Îți spunem „nu" dacă cererea ta nu-ți rezolvă problema.

Se aplică și ție dacă...

Nu ești ODA. Dar problema ta ar putea semăna.

  • Ai echipe pe teren în zone cu semnal slab
  • Angajații fac muncă dublă: pe hârtie, apoi în calculator
  • Rețea de locații în care schimbări mici cost mult să le rulezi
Hai să vorbim 20 min · fără sales→ contact
pasul următor

Ai o problemă similară cu ce a avut ODA?

30 minute, gratuit. Vii cu contextul, plecăm cu 2-3 direcții concrete. Fără prezentări generice.

Case study PDF — în curând
Nu ești în industria asta?

Am făcut asta pentru Retail. Aceleași principii le aplicăm și la site-uri, aplicații mobile, ERP-uri sau marketplace-uri. Instrumentul e diferit — gândirea e la fel.