CRMconnect Azuvio · Docs

E-commerce & OMS Manager

Department: OMS & E-commerce
Level: Management
Primary objective: Omnichannel strategy, sales channel configuration, operational performance, and EDI integrations

What this role does

The E-commerce & OMS Manager configures and optimises the entire sales channel infrastructure: online stores, B2B portal, EDI with retailers and distributors, external APIs. They define approval rules, discount policies, sync settings, and report channel performance to management. They are responsible for every order source running without errors and for the Order Operator having correctly configured tools.


Modules used regularly

Module Where to find it What you use it for
Sales Channels OmniSales → Channels Complete per-channel configuration
OmniSales Settings OmniSales → Settings Global policies: returns, shipping fees, approvals
Trade Discounts OmniSales → Discounts Trade discounts, vouchers, per-client/group/product reductions
OmniSales Reports OmniSales → Reports Revenue per channel, trends, top products, returns
Sync Audit OmniSales → Sync Log WooCommerce/Shopify sync health
WooCommerce Integrations → WooCommerce Configure online stores
B2B Portal OmniSales → B2B Portal Configure B2B customer access
Price Lists Sales → Price Lists Prices per client/group/channel
Workflow Automation Integrations → Automation Notifications, automatic approvals, escalations
API Management Integrations → API Tokens for external integrations
EDIconnect /admin/edi Configure EDI partners, message monitoring

Configuring sales channels

Where: /admin/omni_sales/omni_sales_channel

Essential settings per channel

Setting Options Impact
Auto-confirm on/off If on → order goes directly to status 3 without manual review
Auto-invoice (create_invoice) on/off Invoice generated at confirmation or at dispatch
Auto-delivery note on/off Delivery note created automatically on confirmed order
Approval rules JSON per channel e.g. "orders > 10,000 RON require Sales Manager approval"
Price List Price list ID Prices shown to customers on this channel
Customer groups Group IDs Who has access to the channel
Shipping fee Fixed amount Default transport cost on channel
Status mapping JSON WooCommerce/Shopify status ↔ OmniSales status

Available channels and their configuration

WooCommerce / Shopify:

/admin/woocommerce/stores → Add store:
  → Store URL
  → Consumer Key + Consumer Secret (from WooCommerce → Settings → REST API)
  → Sync intervals:
     time2 = stock sync (e.g. 15 min)
     time3 = price sync (e.g. 60 min)
     time6 = import new orders (e.g. 5 min)
  → Webhook URL (for real-time push when order is placed)

B2B Portal:

/admin/omni_sales/setting → omni_b2b_portal_flow_enabled = 1
  → Customer logs in at /authentication/login
  → Sees catalogue with prices from assigned Price List
  → Places order → appears in OmniSales

Per customer:
  /admin/clients → edit client → Price List: [select list]
  
Per customer group:
  /admin/clients → Client Groups → assign Price List to group

Manual channel:

  • Operator creates orders directly from /admin/omni_sales/order_list → Add
  • Useful for phone, email, or in-person orders

Pre-order:

  • Channel for orders with future delivery
  • Stock not checked at placement
  • Customer notified when goods become available

EDIconnect — orders from retailers and distributors

Where: /admin/edi

What EDI means in the OMS context

EDI (Electronic Data Interchange) allows large retailers and distributors to send orders directly into CRMconnect — without email, without manual entry. CRMconnect is a native EDI Provider through the EDIconnect module.

EDI orders enter the system completely automatically. Connecting a new retailer means a few activation checkboxes — technical configuration (protocols, mappings, certificates) is done by the CRMconnect team, not by you.

Supported connection protocols:

Protocol Typical use
API Modern integrations, ERPs with REST API
AS2 Retail, automotive, international supply chain (HTTPS mutual TLS)
sFTP Secure file exchange — traditional retailers
FTP secured Legacy systems — extended compatibility

Supported EDI formats:

Standard Used by Order document
ANSI X12 US retailers, multinationals X12 850 (Purchase Order)
EDIFACT Europe, logistics EDIFACT ORDERS
UBL 2.1 European public administrations UBL Order
JSON/XML Modern systems Free format on API

ERP synchronisation: EDIconnect can also be connected to the company's own ERP (SAP, Navision, Saga, WinMentor, etc.) through the same protocols — orders, invoices, and delivery notes sync bidirectionally between CRMconnect and ERP without manual intervention.

Activating a new retailer/EDI partner

What you do: contact the CRMconnect team with the partner's details → check the activation box in /admin/edi. The CRMconnect team handles technical configuration (document mappings, protocols, AS2 certificates, SKU mapping).

What happens after activation:

Retailer 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
  ↓
Order Operator sees order in queue → checks → confirms
  ↓
Automatic outbound:
  Order acknowledgement (X12 855 / EDIFACT ORDRSP) → partner
  On dispatch: Delivery Note (X12 856 / EDIFACT DESADV) → partner
  On invoicing: Electronic Invoice (X12 810 / EDIFACT INVOIC) → partner

EDI monitoring

Daily: /admin/edi → audit log → check:

  • Messages received in last 24h (status: received/processed/error)
  • Delivery confirmation (MDN/acknowledge) received from partners
  • Errors — if any appear, escalate to CRMconnect team

Warning signals:

Signal What it means Your action
EDI order without confirmation (no MDN) Partner did not receive outbound message Escalate to CRMconnect team
0 EDI orders from an active partner Possible connection issue Check with partner and escalate to CRMconnect
Error creating order in OMS Incorrect SKU or customer mapping Escalate to CRMconnect team for reconfiguration

Trade discounts — configuration

Where: /admin/omni_sales/trade_discount

Discount structure

Discount "Summer 2026 — 15% Electronics"
  → Type: percentage (formal = 1), 15%
  → Period: 01.06.2026 – 31.08.2026
  → Applicable to: Product group = Electronics
  → Applicable for: Customer group = Retail
  → Channel: all channels (channel = 0)
  → Voucher: empty = applied automatically (no code)

Discount types and when to use them

Type Configuration Scenario
Automatic per group Group clients + group items All "VIP" group customers get -10% on all products
Voucher with code voucher field filled Email campaign: "Enter code SUMMER2026 for -15%"
Per specific customer clients field with IDs Strategic client — individually negotiated condition
Fixed amount formal = 0, discount = 50 "50 RON off orders over 500 RON"
Seasonal promotion start_time + end_time set Expires automatically at configured date

Discount journal: all discounts applied on orders are recorded in omni_log_discount — extract per period/campaign for ROI reporting.


OmniSales policies — global settings

Where: /admin/omni_sales/setting

Key settings you manage

Setting Recommendation Notes
omni_b2b_portal_flow_enabled 1 — enabled B2B portal active for customers
invoice_sync_configuration 1 — automatic Invoice created at confirmation/dispatch
omni_return_request_within_x_day 14–30 days Return window per commercial policy
omni_fee_for_return_order 0–10% Restocking fee
omni_return_policies_information Full text Displayed to customer at return initiation
omni_send_review_email_on_delivery 1 Automatic review email after delivery
omni_google_review_url Google Reviews URL Direct customer to review
omni_order_approval_rules JSON with rules Per channel and per value

Configuring approval rules

// Example: mandatory approval on B2B Portal for orders > 10,000 RON
{
  "channel_id": 2,
  "min_value": 10000,
  "approver_role": "sales_manager",
  "notify_email": "[email protected]"
}

Managing external API channels

Where: /admin/api/api_management

External systems (ERP, marketplaces, mobile apps) can send orders via REST API:

POST {{base_url}}omni_sales/orders
Headers: authtoken: <token>
Body: {
  "channel_id": <channel ID>,
  "client_id": <client ID>,
  "items": [{...}],
  "shipping_address": {...}
}

What to configure:

  • Dedicated authentication token per external system (/admin/api/api_management)
  • Dedicated sales channel per API source (for separate reporting)
  • Confirmation webhook (if external system wants notification on status change)

Reporting and KPIs

Where: /admin/omni_sales/report

Monthly reports for management

Report What you report
Revenue per channel WooCommerce vs. B2B Portal vs. EDI vs. Manual vs. POS
Order volume per channel No. orders + average order value per channel
Conversion rate Orders Draft → Confirmed / Cancelled
Top products per channel What sells best on each channel
Discount effectiveness Value of discounts given vs. revenue generated
Return rate per channel % returns per channel — indicates order/product quality
Back-orders Orders in status 16 vs. resolved within SLA
Sync errors No. WooCommerce/Shopify errors + average resolution time

Key KPIs

KPI Formula Target
Processing time (Draft → Confirmed) Average hours per channel < 2h on working days
Order approval rate Approved / (Approved + Rejected) > 95%
Unresolved sync errors diary_sync errors without resolution > 24h 0
Return rate Returns / Delivered orders < 5% per channel
AWB generated on time Confirmed orders with AWB < 24h > 98%
B2B portal availability Portal uptime > 99.9% (monitored by IT)

Workflow Automation — what to configure

Where: /admin/workflow_automation

Trigger Action Benefit
New order on B2B Portal Notification → OMS Operator Immediate processing
Order > 10,000 RON Approval task → Sales Manager Control of large orders
Draft > 4h unattended Notification → supervisor Zero forgotten orders
Status → Confirmed Delivery note created + warehouse notification Automatic fulfilment
Status → Delivered Review email → customer Google feedback collection
Status → 16 (Stock Unavailable) Task "Urgent procurement" → Acquisitions Fast back-order resolution
Return approved Confirmation email → customer + task "Process refund" → Finance Fast communication
WooCommerce sync error Urgent notification → you Intervention within < 1h
EDI message received with error Notification → IT/Admin Mapping resolution
Overdue invoice (B2B portal client) Payment reminder email → customer Cash flow

Monthly routine

Start of month

  1. Full monthly report per channel → present to management
  2. Review discounts expiring this month → decide whether to extend
  3. Verify sync intervals are optimised (not too frequent = server load, not too infrequent = delayed orders)

Mid-month

  1. Audit diary_sync — accumulated errors and patterns (repeated errors = structural mapping problem)
  2. Review orders cancelled this month → causes: stock, price, customer, back-order?

End of month

  1. Export OmniSales reports → KPIs vs. previous month
  2. Review active EDI partners — messages without activity > 30 days → check partnership status
  3. Plan discount campaigns for next month (coordinate with Marketing)

Collaboration with other departments

Department How you collaborate
Order Operator You provide correct configuration: channels, discounts, approval policies
Sales Coordinate B2B Price Lists and large order approval rules
Marketing Coordinate discount campaigns and vouchers
Warehouse Configure WMS integration with OmniSales: automatic delivery notes, statuses
Finance Set up automatic invoicing per channel; reconcile revenues per channel
IT/Admin WooCommerce technical issues, EDI errors, webhook configuration, API tokens
Acquisitions Repeated back-order patterns → adjust minimum stock or procurement planning

Practical tips

Each channel has different behaviour — configure separately. A discount valid on B2B Portal doesn't automatically apply on WooCommerce. An approval rule configured on one channel doesn't affect others. Check per channel at every policy change.

EDI outbound is reputation. If a retailer doesn't receive the order acknowledgement (X12 855) or delivery note (X12 856) within the agreed timeframe — you risk SLA penalties. Monitor MDNs daily.

Diary sync is the first health indicator. 0 errors in diary_sync = 0 lost orders. 10 errors = 10 customer orders whose owners don't know there's a problem. Check it every morning before any report.

Price Lists are digital contracts. A B2B customer who sees wrong prices in the portal loses trust immediately. Verify Price List → customer mapping after any price changes.

Tip

Make Diary Sync your first morning check — zero sync errors means zero lost orders. A single overnight error can leave customer orders unprocessed while the fulfilment team works on other tasks without knowing orders are missing.

Warning

B2B portal Price Lists are digital contracts with distributors — incorrect prices visible in the portal erode trust immediately. Verify every Price List → customer mapping after any price structure change, not just new product additions.