Ongoing WMS
Comprehensive technical documentation for the Omnium Ongoing Warehouse Management System integration. Learn how to configure, sync orders, inventory, products, and deliveries with Ongoing WMS.
The Omnium Ongoing integration provides a bidirectional synchronization between Omnium OMS and Ongoing Warehouse (WMS). This integration enables automated warehouse fulfillment workflows including order export, inventory synchronization, product management, delivery tracking, and return processing.
Overview
The integration supports:
- Order Export: Exports orders to Ongoing for warehouse fulfillment
- Order Sync: Receives order status updates (shipped, picked, canceled) from Ongoing
- Inventory Sync: Synchronizes stock levels from Ongoing warehouses
- Product Export: Exports product/article data to Ongoing
- Delivery Export: Exports purchase orders (inbound deliveries) to Ongoing
- Purchase Order Sync: Receives goods reception updates from Ongoing
- Return Sync: Processes returns registered in Ongoing
Architecture
Configuration
Connector Options
The Ongoing integration is configured via connector options in the tenant settings. Add a connector with the name Ongoing.
| Property | Type | Description |
|---|---|---|
| Host | string | The Ongoing API base URL (e.g., https://api.ongoingwarehouse.com/) |
| Username | string | API username for authentication |
| Password | string | API password for authentication |
| SyncOrders | bool | Enable order status synchronization from Ongoing |
| SyncPurchaseOrders | bool | Enable purchase order/delivery synchronization |
| SyncInventory | bool | Enable inventory level synchronization |
| SyncReturns | bool | Enable return synchronization |
| ShippedOrderStatus | string | Omnium status a shipped order is set to when Ongoing reports it as shipped. Defaults to ShippedFromWarehouse. Set this when your workflow uses a different status name for shipped orders (for example Ship). See Shipped Order Status. |
Example Configuration
Store/Warehouse Configuration
For each warehouse that should integrate with Ongoing, configure the following properties on the Store entity:
| Property | Type | Description |
|---|---|---|
| IsOngoingStore | bool | Set to true to mark the store as an Ongoing warehouse |
| OngoingGoodsOwnerId | ExternalId | The Goods Owner ID in Ongoing (numeric) |
| OngoingWarehouseId | ExternalId | The Warehouse ID in Ongoing (numeric) |
Example Store Configuration
Order Export
Orders are exported to Ongoing by the ExportOrder workflow step. Adding the Ongoing connector alone does not export anything — the step is the trigger.
Workflow Step
Add an ExportOrder step to the order workflow, on the status where the order should be sent to the warehouse (typically New). Set RunAfterOrderIsSaved to true so the step runs after the order has been saved — once the earlier workflow steps have enriched and allocated it — and the order is exported in its final, persisted state:
Export Flow
- The order reaches a status where the
ExportOrderstep runs - The system checks if the shipment's warehouse is marked as an Ongoing warehouse (
IsOngoingStore is true) - Each shipment is exported as a separate order to Ongoing (format:
{OrderNumber}-{ShipmentId}) - The Ongoing Order ID is stored as an external ID on the shipment
- Shipment status is updated to
InProgressWarehouse
Order Mapping
| Omnium Field | Ongoing Field | Description |
|---|---|---|
| OrderNumber + ShipmentId | OrderNumber | Combined as {OrderNumber}-{ShipmentId} |
| OrderType | OrderType.Code | Order type code |
| CustomerEmail | EmailNotification.Value | Customer email for notifications |
| CustomerPhone | SmsNotification.Value | Customer phone for notifications |
| ShippingAddress | Consignee | Delivery address details |
| OrderNotes | OrderRemark | Combined order notes |
| ShippingTotal | FreightPrice | Shipping cost |
Transporter Mapping
The integration supports multiple transporter integrations:
- Unifaun: Maps
transporterCode,transporterServiceCode, andservicePointCode - Porterbuddy: Special handling with
ONGOING_PORTERBUDDYtransporter code - Ingrid: Maps TOS ID to
PreparedTransportDocumentId
Order Cancellation
When an order or shipment is canceled in Omnium, the integration updates the Ongoing order status to 1000 (Canceled).
Order Synchronization
The OngoingSyncScheduledTask periodically fetches order updates from Ongoing and synchronizes them back to Omnium.
Sync Flow
- Scheduled task queries Ongoing for orders changed since last sync
- Each changed Ongoing order is matched to an Omnium order and shipment. Only shipments currently at
InProgressWarehouse(the status set when the order was exported) are considered - The Ongoing status is mapped to an Omnium status via the
OngoingStatusproperty on the order status configuration - If the mapped status is a shipped, picked-up, or canceled status, the shipment is advanced and its workflow runs
- Tracking information (waybill, tracking URL) is updated on shipments
- Shipping labels are downloaded and stored in blob storage
- For partial deliveries, new shipments are created in Omnium
Status Mapping
Configure status mapping via the OngoingStatus property on your order status configuration:
The mapped Omnium status must be one of the recognized target statuses: Ship, PickedUp, OrderCanceled, or ShippedFromWarehouse. If the OngoingStatus property points to any other status, the sync does not advance the order.
Shipped Order Status
By default, an order reported as shipped by Ongoing is set to ShippedFromWarehouse. If your workflow's shipped status uses a different name (for example Ship), set the ShippedOrderStatus connector option to that name so the order lands on the correct status:
If the shipped order is set to a status name that does not exist in your workflow, no workflow steps run for it (payment capture, inventory reduction, notifications), and the order appears to stall. Make sure the target status — either ShippedFromWarehouse or the value of ShippedOrderStatus — exists in your order workflow.
Tracking Information
The following tracking data is synchronized from Ongoing:
| Field | Source | Description |
|---|---|---|
| ShipmentTrackingNumber | Waybill or ParcelNumber | Tracking number |
| ShipmentTrackingLink | TrackingUrl | Link to carrier tracking page |
| LabelLink | Order files (label*.pdf) | Shipping label PDF (stored in blob) |
| ReturnLabelLink | Order files (return*.pdf) | Return label PDF (stored in blob) |
Return Synchronization
Returns registered in Ongoing are automatically synchronized to Omnium and create return records.
Return Flow
- The scheduled task queries Ongoing for orders that have returned items not yet reported back. The trigger is at line level: a line whose returned quantity in Ongoing exceeds the quantity already reported to Ongoing.
- For each such line, a return is created in Omnium with:
- The returned quantity (the difference between Ongoing's returned and already-reported quantities)
- A return type derived from Ongoing's return cause (see Return Reason Mapping)
- A credit for the returned lines, and stock marked as updated
- After processing, Ongoing's
ReportedReturnedNumberOfItemsis set equal to itsReturnedNumberOfItems, so the same return is not processed again.
Return Reason Mapping
The return cause registered in Ongoing is carried onto the Omnium return as its return type. Ongoing's return cause code is matched against the Id of a configured Return Type in the return settings (Configuration → Settings → Return settings → Return Types). For the cause to resolve to a named type, Ongoing must send a cause code equal to a Return Type Id; otherwise the code is stored on the return line as-is without matching a configured type.
Order Status After a Return
Creating a return does not by itself change the order or shipment status to Returned or PartiallyReturned. The status only changes if the return workflow includes an UpdateOrderStatus step. Without that step, the return is recorded (return lines, credit, stock) but the order keeps its current status.
Return Properties
| Property | Description |
|---|---|
| ReturnedByOngoing | Set to true on returns created by sync |
| OngoingReturnError | Contains error details if return sync fails |
Inventory Synchronization
Inventory levels are synchronized from Ongoing to Omnium.
Sync Methods
- Delta Sync: Fetches inventory changes since last sync (limited to 24 hours lookback)
- Full Sync: Scrolls through all articles for a specific warehouse
Inventory Flow
- Query Ongoing for inventory per warehouse
- Match Ongoing warehouse ID to Omnium warehouse via
OngoingWarehouseIdexternal ID - Calculate inventory change (delta between Ongoing sellable quantity and current Omnium inventory)
- Apply inventory updates to Omnium
Configuration Note
The inventory sync uses SellableNumberOfItems from Ongoing, which represents the available-to-sell quantity.
Product Export
Products are exported to Ongoing as "Articles"
Export Flow
- For products with variants, each variant is exported as a separate article
- The Ongoing Article System ID is stored as an external ID
Product Mapping
| Omnium Field | Ongoing Field | Description |
|---|---|---|
| SkuId | ArticleNumber | SKU identifier |
| SkuId | ProductCode | Product code |
| Weight | Weight | Weight in kilograms |
| Ean | BarCodeInfo.BarCode | EAN barcode |
| Description | Description | Product description |
| Name + Color | ArticleName | Combined article name |
| Color | ArticleColor | Color attribute |
| Size | ArticleSize | Size attribute |
| Brand | SupplierInfo.SupplierName | Brand/supplier name |
| SupplierSkuId | SupplierInfo.SupplierArticleNumber | Supplier article number |
| MainImageUrl | LinkToPicture | Product image URL |
Deleted Products
When a product is deleted in Omnium:
IsActiveis set tofalse- Barcode is cleared (to avoid duplicate barcode conflicts in Ongoing)
Delivery/Purchase Order Export
Deliveries (inbound goods) are exported to Ongoing as Purchase Orders by the ExportDeliveries workflow step.
Workflow Step
Add an ExportDeliveries step to the purchase order workflow (not a separate delivery workflow), on the status where deliveries should be sent to Ongoing (for example Confirmed):
ExportDeliveries only exports deliveries that already exist on the purchase order. Create the delivery on the purchase order first — otherwise the step finds nothing to export.
Export Flow
- The purchase order reaches a status where the
ExportDeliveriesworkflow step runs - The step collects the deliveries linked to the purchase order lines
- Each delivery is mapped to an Ongoing Purchase Order
- The Ongoing Purchase Order ID is stored as a property on the delivery
Delivery Mapping
| Omnium Field | Ongoing Field | Description |
|---|---|---|
| Delivery.Id | PurchaseOrderNumber | Delivery ID |
| Supplier.Name | SupplierInfo.SupplierName | Supplier name |
| Supplier.Id | SupplierInfo.SupplierNumber | Supplier ID |
| InvoiceNumber | ReferenceNumber | Invoice reference |
Purchase Order Status Sync
Purchase order status updates are synchronized from Ongoing to update delivery status in Omnium.
Status Constants
| Status | Code | Description |
|---|---|---|
| Ankommet | 199 | Arrived |
| Varslet | 200 | Notified |
| Inkommende | 300 | Incoming |
| Avvik | 400 | Deviation |
| Mottatt | 500 | Received |
| Makulert | 900 | Voided |
| Avbrutt | 1000 | Canceled |
Goods Reception
When items are received in Ongoing, the integration:
- Calculates newly delivered quantities
- Creates goods reception lines
- Updates delivery line item quantities
- Processes inventory transactions
Scheduled Tasks
OngoingSyncScheduledTask
Main synchronization task that runs all enabled sync operations.
| Configuration | Description |
|---|---|
| Task Name | OngoingSyncScheduledTask |
| Group | Plugins |
| Type | Delta (time-based) |
Runs the following operations based on connector settings:
SyncPurchaseOrders: Sync purchase order statusesSyncOrders: Sync order statuses and shipping infoSyncReturns: Process returns from OngoingSyncInventory: Sync inventory levels
OngoingProductSyncScheduledTask
Scheduled task for bulk product export to Ongoing.
| Configuration | Description |
|---|---|
| Task Name | OngoingProductSyncScheduledTask |
| Group | Plugins |
| Type | Delta (time-based) |
Exports products with available inventory that have been modified since the last sync.
External IDs and Properties
External ID Providers
| Provider | Entity | Description |
|---|---|---|
OngoingOrderId | Order, Shipment | Ongoing order system ID |
OngoingArticleId | Product, Variant | Format: {ArticleSystemId}_{GoodsOwnerId} |
OngoingPurchaseOrderId | Delivery | Ongoing purchase order ID |
OngoingGoodsOwnerId | Store | Goods owner ID in Ongoing |
OngoingWarehouseId | Store | Warehouse ID in Ongoing |
Properties
| Property Key | Entity | Description |
|---|---|---|
IsOngoingStore | Store | Marks store as Ongoing warehouse |
IsDeliveredShipment | Shipment | Marks shipment as delivered from Ongoing |
IsOrderLineDelivered | OrderLine | Marks line as delivered |
OngoingPurchaseOrderStatus | Delivery | Current Ongoing PO status |
ReturnedByOngoing | Order | Return created by Ongoing sync |
OngoingReturnError | Order | Error details for return sync |
Error Handling
The integration implements comprehensive error handling:
- Export Failures: Errors are logged and stored on the entity
- Sync Failures: Individual sync operations continue even if one fails
- Return Sync Errors: Errors are stored in
OngoingReturnErrorproperty andReportedReturnedNumberOfItemsis updated to prevent repeated failures
Troubleshooting
Common Issues
| Issue | Possible Cause | Solution |
|---|---|---|
| Orders not exporting | Warehouse not configured | Verify IsOngoingStore property |
| No Goods Owner ID | Missing external ID | Add OngoingGoodsOwnerId to store |
| Inventory not syncing | Warehouse ID mismatch | Verify OngoingWarehouseId mapping |
| Return sync fails | Line item mismatch | Check OngoingReturnError property |
Orders stuck at InProgressWarehouse | Shipped status name not present in the workflow | Set ShippedOrderStatus to a status that exists in your workflow, or name the shipped status ShippedFromWarehouse |
| Return created but order status unchanged | Return workflow has no UpdateOrderStatus step | Add an UpdateOrderStatus step to the return workflow |
Debugging Tips
- Verify connector options are correctly configured
- Ensure store has both
OngoingGoodsOwnerIdandOngoingWarehouseId - Check scheduled task execution logs for sync errors