Workflow: OmniSales Order Fulfillment
Modules involved: OmniSales · Warehouse (Delivery Notes, Packing Lists) · Innoship (230+ curiieri, 35 țări) · Couriers Direct (Cargus · FanCourier · Palex) · eTransport (ANAF) · Invoices · Returns
Who uses it: Operator comenzi, Operator Picking & Expediere, Depozit, Logistică, Financiar
Durata tipică: Ore – zile (de la comandă la livrare)
Overview
Fluxul complet de procesare a comenzilor primite din orice canal de vânzare (WooCommerce, Shopify, portal client, POS, manual): de la comanda nouă până la generarea AWB-ului de livrare și facturarea automată. Gestionat în principal de echipele de depozit și logistică.
Diagrama fluxului
[COMANDĂ OMNI] ← WooCommerce / Shopify / Portal / Manual / POS
│ status: Draft (0) → Processing (1) → Confirm (3)
│ ↓ Confirmare comandă (manuală sau automată)
│
[AVIZ DE LIVRARE (Goods Delivery Note)]
│ status: ready_for_packing → packed
│ creat automat din comandă confirmată
│ ↓ Picking în depozit — selectezi produsele fizic
│
[PACKING LIST]
│ status: wh_ready_to_deliver → wh_in_transit → wh_delivered
│ creat din avizul de livrare (total sau parțial)
│ include dimensiuni colet: lungime, lățime, înălțime, greutate
│ ↓ Aprobare packing list
│
[AWB — alegi modalitatea]
│
├── [INNOSHIP] — 230+ curiieri, 35 de țări (recomandat pentru volum mare sau internațional)
│ │ API key + external ID configurate în /admin/innoship/settings
│ │ Selectezi curierul și serviciul din lista completă
│ │ AWB generat automat → tracking number returnat
│ │ Batch print pentru toate AWB-urile zilei
│ │ Tracking sync automat înapoi în WooCommerce/Shopify
│
└── [CURIERAT DIRECT] — Cargus / FanCourier / Palex (/admin/couriers)
│ Credențiale API per curier + punct de ridicare configurat
│ AWB generat direct fără intermediar
│ Tracking în timp real din CRM
│ Ideal: contracte directe, livrări naționale
│
↓ AWB tipărit și lipit pe colet → Predare curier
│
[ETRANSPORT ANAF] ← completat ÎNAINTE de plecare (dacă depășești pragul legal în România)
│ /admin/etransport → declarație manuală
│ Câmpuri: vehicul, rută, bunuri (cod NC, greutate, valoare), referință aviz
│ Trimitere → UIT primit → transportul poate pleca
│ Statuse: Netrimisă → În prelucrare → Validată (UIT activ) / Eroare
│
[FACTURĂ]
│ generată automat sau manual din comandă / aviz livrare
│ status: Ciornă → Trimisă → Plătită
│
[LIVRARE FINALIZATĂ]
│ status comandă → Delivered (5)
│ status packing list → wh_delivered
Pas cu pas
1. Comanda OmniSales — Intrarea comenzii
Unde: /admin/omni_sales/order_list
Surse de comenzi:
| Sursă | Cum ajunge în CRM |
|---|---|
| WooCommerce | Sync automat (cron) sau manual — modul WooCommerce |
| Shopify | Sync automat — modul Shopify |
| Portal client | Clientul plasează comanda din portalul propriu |
| POS | Operator introduce comanda la ghișeu |
| Manual | Staff introduce comanda direct din /admin/omni_sales |
Statusurile comenzii:
| Cod | Status | Descriere |
|---|---|---|
| 0 | Draft | Comandă nouă, neconfirmată |
| 1 | Processing | În procesare — revizuire stoc și disponibilitate |
| 2 | Pending Payment | Așteptare plată în avans |
| 3 | Confirmed | Confirmată — se poate genera avizul de livrare |
| 4 | Shipping | Preluată de curier |
| 5 | Delivered | Livrată și finalizată |
| 8 | Cancelled | Anulată |
| 9 | On Hold | Suspendată temporar |
| 14 | Paid | Plătită |
| 15 | Ready | Pregătită pentru livrare |
Aprobare comandă:
Comenzile pot necesita aprobare înainte de confirmare — approve_status: 0 (pending) → 1 (aprobat) → -1 (respins). Configurabil per canal de vânzare.
Câmpuri cheie pe comandă:
- Client (
id_contact) — legătura cu fișa clientului - Canal (
channel_id) — sursa comenzii - Produse + cantități + prețuri
- Adresă livrare
- Mod de plată
2. Aviz de Livrare (Goods Delivery Note) — Pregătirea comenzii
Unde: /admin/warehouse/manage_delivery
Creare:
- Automată: când comanda ajunge la status Confirmed (3) sau Shipping (4), sistemul creează automat avizul de livrare via
omnisales_auto_create_goods_delivery_with_invoice() - Manuală: din comanda confirmată, buton Generează Aviz Livrare
Ce conține avizul:
- Toate liniile de produse din comandă (cod, denumire, cantitate, preț)
- Depozitul sursă
- Adresa clientului (copiată din comandă)
- Număr unic (prefix configurable + auto-increment)
Statusuri aviz:
| Status | Descriere |
|---|---|
ready_for_packing |
Creat, await picking |
packed |
Produsele au fost împachetate; packing list creat |
Picking (colectarea produselor):
Operatorul de depozit preia avizul (fizic sau pe ecran) și colectează produsele marcate. Stocul nu se scade definitiv decât la finalizarea livrării sau la generarea facturii.
3. Packing List — Ambalare și pregătire colet
Unde: /admin/warehouse/manage_packing_list
Creare:
- Din avizul de livrare aprobat — buton Crează Packing List
- Suportă packing parțial (
type_of_packing_list = 'partial'): dacă nu ai toate produsele în stoc, poți livra parțial și genera un al doilea packing list ulterior
Date obligatorii pentru packing list:
| Câmp | Note |
|---|---|
| Produse + cantități | Copiate din aviz; ajustabile dacă livrare parțială |
| Greutate (kg) | Obligatoriu pentru generarea AWB |
| Lungime / Lățime / Înălțime (cm) | Dimensiuni colet — obligatorii pentru curier |
| Adresă livrare | Copiată din comandă; editabilă |
| Serviciu curier | Selectezi din lista Innoship (standard, express, etc.) |
Statusuri packing list:
| Status | Descriere |
|---|---|
wh_ready_to_deliver |
Creat, în așteptare AWB |
wh_in_transit |
AWB generat, colet preluat de curier |
wh_delivered |
Confirmat livrat |
Aprobare packing list:
Dacă fluxul de aprobare e activ, managerul aprobă packing list-ul (approval = 1) înainte de generarea AWB.
4. AWB — Generarea documentului de transport
CRMConnect oferă două modalități de generare AWB, care pot fi folosite simultan în funcție de comandă:
Opțiunea A — Innoship (230+ curiieri, 35 de țări)
Unde: Buton Generează AWB din packing list → selectezi Innoship
sau direct din /admin/innoship/awb
Condiții prealabile:
innoship_api_key+innoship_external_idconfigurate la/admin/innoship/settings- Curier și serviciu selectate; dimensiuni + greutate completate; adresă validă
Ce se întâmplă la generare:
- CRM trimite request la API Innoship cu datele coletului
- Innoship returnează: număr AWB + cod tracking
- CRM creează înregistrare în
wh_omni_shipments - Status packing list →
wh_in_transit; Status comandă →Shipping (4) - AWB disponibil pentru printare (PDF A4 sau termic)
- Log creat în
innoship_audit_log - Tracking number trimis automat înapoi în WooCommerce/Shopify (dacă e canal OMS)
Curierii disponibili prin Innoship: FanCourier, Cargus, DPD, Sameday, GLS, DHL, TNT, FedEx și 220+ alții — livrare în 35 de țări.
Batch print: selectezi mai multe AWB-uri din lista Innoship → printezi toate dintr-un singur pas.
Opțiunea B — Curierat Direct: Cargus / FanCourier / Palex
Unde: Buton Generează AWB din packing list → selectezi curierul direct
sau din /admin/couriers
Configurare per curier (/admin/couriers/settings):
| Curier | Credențiale necesare |
|---|---|
| Cargus | URL API + cheie abonament + utilizator/parolă + punct ridicare |
| FanCourier | URL API + utilizator/parolă + ID client (workpointuri sincronizate automat) |
| Palex | Credențiale API Palex + punct de ridicare |
Rezultat: Număr AWB returnat, etichetă printabilă, tracking în timp real din CRM, audit log per apel API.
Când alegi Direct vs. Innoship:
| Situație | Recomandare |
|---|---|
| Contract direct cu un curier național | Curierat Direct |
| Livrări internaționale (35+ țări) | Innoship |
| Volum mare, comparare tarife automate | Innoship |
| Batch print zilnic optimizat | Innoship |
4b. eTransport ANAF (România) — înainte de plecare
Obligatoriu dacă valoarea sau tipul transportului depășesc pragul legal.
Se completează manual — NU se generează automat din comandă sau aviz.
Unde: /admin/etransport → Add Declaration
Completezi înainte ca transportul să plece: vehicul, rută, bunuri (cod NC tarifar, greutate, valoare), referință aviz (opțional). La trimitere primești UIT — codul unic de transport pe care șoferul îl are la el.
Detalii complete: eTransport — Declarare ANAF
Alternativă directă — modulul Couriers:
Dacă ai contracte directe cu Cargus sau FanCourier (fără agregator), poți genera AWB-urile prin modulul Couriers (/admin/couriers) — configurezi API key-urile direct cu fiecare curier, fără intermediar.
| Soluție | Curierii suportați | Când o folosești |
|---|---|---|
| Innoship | Fan Courier, DPD, Cargus, Sameday, GLS, DHL, + alții | Ai contract cu Innoship ca agregator |
| Couriers direct | Cargus, FanCourier | Ai contract direct; vrei integrare fără agregator |
Tracking:
Din lista AWB (/admin/innoship/awb sau /admin/couriers/awb), statusul de livrare se actualizează automat prin sincronizarea periodică.
5. Factura — Cererea de plată
Unde: /admin/invoices
Generare:
| Mod | Când |
|---|---|
| Automată la confirmare | Dacă e activată opțiunea create_invoice = on pe canal — factura se generează când comanda atinge status Shipping (4) |
| Automată la livrare | Dacă e configurată generarea la status Delivered (5) |
| Manuală | Din comanda confirmată, buton Crează Factură; sau din avizul de livrare |
Legăturile create:
cart.number_invoice→invoices.idgoods_delivery.invoice_id→invoices.id
Conținutul facturii:
Liniile se preiau din comandă: produse, cantități, prețuri, taxe. Adresa de facturare vine din profilul clientului sau din comandă.
6. Livrare finalizată și retur
Confirmarea livrării:
Când Innoship confirmă livrarea (product_delivered):
- Statusul packing list →
wh_delivered - Statusul comenzii →
Delivered (5) - Stocul e scăzut definitiv din depozit
Retur (dacă e cazul):
| Câmp | Note |
|---|---|
| Fereastra de retur | Configurabilă (default 30 zile) |
| Tip retur | manual, partially, fully |
| Tabel | wh_order_returns — linked la original_order_id |
| Refund | Dacă se aprobă returul, se generează rambursare în omni_refunds |
Returul de la client → Aviz de Recepție Retur (/admin/warehouse/manage_order_return_receipt)
Ce se creează automat
| Eveniment | Se creează automat |
|---|---|
| Comandă sincronizată din WooCommerce/Shopify | Comandă OmniSales cu client și produse |
| Comandă → status Confirmed | Aviz de Livrare cu liniile comenzii |
| Packing list aprobat + AWB generat | wh_omni_shipments, log Innoship, status → In Transit |
Comandă → status Shipping (dacă create_invoice = on) |
Factură cu liniile comenzii |
| Livrare confirmată de Innoship | Status comandă → Delivered, stoc scăzut |
Puncte unde fluxul poate bloca
| Problemă | Cauză probabilă | Soluție |
|---|---|---|
| Comanda nu apare din WooCommerce | Sync cron nu rulează sau credențiale incorecte | Verifică /admin/woocommerce/stores și cron |
| Avizul de livrare nu se generează automat | Opțiunea auto-create dezactivată pe canal | Activează din setările canalului de vânzare |
| Eroare la generarea AWB | Adresă client inexistentă în baza Innoship | Verifică ortografia localității; contactează Innoship |
| Dimensiuni/greutate lipsesc | Câmpurile nu au fost completate în packing list | Completează obligatoriu toate 4 câmpuri fizice |
| Stocul e 0 dar comanda e confirmată | Stoc insuficient în depozit | Verifică avizul de recepție pending sau fă ajustare de stoc |
| Factura nu se generează automat | create_invoice dezactivat pe canal |
Activează din /admin/omni_sales/omni_sales_channel → Edit canal |
Audit și rapoarte
- Audit Sincronizări —
/admin/omni_sales/diary_sync— log sincronizări WooCommerce/Shopify - Innoship Audit Log —
/admin/innoship/audit— toate operațiunile AWB - Rapoarte OmniSales —
/admin/omni_sales/report— comenzi per canal, status, perioadă - Istoric Inventar —
/admin/warehouse/warehouse_history— mișcări de stoc
Module implicate — documentație detaliată
- Omni Sales Orders · Sales Channels
- Delivery Notes
- Packing Lists
- Innoship Couriers
- Invoices
- WooCommerce · Shopify
- Warehouse Reports
Configurați factura automată în setările WooCommerce și Shopify pentru a genera automat o factură CRM draft când o comandă atinge un anumit status — aceasta elimină crearea manuală a facturilor pentru fiecare comandă online.
Verificați Auditul de Sincronizare al Canalelor zilnic pentru erori. O singură eroare de sincronizare nocturnă înseamnă că comenzile clienților nu sunt în sistem — echipa de fulfillment procesează alte lucrări în timp ce acele comenzi așteaptă fără ca nimeni să știe.