Modulul de vânzări și comenzi într-un ERP la comandă

Cum rezervă stocul, aplică regulile de preț și urmărește starea comenzii modulul de vânzări dintr-un ERP la comandă, de la ofertă la facturare.

Andrei Badulescu
Andrei Badulescu18 July 2026 · 16 min citit
Copertă modul vânzări și comenzi ERP: ilustrație abstractă a fluxului de comandă, paletă brand cu accent portocaliu

Un ERP la comandă nu își dovedește valoarea în rapoarte. O dovedește în modulul care transformă o ofertă în comandă confirmată, rezervă stocul corect și declanșează factura la momentul potrivit — modulul de vânzări și comenzi.

Modulele unui ERP la comandă tratează pe scurt acest traseu: ofertă → comandă confirmată → rezervare de stoc → livrare parțială sau totală → facturare. Articolul de față intră în mecanica reală din spatele lui: cum rezervă sistemul stocul la confirmare, cum se aplică regulile de preț per client și canal fără recalcul manual, prin ce stări trece o comandă de la draft la încheiere și cine declanșează fiecare tranziție — plus granița exactă unde se termină vânzările și unde începe facturarea.

Ce face motorul de vânzări și comenzi într-un ERP la comandă

Modulul de vânzări și comenzi e placa turnantă dintre partea comercială și restul sistemului. Primește o ofertă, o transformă în comandă, verifică disponibilitatea de stoc, aplică prețul corect și predă comanda confirmată mai departe — spre depozit pentru livrare, spre facturare pentru încasare.

Rolul lui se oprește exact acolo unde începe execuția fizică și financiară. Nu gestionează stocul (doar îl rezervă), nu emite facturi (doar declanșează emiterea) și nu ține contabilitatea (doar alimentează cu date corecte modulul care o face).

Diferența față de modulul de facturare

Modulul de facturare preia comanda confirmată — cu prețurile deja calculate, cu cantitățile deja rezervate — și se ocupă de partea din aval: emiterea facturii, formatul XML pentru e-Factura, transmiterea către SPV. Tot ce ține de negocierea prețului, validarea comenzii sau rezervarea stocului s-a întâmplat deja, în modulul de vânzări.

Practic: dacă o comandă are un preț greșit sau o cantitate nerezervată corect, problema nu se rezolvă în facturare — se rezolvă înapoi, în vânzări. Facturarea doar transpune ce a validat deja modulul de comenzi.

Diferența față de gestiunea stocurilor

Gestiunea stocurilor răspunde de mecanica stocului în sine: metoda de evaluare (FIFO, cost mediu ponderat), pragurile de reaprovizionare, mișcările de recepție și transfer între depozite. Modulul de vânzări nu decide cum se evaluează stocul — doar întreabă, la fiecare comandă, cât e disponibil și cât rezervă acum.

Rezervarea de stoc din modulul de vânzări e un consum temporar al disponibilului, nu o operațiune de gestiune. Nu schimbă metoda de calcul a costului și nu declanșează reaprovizionare — doar blochează cantitatea respectivă pentru o comandă anume, până la livrare sau anulare.

Traseul unei comenzi: de la ofertă la comandă confirmată

O comandă nu apare din senin în sistem. Trece printr-o etapă de ofertă — uneori explicită (document trimis clientului), alteori implicită (un coș de comandă completat direct de client sau de un agent de vânzări).

Ce se întâmplă la nivel de ofertă

O ofertă are, de regulă, o dată de valabilitate și condiții proprii: preț valabil un număr fix de zile, cantitate minimă, termen de livrare estimat. Cât timp e doar ofertă, nu rezervă stoc și nu blochează nimic în sistem — e o promisiune condiționată, nu un angajament.

Diferența contează practic: dacă lași ofertele să rezerve stoc automat, riști ca stocul real să fie „blocat" de oferte care nu se mai transformă niciodată în comandă. Regula sănătoasă: rezervarea începe la confirmare, nu la ofertare.

Confirmarea comenzii — ce validează sistemul automat

La confirmare, sistemul rulează, de regulă, o secvență de validări înainte să accepte comanda: disponibilitate de stoc (sau posibilitate de rezervare parțială), limită de credit pentru client, dacă există un plafon, preț valid conform listei sau contractului aplicabil, și completitudinea datelor obligatorii — adresă de livrare, metodă de plată, date fiscale.

Dacă o validare eșuează, comanda rămâne în starea anterioară — nu trece silențios mai departe cu date incomplete. E un punct în care sistemele slab proiectate cedează: lasă comenzi pe jumătate confirmate să circule, iar depozitul sau contabilitatea descoperă problema abia la livrare sau facturare, când costă mai mult să o repari.

Motorul de rezervare de stoc la confirmarea comenzii

Diagramă flux rezervare stoc la confirmarea comenzii: alocare fermă vs. soft și traseul urmat la stoc insuficient

Rezervarea de stoc e mecanismul care leagă o comandă confirmată de realitatea depozitului. Fără el, două comenzi pot „vinde" aceeași unitate de stoc, iar una dintre ele rămâne neonorabilă.

Alocare fermă vs. alocare soft

Sistemul are, de regulă, două moduri de a rezerva: alocare fermă (hard) și alocare soft.

Alocarea fermă blochează explicit cantitatea din stocul disponibil — acea cantitate nu mai apare ca liberă pentru nicio altă comandă, indiferent cât de urgentă. E potrivită pentru comenzi confirmate cu dată de livrare fixă sau pentru clienți cu contracte care garantează prioritate.

Alocarea soft rezervă cantitatea, dar păstrează o marjă de renegociere: dacă apare o comandă cu prioritate mai mare — un client strategic, o clauză contractuală — sistemul poate realoca, cu o notificare către cine gestionează prima comandă.

AspectAlocare fermăAlocare soft
Cantitate rezervatăComplet blocată, nerealocabilăRezervată, dar realocabilă la prioritate mai mare
Potrivită pentruComenzi cu dată de livrare fixă, clienți cu prioritate contractualăComenzi flexibile, vânzare pe mai multe canale simultan
Risc principalStoc „înghețat" inutil dacă respectiva comandă cadeNecesită notificare promptă la realocare

De exemplu, o firmă de distribuție poate seta alocare fermă implicit pentru contractele-cadru cu clienți mari — livrare garantată la data promisă — și alocare soft pentru comenzile de pe canalul de retail online, unde o întârziere de o zi nu afectează relația comercială, dar unde flexibilitatea de realocare reduce stocul „înghețat" degeaba.

Alegerea dintre cele două nu e globală — de regulă se configurează per canal de vânzare, per tip de client sau per categorie de produs: stoc critic, unde alocarea e fermă implicit, față de stoc de volum, unde soft e suficient.

Ce se întâmplă la stoc insuficient

Când stocul disponibil nu acoperă cantitatea comandată, sistemul are trei rute posibile, iar alegerea dintre ele e o decizie de business, nu doar tehnică:

  • Livrare parțială automată — rezervă ce e disponibil, marchează diferența ca restanță și livrează în tranșe pe măsură ce stocul se reaprovizionează.
  • Blocare până la disponibilitate completă — comanda rămâne în așteptare, fără nicio confirmare, până când tot stocul necesar e disponibil dintr-o dată.
  • Alertă către un operator uman — sistemul semnalează insuficiența și lasă decizia — parțial, amânat sau redirecționat către alt depozit ori furnizor — unei persoane, de obicei din vânzări sau din depozit.

Majoritatea implementărilor combină cele trei: reguli automate pentru cazurile clare (client obișnuit, produs de volum) și escaladare umană pentru cazurile cu miză (client strategic, produs cu stoc cronic insuficient). Un tipar frecvent: comenzile sub un anumit prag valoric se livrează automat parțial, în timp ce orice comandă peste prag ajunge direct la un coordonator de vânzări, care decide dacă așteaptă stocul complet sau redirecționează comanda către alt depozit.

De ce rezervarea nu e gestiune de stoc

Rezervarea răspunde la o întrebare punctuală — cât rezervi pentru comanda asta, acum — nu la întrebările de fond ale stocului: la ce preț mediu ponderat evaluezi ieșirea, când declanșezi o comandă de reaprovizionare, cum tratezi loturile cu expirare. Acelea rămân în gestiunea stocurilor, care rulează independent de fiecare comandă individuală.

Practic, cele două module comunică printr-un contract simplu: vânzările cer și eliberează rezervări; stocurile țin evidența reală și decid reaprovizionarea. Niciunul nu duplică rolul celuilalt.

Reguli de preț automate: liste, canale, clienți

Un ERP la comandă câștigă cel mai vizibil teren față de un Excel de vânzări exact aici — la preț. Regulile de preț configurate corect elimină recalculul manual, fișierele paralele și discrepanțele dintre ce a promis un agent de vânzări și ce a facturat sistemul.

Cum se configurează o listă de preț per canal

O listă de preț nu e un singur tabel static — e o structură cu reguli de prioritate. De regulă există o listă de bază (preț de listă), peste care se aplică ajustări per canal (angro și retail primesc marje diferite pentru același produs) și per perioadă (promoții cu dată de început și de sfârșit).

Diferența dintre angro și retail nu e doar procentuală. De multe ori diferă și cantitatea minimă de comandă, condițiile de plată acceptate și chiar produsele disponibile — un canal angro poate avea acces la SKU-uri sau ambalaje pe care retailul nu le vede deloc.

Contracte-cadru și prețuri negociate per client

Peste listele standard, clienții cu contracte-cadru au propriile condiții: preț fix negociat pentru o categorie de produse, discount progresiv la volum sau clauze de preț valabile pe durata contractului, indiferent de fluctuațiile listei generale.

Sistemul trebuie să știe să aplice regula corectă în ordinea corectă. Fără o ierarhie explicită, riști fie să subfacturezi un client cu contract activ, fie să nu-i aplici discountul negociat — probleme care ajung, de regulă, direct la conducere.

Un exemplu concret: un client cu contract-cadru pentru 500 de unități pe lună la preț fix poate, teoretic, să comande și peste acel volum — la preț de listă standard, nu la prețul negociat. Fără o regulă explicită care separă cele două praguri, sistemul (sau omul care confirmă manual comanda) riscă să aplice greșit prețul contractual peste tot volumul, inclusiv peste plafon.

Aplicarea automată — fără recalcul manual, fără excel-uri paralele

NivelSursă prețSe aplică când
1 — prioritate maximăContract-cadru clientClientul are contract activ pentru produsul comandat
2Listă de preț per canalFără contract specific, dar canalul (angro/retail) are listă proprie
3 — bazăListă de preț generalăFallback, fără canal sau contract particular

Beneficiul real nu e că prețul e corect o singură dată — e că rămâne corect automat, la fiecare comandă nouă, fără ca cineva să verifice manual fiecare linie. Când un agent de vânzări introduce o comandă, sistemul rezolvă singur ce listă sau contract se aplică, fără intervenție și fără riscul unui preț „din memorie", diferit de ce e configurat oficial.

Asta elimină și un tipar clasic de eroare: un excel paralel, ținut „pentru siguranță" de cineva din vânzări, care ajunge să diverge de sistem după câteva luni și devine el însuși o sursă de discrepanțe.

Ciclul de stare al comenzii: cine declanșează fiecare tranziție

Diagramă ciclu de stare al comenzii: draft, confirmată, în livrare, facturată, încheiată, cu declanșatorul fiecărei tranziții

O comandă trece printr-un ciclu de stări explicit: draft → confirmată → în livrare → facturată → încheiată. Fiecare tranziție are un declanșator clar — fie o acțiune umană, fie un eveniment din alt modul.

Draft → Confirmată

Starea de draft e editabilă liber: cantități, prețuri, produse — orice se poate schimba fără urme. Tranziția către „confirmată" o declanșează, de regulă, un agent de vânzări sau clientul însuși, în cazul comenzilor plasate direct printr-un portal, și rulează automat validările descrise mai sus — stoc, credit, date obligatorii.

Din acest punct, comanda nu mai e liber editabilă — orice modificare ulterioară trebuie tratată explicit, ca un amendament, nu ca o rescriere silențioasă a draftului.

Confirmată → În livrare

Tranziția asta o declanșează, de regulă, depozitul: momentul în care începe pregătirea fizică a comenzii — picking, împachetare — pentru rezervarea fermă, sau momentul expedierii pentru cazurile mai simple. Modulul de vânzări nu inițiază singur livrarea — doar pune comanda la dispoziția depozitului, cu rezervarea deja făcută.

În livrare → Facturată → Încheiată

Facturarea se declanșează, de regulă, la livrare — totală sau parțială, în funcție de politica firmei — și de aici preia modulul de facturare ștafeta. Starea „încheiată" se atinge când toate liniile comenzii sunt livrate și facturate; până atunci, comanda rămâne activă, chiar dacă parțial facturată.

Fiecare tranziție ar trebui să lase o urmă — cine, când, ce s-a schimbat — nu pentru birocrație, ci pentru că, la o comandă disputată de client, jurnalul de tranziții e adesea singurul mod rapid de a reconstitui ce s-a întâmplat și cine a decis ce.

Un exemplu complet, cap-coadă: o comandă de 200 de bucăți intră ca draft luni, agentul de vânzări o confirmă marți dimineață, iar sistemul validează stocul și limita de credit fără probleme. Depozitul preia rezervarea fermă și expediază joi — starea trece în „în livrare". Vineri, la confirmarea de livrare, sistemul declanșează automat factura. Comanda rămâne „facturată" până la încasare, apoi trece „încheiată" — tot traseul, fără nicio intervenție manuală în afara confirmării inițiale.

Unde se termină vânzările și unde începe facturarea

Diagramă handoff între modulul de vânzări și modulul de facturare: ce se predă exact la comanda confirmată

Granița dintre cele două module contează mai mult decât pare la prima vedere — dacă e neclară, echipele încep să-și paseze responsabilitatea reciproc de fiecare dată când apare o discrepanță.

Handoff-ul: ce transferă vânzările către facturare

Vânzările predau facturării un pachet complet și închis: comandă confirmată, prețuri deja calculate conform regulilor aplicabile, cantități deja rezervate și livrate — parțial sau total — și datele fiscale ale clientului deja validate. Facturarea nu ar trebui, în mod normal, să recalculeze nimic din toate astea — doar să le transpună în formatul de factură corect.

Când handoff-ul e curat, emiterea facturii devine o operațiune mecanică. Când nu e — când prețul se recalculează din nou în facturare, sau cantitatea livrată nu se potrivește cu ce a rezervat vânzările — apar discrepanțe greu de depanat, pentru că nimeni nu mai știe care modul are dreptate.

Ce rămâne responsabilitatea vânzărilor chiar și după facturare

Nu tot se termină la handoff. Returul de marfă, ajustările de comandă post-facturare — o cantitate greșit livrată, un produs defect — și renegocierea unui preț pentru o comandă deja facturată parțial rămân, de regulă, inițiate din modulul de vânzări, chiar dacă efectul lor financiar se reflectă apoi în facturare sau contabilitate printr-o notă de credit.

Vânzările rămân, practic, punctul de contact pentru orice discuție cu clientul despre comanda respectivă — indiferent în ce stadiu tehnic se află ea.

Vizibilitate pe echipe și integrarea cu restul sistemului

O comandă trece prin mai multe echipe, iar fiecare are nevoie de o versiune diferită a acelorași informații.

Ce vede vânzările, ce vede depozitul, ce vede contabilitatea

Vânzările au nevoie de starea comenzii, istoricul de comunicare cu clientul și orice discrepanță de preț sau disponibilitate. Depozitul are nevoie de lista de picking, rezervările ferme și termenele de livrare — nu de detaliile de preț sau de negociere, care nu-l privesc operațional. Contabilitatea are nevoie de comenzile facturate sau parțial facturate, cu sumele exacte și statusul de încasare, fără să vadă neapărat istoricul comercial din spate.

Un sistem bine proiectat expune aceleași date de bază — o comandă, o stare — prin filtre diferite per rol, nu prin copii separate ale acelorași informații, ținute manual la zi de fiecare echipă.

Alertele automate utile

Cele mai utile alerte automate dintr-un modul de vânzări și comenzi sunt, de regulă: stoc insuficient la confirmare, înainte să promiți clientului o dată nerealistă, comandă blocată peste un anumit număr de zile fără progres și întârziere față de data de livrare promisă. Fiecare alertă are sens doar dacă ajunge la persoana care poate acționa pe ea — nu într-un raport pe care nimeni nu-l deschide.

Integrările obligatorii

Integrarea cu gestiunea stocurilor e obligatorie — fără ea, rezervarea de stoc descrisă mai sus nu are cu ce să comunice. Integrarea cu facturarea e la fel de obligatorie, pentru handoff-ul descris mai sus. O integrare CRM e opțională, dar utilă când echipa de vânzări are nevoie de context de relație — istoricul de discuții, oportunități deschise — alături de comenzile efective.

Tranziția de la procese manuale

Firmele care vin dintr-un mix de comenzi pe e-mail și excel-uri de preț au, de regulă, cel mai mult de câștigat — dar și cea mai vizibilă tranziție. Primul pas practic nu e automatizarea completă, ci mutarea regulilor de preț existente, chiar dacă informale, într-o structură explicită de liste și contracte, ca sistemul să aibă ce aplica automat de la prima comandă.

Reținerea cea mai frecventă vine din partea agenților de vânzări obișnuiți cu flexibilitatea unui preț negociat pe loc. Răspunsul practic nu e eliminarea flexibilității, ci mutarea ei într-o regulă explicită — o marjă de discount pe care agentul o poate aplica singur, peste un anumit prag necesitând aprobare — flexibilitate păstrată, dar vizibilă și auditabilă.

Întrebări frecvente

Ce se întâmplă dacă o comandă confirmată trebuie modificată?

Depinde de stadiul ei. Înainte de livrare, majoritatea sistemelor permit un amendament controlat: se anulează rezervarea veche, se recalculează prețul dacă regulile s-au schimbat între timp și se creează o rezervare nouă. După livrare parțială, modificarea devine, de regulă, o comandă separată sau o notă de retur, nu o editare a comenzii originale.

Rezervarea de stoc blochează fizic marfa în depozit?

Nu direct. Rezervarea e o operațiune la nivel de sistem — marchează cantitatea drept indisponibilă pentru alte comenzi. Blocarea fizică, separarea mărfii sau etichetarea pentru o comandă anume se întâmplă abia la pasul de picking, în gestiunea stocurilor sau în logistică, nu în momentul rezervării în sine.

Cât de des trebuie actualizate regulile de preț?

Depinde de volatilitatea prețurilor din domeniu, dar structura — ierarhia listă de bază, canal, contract — rareori se schimbă des. Ce se schimbă frecvent sunt valorile din liste, motiv pentru care merită separate clar: structura regulilor rămâne stabilă, valorile se actualizează independent, fără să afecteze logica de aplicare.

Modulul de vânzări poate funcționa fără integrare cu depozitul?

Tehnic da, dar pierde exact funcția care îi dă valoare — rezervarea de stoc corectă. Fără ea, comenzile se confirmă pe încredere, iar discrepanțele — comenzi confirmate pe stoc care nu mai există — ajung la suprafață abia la livrare, cel mai costisitor moment posibil să le descoperi.

Ce se întâmplă cu o comandă dacă clientul depășește limita de credit?

De regulă rămâne blocată la pasul de confirmare, cu o notificare către cine gestionează relația cu clientul — vânzări sau financiar, în funcție de organizare. Deblocarea e o decizie umană explicită — o aprobare punctuală sau o renegociere a plafonului — nu ceva ce sistemul decide singur.

Un modul de vânzări și comenzi bine proiectat se vede cel mai puțin când funcționează — comenzile trec curat de la ofertă la facturare, fără dispute despre preț și fără surprize de stoc la livrare. Pentru restul pieselor unui ERP la comandă — facturare, gestiune stocuri, WMS, contabilitate — vezi hub-ul de module ERP. Dacă traseul descris aici sună mai complicat decât ce ai acum într-un mix de e-mail și Excel, ăsta e semnul să discuți un audit al fluxului de comandă înainte să alegi ce automatizezi primul.

Distribuie
Andrei Badulescu
Despre autor

Andrei Badulescu

Fondator & Software Architect

Construiește sisteme B2B la BaseTech — ERP la comandă, platforme SaaS, agenți AI și arhitecturi programmatic SEO. Scrie despre deciziile tehnice din spatele lor: stack, trade-off-uri și ce ține la scară.

Vezi profilul autorului →
Continuă
Newsletter

Insights pentru companii
care construiesc

Articole noi despre ERP, AI, agenți și pSEO, direct pe email. Fără spam.