OMS & E-commerce — Order Management System

Roluri acoperite: Operator OMS · Manager E-commerce · Administrator Canal · Responsabil Retururi
Module principale: OmniSales (Comenzi · Canale · Discounturi · Rapoarte) · Warehouse (Delivery Notes · Packing Lists) · Innoship · Invoices


Cine sunt utilizatorii acestui ghid

Rol Ce face în CRMConnect
Operator OMS Procesează comenzile zilnice: confirmă, generează avize, urmărește livrările
Manager E-commerce Configurează canalele de vânzare, regulile de aprobare, discounturile comerciale
Administrator Canal Gestionează sincronizarea WooCommerce/Shopify, rezolvă erorile de sync
Responsabil Retururi Procesează cererile de retur, aprobă returnările de stoc, gestionează rambursările

Harta modulului OmniSales

CANALE DE VÂNZARE              COMENZI (CART)
──────────────────              ──────────────
POS (Point of Sale)            Draft (0)
Portal B2B (clienți)           Processing (1)
WooCommerce                    Pending Payment (2)
Shopify                        Confirmed (3) ──→ factură auto
Manual (staff)                 Shipping (4)
Pre-order                      Delivered (5) ✓

DISCOUNTURI                    FULFILLMENT
───────────                    ───────────
Trade Discounts                Aviz Livrare (Delivery Note)
Voucher Codes                  Packing List
Reduceri per client/grup       AWB Innoship
Reduceri per produs/canal      Tracking curier

RETURURI                       RAPOARTE & AUDIT
────────                       ────────────────
Cerere retur client            Rapoarte OmniSales
Aprobare retur                 Audit sync (diary_sync)
Restituire stoc                Venituri per canal
Rambursare (refund)            Efectivitate discounturi

Rutina zilnică recomandată

Dimineața (20–30 min)

1. Comenzi noi neconfirmate
/admin/omni_sales/order_list → filtrează status Draft (0) sau Processing (1)
Reviziezi și confirmi comenzile primite peste noapte (din WooCommerce, portal B2B).

2. Comenzi în așteptarea aprobării
approve_status = 0 — Comenzi blocate în fluxul de aprobare
Le procesezi sau le trimiți aprobatorului relevant.

3. Verificare sync WooCommerce
/admin/omni_sales/diary_sync → tab Comenzi
Verifici dacă importul automat a rulat corect — identifici erori de import.

4. Packing list-uri de finalizat
/admin/warehouse/manage_packing_list — Colete nearanjate
Completezi dimensiunile și greutatea pentru a genera AWB-ul.

5. Retururi noi
/admin/omni_sales → tab Retururi — cereri noi de la clienți
Revizuiești și iei decizia de aprobare.

Cursul zilei

Comandă nouă (orice canal)
  ↓ Verifici produse + prețuri + client
  ↓ Confirmi (status 0→3)
  ↓ Factură generată automat (dacă configurat)
  ↓ Aviz de livrare creat (manual sau automat)
  ↓ Picking + Packing + AWB
  ↓ Predai curierului → status → Shipping (4)
  ↓ Curier confirmă livrarea → status → Delivered (5)

Săptămânal


Canalele de vânzare

Unde: /admin/omni_sales/omni_sales_channel

Tipuri de canale disponibile

Canal channel channel_id Cine plasează comanda
POS pos 1 Staff la ghișeu/terminal
Portal B2B portal 2 Clientul online în portalul propriu
WooCommerce woocommerce 3 Cumpărătorii din magazinul online
Manual 4 Staff în CRM admin
Pre-order pre_order Comenzi cu livrare viitoare
API Sisteme externe via REST API

Configurare per canal

Setare Descriere
Auto-confirmare Comanda trece automat la status 3 fără aprobare manuală
Auto-factură Factura se generează automat la confirmare (create_invoice = on)
Moduri de plată permise Ce metode de plată acceptă canalul
Listă de prețuri Prețuri specifice canalului (override față de prețul standard)
Grupuri clienți Cine are acces la canal
Taxă de livrare Cost transport implicit per canal

Diferențe operaționale per canal

POS:

Portal B2B:

WooCommerce:


Statusurile comenzii — ghidul complet

Cod Status Ce faci tu
0 Draft Comandă primită, neverificată. Reviziezi datele, produsele, prețul.
1 Processing Verificare stoc și disponibilitate.
2 Pending Payment Aștepți plata în avans de la client (B2B cu plată anticipată).
3 Confirmed Comandă validată. Se generează factura (dacă e configurat) și avizul de livrare.
4 Shipping Coletul ridicat de curier, AWB generat.
5 Delivered Confirmată livrarea. Ciclu complet.
6 Refund Rambursare procesată.
7 Return Retur complet aprobat și procesat.
8 Cancelled Comanda anulată (de client sau staff).
9 On Hold Suspendată temporar (lipsă stoc, problemă plată).
10 Failed Eșuată (plată respinsă, eroare procesare).
11 Return Pending Cerere de retur în așteptarea aprobării.
12 Partial Return Retur parțial — doar o parte din produse returnate.
13 Partial Refund Rambursare parțială procesată.
14 Paid Plătită integral.
15 Ready Pregătită pentru livrare (stoc rezervat).
16 Stock Unavailable Comandă primită dar produsul e în lipsă de stoc.

Fluxul de aprobare (approve_status)

Valoare Semnificație
0 Pending — în așteptarea aprobării
1 Approved — aprobată, poate fi confirmată
-1 Rejected — respinsă, clientul e notificat

Regulile de aprobare se configurează per canal și tip de comandă în setările OmniSales (omni_order_approval_rules). Exemplu: toate comenzile B2B portal > 10.000 RON necesită aprobarea managerului de vânzări.


Procesarea comenzilor pas cu pas

Comandă din Portal B2B

1. Clientul plasează comanda → status: Draft (0)
   ↓
2. Notificare automată → Operator OMS
   ↓
3. Operator deschide comanda:
   - Verifică produsele și cantitățile
   - Verifică prețul și discounturile aplicate
   - Verifică adresa de livrare
   ↓
4. Trimite la aprobare (dacă regula e activă)
   → Managerul aprobă → approve_status = 1
   ↓ (sau dacă nu necesită aprobare: direct la pasul 5)
5. Confirmare → status: Confirmed (3)
   → Factură generată automat (dacă create_invoice = on)
   → Aviz de livrare creat automat (dacă auto_create_goods_delivery = on)
   ↓
6. Depozit: picking + packing + cântărire
   ↓
7. Generare AWB Innoship → status: Shipping (4)
   ↓
8. Curier confirmă livrarea → status: Delivered (5)

Comandă din WooCommerce

1. Cron rulează la interval configurat (ex: la fiecare 15 min)
   → Importă comenzile noi din WooCommerce API
   → Creează cart + cart_detailt + client (dacă nou)
   → Status: corespunzător statusului WooCommerce
   ↓
2. Operator vede comanda nouă în lista OmniSales
   (Notificare dacă regula de aprobare e activă)
   ↓
3. Dacă status WooCommerce = Processing → CRM status = 1 (Processing)
   Operator confirmă → status = 3 → factură + aviz
   ↓
4. La schimbarea statusului în CRM → actualizare automată în WooCommerce
   (Sync bidirecțional)

Comandă tip Back-order (status 16 — Stoc indisponibil)

Comandă primită → verificare stoc → LIPSĂ
  ↓ status: 16 (Stock Unavailable)

Ce faci:
1. Notifici Achizițiile → creare RFQ pentru produsul lipsă
2. Comanda rămâne în status 16 până la aprovizionare
3. La intrarea stocului (aviz recepție aprobat):
   → Schimbi manual statusul la 3 (Confirmed)
   → Creezi avizul de livrare
   → Continui fluxul normal

Important: Sistemul nu promovează automat comenzile din status 16. Monitorizezi manual lista de comenzi cu stoc indisponibil.


Portalul B2B — perspectiva clientului

URL portal: /omni_sales/omni_sales_client/

Ce poate face clientul B2B

Acțiune Detalii
Navighează catalogul Filtrare pe categorii, subcategorii, căutare keyword
Vede prețurile proprii Prețuri specifice canalului portal sau grupului de clienți
Aplică voucher Cod de discount specific (dacă știe codul)
Plasează comandă Adaugă în coș, completează adresă, selectează metoda de plată
Urmărește comanda Statusul comenzii în timp real
Solicită retur Dacă comanda e livrată și în fereastra de retur
Vizualizează istoricul Toate comenzile anterioare

Configurare vizibilitate produse

Poți restricționa ce vede fiecare client B2B:

Prețuri B2B

Prețurile se aplică în ordinea:

  1. Preț specific client — din sales_channel_detailt.prices + regula de discount omni_trade_discount.clients
  2. Preț grup client — discount per grup din omni_trade_discount.group_clients
  3. Preț canal — prețul configurat pe canalul Portal
  4. Preț standard — prețul din catalogul de articole

Discounturi comerciale (Trade Discounts)

Unde: /admin/omni_sales/trade_discount

Structura unui discount

Câmp Note
name_trade_discount Denumirea internă a regulii
start_time / end_time Perioada de valabilitate
formal 0 = sumă fixă / 1 = procent
discount Valoarea discountului (ex: 15 pentru 15%)
minimum_order_value Valoarea minimă a comenzii pentru activare
voucher Codul de voucher (gol = aplicat automat)
channel 0 = toate canalele / ID specific canal

Aplicabilitate

Dimensiune Câmp Exemple
Per client specific clients ID-urile clienților eligibili
Per grup de clienți group_clients VIP, Wholesale, Retail
Per produs specific items ID-urile produselor cu discount
Per grup de produse group_items Electronice, Textile, Mobilier
Per canal channel Doar POS, doar Portal, toate
Per magazin WooCommerce store ID-ul store-ului specific

Tipuri de discount

Tip formal Exemplu
Procentual 1 10% reducere la toate produsele din categoria Electronice
Sumă fixă 0 50 RON reducere la comenzi peste 500 RON
Voucher cu cod orice Client introduce codul „PROMO2026" → -15%
Automat orice (fără voucher) Aplicat fără cod dacă clientul îndeplinește criteriile

Jurnalul de discounturi aplicate

Fiecare discount aplicat pe o comandă e înregistrat automat în omni_log_discount:

Util pentru raportarea efectivității campaniilor de discount.


Retururi — procesul complet

Unde: /admin/omni_sales → tab Retururi sau /admin/warehouse/manage_order_return_receipt

Inițierea returului

De la client (din portal B2B):

  1. Clientul accesează istoricul comenzilor
  2. Selectează comanda livrată (status 5)
  3. Apasă „Solicită Retur"
  4. Sistemul verifică: omni_return_request_within_x_day (default 30 zile de la livrare)
  5. Clientul selectează produsele + cantitățile + motivul
  6. Cererea ajunge la tine în CRM cu status approval = 0

De la operator (manual): Din comanda livrată → buton Crează Retur → completezi articolele, cantitățile și motivul.

Câmpuri cheie pe returul OmniSales

Câmp Note
rel_id ID-ul comenzii originale (cart.id)
return_type manual / partially / fully
fee_return_order Taxa de restocking (configurabilă global sau per furnizor)
return_reason Motivul returului (text liber)
approval 0=pending / 1=aprobat / 2=respins
receipt_delivery_id Avizul de recepție creat la reintrarea stocului
refund_loyaty_point Dacă se restituie punctele de loialitate

Statusuri retur și acțiunile tale

approval Status Acțiunea ta
0 Pending Revizuiești cererea, verifici dacă e în termenul de retur
1 Aprobat Stocul e reintegrat automat; procesezi rambursarea
2 Respins Motivul respingerii e comunicat clientului

La aprobarea returului

Automat se creează:

  1. Aviz de recepție retur — marfa reintrată în stoc (receipt_delivery_id completat)
  2. Tranzacție stocinventory_manage.inventory_number += cantitate
  3. Înregistrare rambursare — în omni_refunds cu suma și modalitatea de plată

Rambursarea (Refund)

Unde: Din returul aprobat → Procesează Rambursare

Câmpuri rambursare (omni_refunds):

Puncte de loialitate: Dacă omni_refund_loyaty_point = 1 → punctele câștigate pe comanda originală sunt anulate automat.

Configurare politică de retur

Unde: /admin/omni_sales/setting

Setare Valoare recomandată
omni_return_request_within_x_day 14–30 zile (conform politicii comerciale)
omni_fee_for_return_order 0–10% din valoarea comenzii
omni_return_policies_information Textul politicii afișat clientului la retur
omni_refund_loyaty_point 1 — restituie punctele

Sincronizarea WooCommerce

Unde: /admin/omni_sales/diary_sync

Ce se sincronizează bidirecțional

Direcție Ce se sincronizează Frecvență
CRM → WooCommerce Prețuri produse (time3) Configurable per store
CRM → WooCommerce Stocuri (time2) Configurable per store
CRM → WooCommerce Descrieri produse (time4) Configurable per store
CRM → WooCommerce Imagini produse (time5) Configurable per store
WooCommerce → CRM Comenzi noi (time6) Configurable per store
WooCommerce → CRM Status comenzi existente La fiecare sync time6

Configurare per magazin WooCommerce

Unde: /admin/woocommerce/stores sau din setările OmniSales

Fiecare magazin WooCommerce are:

Rezolvarea erorilor de sync

Cele mai comune erori în diary_sync:

Eroare Cauza Soluție
Comandă nedublicată SKU produs din WooCommerce nu există în CRM Creezi produsul în CRM cu același SKU
Client necreeat Email client invalid sau duplicat Verifici și corectezi manual fișa clientului
Plată nerecunoscută Metoda de plată din WooCommerce nemapată Adaugi mapping în setările canalului
Timeout API Magazinul WooCommerce inaccesibil Verifici disponibilitatea magazinului; retry manual
Status nerecunoscut Status WooCommerce fără corespondent în CRM Adaugi mapping în get_status_by_index_woo()

Retenția log-urilor de sync

Jurnalul de sync se păstrează implicit 30 de zile (number_of_days_to_save_diary_sync). Cron-ul curăță automat intrările mai vechi.


Rapoarte OmniSales

Unde: /admin/omni_sales/report

Rapoarte disponibile

Raport Ce analizezi
Venituri per canal Cât a generat POS vs. Portal vs. WooCommerce
Volum comenzi per perioadă Trend zilnic/săptămânal/lunar de comenzi
Discounturi comerciale Ce discounturi s-au aplicat, pe ce produse, pentru ce clienți
Retururi Rata de retur per canal, per produs, per perioadă
Top produse Produsele cele mai vândute per canal
Audit sync WooCommerce Comenzi importate vs. erori

Filtre disponibile

Export

Toate rapoartele suportă export Excel/CSV prin butonul DataTables integrat.


Setări OmniSales

Unde: /admin/omni_sales/setting

Setări esențiale

Setare Descriere
omni_b2b_portal_flow_enabled 1 = portalul B2B activ
omni_display_shopping_cart 1 = afișează coșul de cumpărături
invoice_sync_configuration 1 = factură auto la confirmare
omni_send_review_email_on_delivery 1 = email de recenzie după livrare
omni_google_review_url Link-ul Google Reviews al companiei
omni_order_approval_rules JSON cu regulile de aprobare per canal
omni_return_request_within_x_day Zile fereastră retur (default: 30)

Configurare taxe de livrare per canal

Setare Canal
omni_pos_shipping_fee POS
omni_portal_shipping_fee Portal B2B
omni_manual_shipping_fee Comenzi manuale

Receipt POS (Bon de casă)

bill_header_pos = HTML header pe bonul de casă
bill_footer_pos = HTML footer pe bonul de casă

Personalizezi cu logo, datele companiei, mesaj de mulțumire.


Integrare cu alte departamente

Departament Interacțiunea
Vânzări Comenzile confirmate alimentează pipeline-ul de vânzări; agentul de vânzări e vizibil pe comandă (seller)
Depozit Avizele de livrare și packing list-urile se generează din comenzile OmniSales confirmate
Financiar Facturile se generează automat din comenzile confirmate; plățile sunt reconciliate cu extrasul bancar
Achiziții La stoc insuficient (status 16), operatorul OMS notifică achizițiile pentru RFQ
Marketing Discounturile comerciale și voucher-ele sunt instrumente de marketing coordonate cu echipa de marketing
Customer Support Clienții cu probleme pe comenzi deschid tichete — operatorul OMS e implicat în rezolvare

Workflow Automation pentru OMS

Configurabile în Workflow Automation (/admin/workflow_automation):

Trigger Acțiune automată Beneficiu
Comandă nouă pe Portal B2B Notificare push Operator OMS Procesare imediată
Comandă > 5.000 RON Task aprobare Manager Control comenzi mari
Comandă status → Confirmed Creare aviz livrare + notificare depozit Fulfillment automat
Comandă status → Delivered Email recenzie → client Colectare feedback
Status → 16 (Stoc indisponibil) Task „Aprovizionare urgentă" → Achiziții Back-order gestionat
Retur aprobat Email confirmare → client + task „Procesează refund" Comunicare rapidă
Sync WooCommerce — eroare Notificare Administrator Canal Intervenție rapidă

Permisiuni recomandate

Solicită administratorului la /admin/roles:

Permisiune Necesar pentru
OmniSales → View / Create / Edit Acces complet comenzi
OmniSales → Approve Aprobare comenzi (pentru manageri)
Trade Discounts → View / Create Gestionare discounturi
Warehouse → Delivery Notes Creare avize livrare
Innoship → AWB Generare AWB curier
Returns → View / Approve Gestionare retururi
Reports → OmniSales Acces rapoarte
Settings → OmniSales Configurare canale (admin)

Referințe rapide

Workflow-uri: OmniSales Fulfillment · Full Commercial Cycle · Warehouse Inbound → Outbound

Module: Omni Sales Orders · Sales Channels · Trade Discounts · Channel Sync Audit · Omni Sales Reports · Omni Sales Settings · Delivery Notes · Packing Lists · Innoship Couriers · WooCommerce · Shopify

Departamente înrudite: Departament Vânzări · Depozit & Logistică · Departament Financiar · Departament Achiziții

← Înapoi la Department Guides