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.

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
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ă.
| Aspect | Alocare fermă | Alocare soft |
|---|---|---|
| Cantitate rezervată | Complet blocată, nerealocabilă | Rezervată, dar realocabilă la prioritate mai mare |
| Potrivită pentru | Comenzi cu dată de livrare fixă, clienți cu prioritate contractuală | Comenzi flexibile, vânzare pe mai multe canale simultan |
| Risc principal | Stoc „înghețat" inutil dacă respectiva comandă cade | Necesită 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
| Nivel | Sursă preț | Se aplică când |
|---|---|---|
| 1 — prioritate maximă | Contract-cadru client | Clientul are contract activ pentru produsul comandat |
| 2 | Listă de preț per canal | Fă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
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
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.
Andrei Badulescu
Fondator & Software ArchitectConstruieș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 →Articole conexe

Modulul de raportare și BI avansată într-un ERP la comandă
Vezi cum se agregă datele din toate modulele ERP într-un strat de raportare unic, ce KPI-uri contează pe departament și când merită BI dedicat.

Modulul HR și salarizare într-un ERP la comandă: funcționare
Cum funcționează HR și salarizarea într-un ERP la comandă: dosar de personal, pontaj, calcul salarial și pragul de la care modulul intern chiar merită.

Modulul CRM într-un ERP la comandă: pipeline și oportunități
Cum urmărește modulul CRM dintr-un ERP la comandă pipeline-ul de vânzări, oportunitățile și activitățile de contact legate de fiecare client.
Insights pentru companii
care construiesc
Articole noi despre ERP, AI, agenți și pSEO, direct pe email. Fără spam.