Operator Comenzi OMS
Departament: OMS & E-commerce
Nivel: Operațional
Obiectiv principal: Procesarea zilnică a comenzilor din toate canalele — de la intrare la livrare confirmată
Ce face acest rol
Operatorul de comenzi gestionează coada unificată de comenzi din toate sursele: magazine online (WooCommerce/Shopify), Portal B2B, comenzi manuale din Sales, comenzi EDI de la retaileri și distribuitori, și comenzi primite prin API din sisteme externe. Asigură că fiecare comandă parcurge corect ciclul complet: validare → aprobare → confirmare → aviz livrare → AWB → livrare → retururi.
Module utilizate zilnic
| Modul | Unde îl găsești | La ce îl folosești |
|---|---|---|
| Comenzi OmniSales | OmniSales → Comenzi | Coada principală de comenzi — toate canalele |
| Canale de Vânzare | OmniSales → Canale | Configurare per canal — invoicing, aprobare, sync |
| Comenzi de Vânzare | Vânzări → Comenzi de Vânzare | Comenzi manuale și din portal B2B (Sales Orders) |
| Avize Livrare | Depozit → Avize Livrare | Generare aviz din comanda confirmată |
| Packing Lists | Depozit → Packing Lists | Colete pregătite → AWB |
| Innoship | Integrări → Innoship | AWB 230+ curiieri, 35 țări |
| Curiieri Direcți | Operațiuni → Curiieri | AWB direct Cargus / FanCourier / Palex |
| Facturi | Vânzări → Facturi | Factură la confirmare sau expediere |
| Retururi OMS | Depozit → Retururi | Retururi de la clienți |
| Audit Sync | OmniSales → Jurnal Sync | Erori de import WooCommerce/Shopify |
Sursele de comenzi — unde vin comenzile
Toate comenzile ajung în coada unificată /admin/omni_sales/order_list, indiferent de sursă:
| Sursă | Cum intră | Ce verifici |
|---|---|---|
| WooCommerce / Shopify | Automat via webhook (real-time) sau cron (la interval) | Clientul creat corect, SKU mapat, plată recunoscută |
| Portal B2B | Clientul plasează din catalog propriu | Prețuri din Price List, stoc disponibil, aprobare dacă e configurată |
| Sales Order (manual/agent) | Agentul creează din /admin/estimates |
Prețuri și discounturi corecte, adresă livrare validă |
| EDI (EDIconnect) | Automat — retailer/distribuitor trimite X12 850 sau EDIFACT ORDERS via AS2 | Mapare produs/SKU corectă, cantitate, condiții din contract |
| API extern | Sistem terț face POST pe endpoint REST omni_sales/orders |
Datele complete, clientul asociat, produsele existente |
| Manual (staff) | Operator crează direct din /admin/omni_sales/order_list → Adaugă |
Toate câmpurile obligatorii completate |
| POS | Vânzare la ghișeu/terminal | Plată imediată, bon de casă generat automat |
| Pre-order | Comandă cu livrare viitoare | Data de livrare promisă, stocul nu e verificat imediat |
Rutina zilnică
Dimineața — triaj (20–30 min)
1. /admin/omni_sales/order_list → filtru: status Draft (0) sau Processing (1)
→ Comenzi noi sosite peste noapte (WooCommerce, Portal B2B, EDI)
→ Revizuiești și procesezi
2. Comenzi cu approve_status = 0
→ Pending aprobare → trimiți la aprobator sau aprobi tu (dacă ai permisiunea)
3. /admin/omni_sales/diary_sync
→ Erori de sincronizare WooCommerce/Shopify din noaptea precedentă
→ Rezolvi erorile (SKU lipsă, client necreeat, plată nerecunoscută)
4. Comenzi status 16 (Stock Unavailable)
→ Back-orders — notifici Achizițiile pentru RFQ urgent
5. /admin/warehouse/manage_packing_list → colete fără AWB
→ Completezi dimensiunile/greutatea → generezi AWB-ul
În cursul zilei
Comandă nouă → revizuiești → confirmi (status 3)
↓
Factură generată automat (dacă configurat pe canal)
↓
Aviz de livrare creat (automat sau manual)
↓
Depozit: picking + packing + cântărire + dimensiuni
↓
Generezi AWB (Innoship sau curier direct)
↓
Comanda → status Shipping (4)
↓
Curier livrează → status Delivered (5) — automat via tracking
Săptămânal
- Raport retururi: cereri noi + cereri aprobate + stoc reintrat
- Comenzi On Hold > 3 zile → escaladezi sau rezolvi
- Comenzi Stock Unavailable > 7 zile → verifici statusul aprovizionării
Statusurile comenzii — ghid de acțiune
| Cod | Status | Ce faci |
|---|---|---|
| 0 | Draft | Verifici complet: produse, prețuri, client, adresă → confirmi sau escaladezi |
| 1 | Processing | Verificare stoc și disponibilitate |
| 2 | Pending Payment | Aștepți confirmarea plății în avans — nu generezi aviz până la plată |
| 3 | Confirmed | Aviz de livrare creat → depozit preia |
| 4 | Shipping | AWB generat, coletul la curier |
| 5 | Delivered | Ciclu complet ✓ |
| 9 | On Hold | Problemă (stoc, plată, adresă) → rezolvi și repornești |
| 14 | Paid | Plătită — poți genera avizul |
| 15 | Ready | Stoc rezervat, depozit pregătit pentru picking |
| 16 | Stock Unavailable | Back-order — notifici Achizițiile, comanda rămâne în așteptare |
| 11 | Return Pending | Cerere retur în așteptare — decizi: aprobi sau respingi |
| 7 | Return | Retur complet aprobat și procesat |
| 12 | Partial Return | Retur parțial — o parte din produse returnate |
| 8 | Cancelled | Anulată — stocul rezervat se eliberează |
Fluxul de aprobare
Dacă regula de aprobare e activă pe canal:
approve_status |
Semnificație | Acțiunea ta |
|---|---|---|
0 |
Pending | Trimiți la aprobator sau aprobi dacă ai permisiunea |
1 |
Approved | Poți procesa comanda normal |
-1 |
Rejected | Clientul e notificat automat; comanda nu se procesează |
Regulile de aprobare se configurează per canal — ex: „toate comenzile B2B > 10.000 RON necesită aprobarea Sales Manager".
Procesarea per tip de sursă
Comenzi WooCommerce / Shopify
Comanda apare în OmniSales (via webhook sau cron)
↓
Verifici în diary_sync că importul a rulat fără erori
↓
Deschizi comanda:
→ Clientul a fost creat/asociat corect?
→ Produsele mapate corect (SKU matching)?
→ Plata recunoscută (metoda de plată mapată pe canal)?
↓
Dacă totul e corect → confirmi → factură + aviz automat
↓
Status actualizat automat în WooCommerce/Shopify (sync bidirecțional)
Erori frecvente la sync:
| Eroare | Cauza | Rezolvare |
|---|---|---|
| SKU inexistent | Produsul din WooCommerce nu există în CRM | Creezi produsul în CRM cu același SKU |
| Client necreeat | Email duplicat sau câmp obligatoriu lipsă | Verifici și corectezi fișa clientului |
| Plată nerecunoscută | Metodă de plată nemapată pe canal | Adaugi mapping în setările canalului |
| Aviz blocat | Stoc insuficient | Livrare parțială sau back-order |
Comenzi din Portal B2B
Clientul plasează comanda din catalog propriu
↓
Apare în OmniSales cu status Draft
↓
Verifici: prețul corespunde Price List-ului clientului?
→ Dacă da → confirmi
→ Dacă nu → verifici Price List din /admin/sales/price_lists
↓
Dacă comanda > pragul de aprobare → trimite la Sales Manager
↓
Aprobare → status Confirmed → aviz + factură
Comenzi EDI (de la retaileri/distribuitori)
EDIconnect preia comenzile EDI complet automat — nu necesită acțiuni manuale la fiecare comandă. Conectarea cu un retailer nou implică câteva bife de activare, configurarea propriu-zisă (mapări, certificate, protocoale) fiind realizată de echipa CRMconnect.
Protocoale suportate: API, AS2, sFTP, FTP secured — plus sincronizare cu ERP-ul propriu al clientului.
Retailer/distribuitor trimite Purchase Order (X12 850 / EDIFACT ORDERS)
↓
EDIconnect recepționează și procesează automat
↓
Comandă de Vânzare creată automat în OmniSales
→ Clientul identificat după ID-ul EDI al partenerului
→ Produsele mapate după codurile EDI configurate
↓
Tu verifici comanda creată:
→ Cantitățile și prețurile corespund contractului?
→ Există stoc disponibil?
↓
Confirmi → sistemul trimite automat EDI outbound:
Confirmare comandă (X12 855 / EDIFACT ORDRSP) → partener
↓
La expediere → Aviz Livrare EDI (X12 856 / EDIFACT DESADV) → partener automat
La facturare → Factură EDI (X12 810 / EDIFACT INVOIC) → partener automat
Unde monitorizezi EDI: /admin/edi → audit log → mesaje primite/trimise per partener
Comenzi API externe
Sistem extern (ERP, marketplace, aplicație mobilă) face POST la:
POST {{base_url}}omni_sales/orders
→ Comanda apare în OmniSales cu channel_id corespunzător
→ Clientul asociat după ID sau email
→ Produsele identificate după SKU
↓
Verifici că datele sunt complete și corecte
↓
Procesezi normal ca orice altă comandă
Gestionarea back-orders (status 16 — Stoc Indisponibil)
Comanda primită → verificare stoc → LIPSĂ
↓ status: 16 (Stock Unavailable)
1. Notifici Achizițiile → creare RFQ pentru produsele lipsă
2. Notifici clientul cu ETA estimat (manual sau via Workflow)
3. Comanda rămâne în status 16 → monitorizezi zilnic
La aprovizionare (aviz de recepție aprobat în depozit):
4. Verifici că stocul a intrat în sistem
5. Schimbi manual statusul la Confirmed (3)
6. Creezi avizul de livrare → continui fluxul normal
Important: sistemul nu promovează automat din status 16. Monitorizezi tu lista zilnic.
Generarea AWB — curierat
Opțiunea A — Innoship (agregator, 230+ curiieri, 35 țări)
Când: livrări internaționale, volum mare, comparare tarife, batch print
Din packing list aprobat → Generează AWB
→ Selectezi curierul și serviciul (Standard, Express, Sameday)
→ Sistemul trimite request la API Innoship
→ Innoship returnează: număr AWB + cod tracking
→ Eticheta disponibilă: A4 sau termic 100×150mm
→ Status automat → Shipping (4) în OmniSales
→ Status actualizat în WooCommerce/Shopify automat
Condiții prealabile: dimensiuni (L×l×h) + greutate completate în packing list. Fără ele, AWB-ul nu se generează.
Opțiunea B — Curierii direcți (fără agregator)
Când: contract direct, livrări naționale
| Curier | Configurare | Avantaj |
|---|---|---|
| Cargus | /admin/couriers → API key Cargus |
Contract direct, fără comision intermediar |
| FanCourier | /admin/couriers → credențiale FanCourier |
La fel |
| Palex | /admin/couriers → credențiale Palex |
La fel |
Retururi — procesul complet
Inițierea returului
De la client (din portal B2B):
- Clientul solicită retur din istoricul comenzilor → cererea apare cu
approval = 0
Manual (operator):
- Din comanda livrată → buton Crează Retur → completezi articolele + cantitățile + motivul
Decizia ta
| Situație | Acțiunea |
|---|---|
| Produs în termen de retur, nefolosit | Aprobi (approval = 1) |
| Termenul de retur depășit | Respingi (approval = 2) cu motiv |
| Produs defect (indiferent de termen) | Aprobi, marchezi în carantină dacă nu poate fi revândut |
La aprobare automată se creează:
- Aviz de recepție retur → stocul reintrat (sau în carantină)
- Înregistrare rambursare în
omni_refunds→ Financiar procesează plata - Punctele de loialitate ale clientului anulate (dacă configurat)
Tipuri de retur:
fully— comanda returnată integral → status 7partially— parte din produse → status 12manual— ajustare fără retur fizic (produs defect fără returnare)
Facturile și eFactura
Generare factură — în funcție de configurarea canalului:
- La confirmare (status 3) → dacă
create_invoice = onpe canal - La expediere (status 4 / AWB generat)
- Manual → din comanda confirmată → buton Crează Factură
eFactura ANAF — automat pentru clienți B2B cu CIF valid:
- XML generat și transmis la ANAF la emiterea facturii
- Numărul de înregistrare ANAF returnat și stocat pe factură
- Verifici statusul:
/admin/invoices→ factură → tab eFactura
Metrici de urmărit
| Indicator | Target |
|---|---|
| Timp de procesare comandă (Draft → Confirmed) | < 2h în zilele lucrătoare |
| Comenzi în Draft > 4h | 0 — toate revizuite și procesate |
| Back-orders > 7 zile | Escaladezi la Achiziții + notifici clientul |
| Erori sync zilnice | 0 erori nerezolvate |
| Retururi > 3 zile fără decizie | 0 — decizi zi de zi |
Colaborarea cu alte departamente
| Departament | Cum colaborezi |
|---|---|
| Depozit | Le transmiți avizele de livrare confirmate; ei generează packing list-ul; tu generezi AWB-ul |
| Vânzări | Comenzile din Sales Orders (portal B2B, agent de teren) intră în coada ta |
| Achiziții | La status 16 (stoc lipsă) → notifici imediat pentru RFQ |
| Financiar | Factura și eFactura → generate de tine, reconciliate de ei |
| Customer Support | Clienții cu probleme pe comenzi deschid tichete → suportul te include pentru rezolvare |
| IT/Admin | Probleme de sync WooCommerce, erori EDI, mapări SKU greșite → escaladezi la IT |
Sfaturi practice
Diary sync = sănătatea canalelor tale. Verifici dimineața înainte de orice altceva. O eroare de sync nedetectată poate lăsa zeci de comenzi neimportate — clienți care au plătit și nu au nicio confirmare.
Status 16 nu e uitat, e monitorizat. Fiecare back-order nerezolvat e un client care a plătit și nu are marfă. Verifici zilnic lista comenzilor cu stoc indisponibil și comunici proactiv cu clientul.
Dimensiunile în packing list nu sunt opționale. Fără L×l×h + greutate nu se generează AWB. Dacă depozitul nu le completează → AWB-ul nu iese → comanda se blochează. Configurezi un reminder sau o checklist cu depozitul.
EDI outbound e automat, dar verifici. Confirmarea comenzii și avizul de livrare se trimit automat partenerului EDI la confirmarea comenzii în CRM. Monitorizezi în
/admin/edică mesajele au fost livrate (MDN acknowledge primit).
Referințe
Manager E-commerce · OMS — Ghid Departament · Flux E-commerce Fulfillment · Flux Portal B2B · Flux OmniSales · AWB & Curierat · eTransport ANAF
Verificați zilnic lista comenzilor cu stoc indisponibil — fiecare comandă în acest status este un client care a plătit și nu are marfă. Comunicarea proactivă în 24 de ore păstrează relația; descoperirea problemei după o săptămână nu o face.
Mesajele EDI de ieșire (confirmare comandă, notă de livrare) sunt generate automat la confirmarea comenzii — nu le trimiteți manual, dar verificați în jurnalul EDI că MDN-urile de confirmare sunt primite pentru a confirma că sistemul partenerului le-a acceptat.