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
- Full monthly report per channel → present to management
- Review discounts expiring this month → decide whether to extend
- Verify sync intervals are optimised (not too frequent = server load, not too infrequent = delayed orders)
Mid-month
- Audit diary_sync — accumulated errors and patterns (repeated errors = structural mapping problem)
- Review orders cancelled this month → causes: stock, price, customer, back-order?
End of month
- Export OmniSales reports → KPIs vs. previous month
- Review active EDI partners — messages without activity > 30 days → check partnership status
- 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.
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.
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.