CRMconnect Azuvio · Docs

OMS Order Operator

Department: OMS & E-commerce
Level: Operational
Primary objective: Daily processing of orders from all channels — from entry to confirmed delivery

What this role does

The Order Operator manages the unified order queue from all sources: online stores (WooCommerce/Shopify), B2B Portal, manual orders from Sales, EDI orders from retailers and distributors, and orders received via API from external systems. They ensure every order correctly completes the full cycle: validation → approval → confirmation → delivery note → AWB → delivery → returns.


Modules used daily

Module Where to find it What you use it for
OmniSales Orders OmniSales → Orders Main order queue — all channels
Sales Channels OmniSales → Channels Configuration per channel — invoicing, approval, sync
Sales Orders Sales → Sales Orders Manual orders and B2B portal orders
Delivery Notes Warehouse → Delivery Notes Generate delivery note from confirmed order
Packing Lists Warehouse → Packing Lists Prepared packages → AWB
Innoship Integrations → Innoship AWB for 230+ couriers, 35 countries
Direct Couriers Operations → Couriers Direct AWB Cargus / FanCourier / Palex
Invoices Sales → Invoices Invoice at confirmation or dispatch
OMS Returns Warehouse → Returns Returns from customers
Sync Audit OmniSales → Sync Log WooCommerce/Shopify import errors

Order sources — where orders come from

All orders arrive in the unified queue /admin/omni_sales/order_list, regardless of source:

Source How it enters What to check
WooCommerce / Shopify Automatically via webhook (real-time) or cron (at intervals) Customer correctly created, SKU mapped, payment recognised
B2B Portal Customer places from their own catalogue Prices from Price List, available stock, approval if configured
Sales Order (manual/agent) Agent creates from /admin/estimates Correct prices and discounts, valid delivery address
EDI (EDIconnect) Automatic — retailer/distributor sends X12 850 or EDIFACT ORDERS via AS2 Correct product/SKU mapping, quantity, contract conditions
External API Third-party system POSTs to REST endpoint omni_sales/orders Complete data, customer associated, products existing
Manual (staff) Operator creates directly from /admin/omni_sales/order_list → Add All mandatory fields completed
POS Counter/terminal sale Immediate payment, cash receipt generated automatically
Pre-order Order with future delivery Promised delivery date, stock not checked immediately

Daily routine

Morning — triage (20–30 min)

1. /admin/omni_sales/order_list → filter: status Draft (0) or Processing (1)
   → New orders arrived overnight (WooCommerce, B2B Portal, EDI)
   → Review and process

2. Orders with approve_status = 0
   → Pending approval → send to approver or approve yourself (if permitted)

3. /admin/omni_sales/diary_sync
   → WooCommerce/Shopify sync errors from previous night
   → Resolve errors (missing SKU, uncreated customer, unrecognised payment)

4. Orders status 16 (Stock Unavailable)
   → Back-orders — notify Acquisitions for urgent RFQ

5. /admin/warehouse/manage_packing_list → packages without AWB
   → Complete dimensions/weight → generate AWB

During the day

New order → review → confirm (status 3)
  ↓
Invoice generated automatically (if configured on channel)
  ↓
Delivery note created (automatic or manual)
  ↓
Warehouse: picking + packing + weighing + dimensions
  ↓
Generate AWB (Innoship or direct courier)
  ↓
Order → status Shipping (4)
  ↓
Courier delivers → status Delivered (5) — automatically via tracking

Weekly

  • Returns report: new requests + approved + stock re-entered
  • On Hold orders > 3 days → escalate or resolve
  • Stock Unavailable orders > 7 days → check procurement status

Order status — action guide

Code Status What to do
0 Draft Fully check: products, prices, customer, address → confirm or escalate
1 Processing Check stock and availability
2 Pending Payment Waiting for advance payment confirmation — don't generate delivery note until paid
3 Confirmed Delivery note created → warehouse takes over
4 Shipping AWB generated, package with courier
5 Delivered Complete cycle ✓
9 On Hold Issue (stock, payment, address) → resolve and restart
14 Paid Paid — can generate delivery note
15 Ready Stock reserved, warehouse ready for picking
16 Stock Unavailable Back-order — notify Acquisitions, order awaits
11 Return Pending Return request pending — decide: approve or reject
7 Return Return fully approved and processed
12 Partial Return Partial return — some products returned
8 Cancelled Cancelled — reserved stock released

The approval flow

If approval rule is active on channel:

approve_status Meaning Your action
0 Pending Send to approver or approve if you have permission
1 Approved Can process order normally
-1 Rejected Customer notified automatically; order not processed

Approval rules are configured per channel — e.g. "all B2B orders > 10,000 RON require Sales Manager approval".


Processing by source type

WooCommerce / Shopify orders

Order appears in OmniSales (via webhook or cron)
  ↓
Check in diary_sync that import ran without errors
  ↓
Open order:
  → Customer created/associated correctly?
  → Products mapped correctly (SKU matching)?
  → Payment recognised (payment method mapped on channel)?
  ↓
If everything correct → confirm → automatic invoice + delivery note
  ↓
Status updated automatically in WooCommerce/Shopify (bidirectional sync)

Common sync errors:

Error Cause Resolution
Non-existent SKU WooCommerce product doesn't exist in CRM Create product in CRM with same SKU
Customer not created Duplicate email or missing mandatory field Check and correct customer file
Payment not recognised Payment method not mapped on channel Add mapping in channel settings
Delivery note blocked Insufficient stock Partial delivery or back-order

B2B Portal orders

Customer places order from their own catalogue
  ↓
Appears in OmniSales with Draft status
  ↓
Verify: does price match the customer's Price List?
  → If yes → confirm
  → If no → check Price List at /admin/sales/price_lists
  ↓
If order > approval threshold → send to Sales Manager
  ↓
Approval → status Confirmed → delivery note + invoice

EDI orders (from retailers/distributors)

EDIconnect handles EDI orders completely automatically — no manual actions needed for each order. Connecting a new retailer involves a few activation checkboxes; the actual configuration (mappings, certificates, protocols) is done by the CRMconnect team.

Supported protocols: API, AS2, sFTP, FTP secured — plus synchronisation with the customer's own ERP.

Retailer/distributor sends Purchase Order (X12 850 / EDIFACT ORDERS)
  ↓
EDIconnect receives and processes automatically
  ↓
Sales Order created automatically in OmniSales
  → Customer identified by partner's EDI ID
  → Products mapped per configured EDI codes
  ↓
You check the created order:
  → Do quantities and prices match the contract?
  → Is stock available?
  ↓
Confirm → system automatically sends EDI outbound:
  Order acknowledgement (X12 855 / EDIFACT ORDRSP) → partner
  ↓
On dispatch → Delivery Note EDI (X12 856 / EDIFACT DESADV) → partner automatically
On invoicing → Invoice EDI (X12 810 / EDIFACT INVOIC) → partner automatically

Where to monitor EDI: /admin/edi → audit log → messages received/sent per partner

External API orders

External system (ERP, marketplace, mobile app) POSTs to:
  POST {{base_url}}omni_sales/orders

  → Order appears in OmniSales with corresponding channel_id
  → Customer associated by ID or email
  → Products identified by SKU
  ↓
Verify data is complete and correct
  ↓
Process normally like any other order

Managing back-orders (status 16 — Stock Unavailable)

Order received → stock check → MISSING
  ↓ status: 16 (Stock Unavailable)

1. Notify Acquisitions → create RFQ for missing products
2. Notify customer with estimated ETA (manually or via Workflow)
3. Order stays in status 16 → monitor daily

On replenishment (approved receipt note in warehouse):
4. Verify stock has entered the system
5. Manually change status to Confirmed (3)
6. Create delivery note → continue normal flow

Important: system does not automatically promote from status 16. You monitor the list daily.


Generating AWB — couriers

Option A — Innoship (aggregator, 230+ couriers, 35 countries)

When: international deliveries, high volume, comparing rates, batch printing

From approved packing list → Generate AWB
  → Select courier and service (Standard, Express, Same-day)
  → System sends request to Innoship API
  → Innoship returns: AWB number + tracking code
  → Label available: A4 or thermal 100×150mm
  → Automatic status → Shipping (4) in OmniSales
  → Status updated in WooCommerce/Shopify automatically

Prerequisites: dimensions (L×W×H) + weight completed in packing list. Without them, AWB cannot be generated.

Option B — Direct couriers (no aggregator)

When: direct contract, domestic deliveries

Courier Configuration Advantage
Cargus /admin/couriers → Cargus API key Direct contract, no intermediary commission
FanCourier /admin/couriers → FanCourier credentials Same
Palex /admin/couriers → Palex credentials Same

Returns — complete process

Initiating the return

From customer (via B2B portal):

  • Customer requests return from order history → request appears with approval = 0

Manual (operator):

  • From the delivered order → Create Return button → fill in items + quantities + reason

Your decision

Situation Action
Product within return window, unused Approve (approval = 1)
Return window exceeded Reject (approval = 2) with reason
Defective product (regardless of window) Approve, mark quarantine if it can't be resold

On approval, automatically created:

  1. Return receipt note → stock re-entered (or in quarantine)
  2. Refund record in omni_refunds → Finance processes payment
  3. Customer loyalty points cancelled (if configured)

Return types:

  • fully — order returned in full → status 7
  • partially — some products → status 12
  • manual — adjustment without physical return (defective product without return)

Invoices and e-invoicing

Invoice generation — depends on channel configuration:

  • At confirmation (status 3) → if create_invoice = on on channel
  • At dispatch (status 4 / AWB generated)
  • Manually → from confirmed order → Create Invoice button

ANAF e-invoicing — automatic for B2B customers with valid VAT:

  • XML generated and submitted to ANAF on invoice issuance
  • ANAF registration number returned and stored on invoice
  • Check status: /admin/invoices → invoice → e-Invoice tab

Metrics to track

Indicator Target
Order processing time (Draft → Confirmed) < 2h on working days
Orders in Draft > 4h 0 — all reviewed and processed
Back-orders > 7 days Escalate to Acquisitions + notify customer
Daily sync errors 0 unresolved errors
Returns > 3 days without decision 0 — decide daily

Collaboration with other departments

Department How you collaborate
Warehouse You provide confirmed delivery notes; they generate packing list; you generate AWB
Sales Orders from Sales Orders (B2B portal, field agent) enter your queue
Acquisitions At status 16 (missing stock) → notify immediately for RFQ
Finance Invoice and e-invoice → generated by you, reconciled by them
Customer Support Customers with order issues open tickets → support includes you for resolution
IT/Admin WooCommerce sync issues, EDI errors, wrong SKU mappings → escalate to IT

Practical tips

Diary sync = the health of your channels. Check it in the morning before anything else. An undetected sync error can leave dozens of orders unimported — customers who paid and have no confirmation.

Status 16 is not forgotten, it's monitored. Every unresolved back-order is a customer who paid and has no goods. Check the stock-unavailable order list daily and communicate proactively with the customer.

Dimensions in packing list are not optional. Without L×W×H + weight the AWB can't be generated. If warehouse doesn't fill them in → AWB doesn't come out → order gets blocked. Set up a reminder or checklist with the warehouse.

EDI outbound is automatic, but you verify. Order acknowledgement and delivery note are sent automatically to the EDI partner on order confirmation in CRM. Monitor in /admin/edi that messages have been delivered (MDN acknowledge received).

Tip

Check the stock-unavailable order list daily — every order in this status is a customer who paid and has no goods. Proactive communication within 24 hours preserves the relationship; discovering the issue a week later does not.

Note

EDI outbound messages (order acknowledgement, delivery note) are generated automatically when you confirm an order — you do not send them manually, but verify in the EDI audit log that MDN acknowledgements are received to confirm the partner accepted them.