PluginsWMS

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

┌─────────────┐                    ┌─────────────────┐
│   Omnium    │◄──────────────────►│  Ongoing WMS    │
│     OMS     │   REST API         │                 │
└─────────────┘                    └─────────────────┘
      │                                    │
      │ ┌─────────────────────────────────┐│
      │ │  Data Flows:                    ││
      │ │  → Orders (export)              ││
      │ │  ← Order status (sync)          ││
      │ │  → Products/Articles (export)   ││
      │ │  ← Inventory levels (sync)      ││
      │ │  → Deliveries/POs (export)      ││
      │ │  ← PO status & reception (sync) ││
      │ │  ← Returns (sync)               ││
      │ └─────────────────────────────────┘│
      ▼                                    ▼

Configuration

Connector Options

The Ongoing integration is configured via connector options in the tenant settings. Add a connector with the name Ongoing.

PropertyTypeDescription
HoststringThe Ongoing API base URL (e.g., https://api.ongoingwarehouse.com/)
UsernamestringAPI username for authentication
PasswordstringAPI password for authentication
SyncOrdersboolEnable order status synchronization from Ongoing
SyncPurchaseOrdersboolEnable purchase order/delivery synchronization
SyncInventoryboolEnable inventory level synchronization
SyncReturnsboolEnable return synchronization

Example Configuration

{
  "Connectors": [
    {
      "Name": "Ongoing",
      "Host": "https://api.ongoingwarehouse.com/",
      "Username": "your-username",
      "Password": "your-password",
      "Properties": [
        { "Key": "SyncOrders", "Value": "true" },
        { "Key": "SyncPurchaseOrders", "Value": "true" },
        { "Key": "SyncInventory", "Value": "true" },
        { "Key": "SyncReturns", "Value": "true" }
      ]
    }
  ]
}

Store/Warehouse Configuration

For each warehouse that should integrate with Ongoing, configure the following properties on the Store entity:

PropertyTypeDescription
IsOngoingStoreboolSet to true to mark the store as an Ongoing warehouse
OngoingGoodsOwnerIdExternalIdThe Goods Owner ID in Ongoing (numeric)
OngoingWarehouseIdExternalIdThe Warehouse ID in Ongoing (numeric)

Example Store Configuration

{
  "Id": "warehouse-01",
  "Name": "Main Warehouse",
  "IsWarehouse": true,
  "Properties": [
    { "Key": "IsOngoingStore", "Value": "true" }
  ],
  "ExternalIds": [
    { "Provider": "OngoingGoodsOwnerId", "ExternalId": "123" },
    { "Provider": "OngoingWarehouseId", "ExternalId": "456" }
  ]
}

Order Export

Orders are exported to Ongoing when the order workflow triggers the OngoingOrderExporter.

Export Flow

  1. Order enters a status that triggers the Ongoing export workflow step
  2. The system checks if the shipment's warehouse is marked as an Ongoing warehouse (IsOngoingStore is true)
  3. Each shipment is exported as a separate order to Ongoing (format: {OrderNumber}-{ShipmentId})
  4. The Ongoing Order ID is stored as an external ID on the shipment
  5. Shipment status is updated to InProgressWarehouse

Order Mapping

Omnium FieldOngoing FieldDescription
OrderNumber + ShipmentIdOrderNumberCombined as {OrderNumber}-{ShipmentId}
OrderTypeOrderType.CodeOrder type code
CustomerEmailEmailNotification.ValueCustomer email for notifications
CustomerPhoneSmsNotification.ValueCustomer phone for notifications
ShippingAddressConsigneeDelivery address details
OrderNotesOrderRemarkCombined order notes
ShippingTotalFreightPriceShipping cost

Transporter Mapping

The integration supports multiple transporter integrations:

  • Unifaun: Maps transporterCode, transporterServiceCode, and servicePointCode
  • Porterbuddy: Special handling with ONGOING_PORTERBUDDY transporter 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

  1. Scheduled task queries Ongoing for orders changed since last sync
  2. For each changed order, the system matches it to an Omnium order
  3. Order status is mapped from Ongoing status to Omnium status (via OngoingStatus property on OrderStatus)
  4. Tracking information (waybill, tracking URL) is updated on shipments
  5. Shipping labels are downloaded and stored in blob storage
  6. For partial deliveries, new shipments are created in Omnium

Status Mapping

Configure status mapping via the OngoingStatus property on your order status configuration:

{
  "OrderStatuses": [
    {
      "Name": "ShippedFromWarehouse",
      "Properties": [
        { "Key": "OngoingStatus", "Value": "Skickat" }
      ]
    }
  ]
}

Tracking Information

The following tracking data is synchronized from Ongoing:

FieldSourceDescription
ShipmentTrackingNumberWaybill or ParcelNumberTracking number
ShipmentTrackingLinkTrackingUrlLink to carrier tracking page
LabelLinkOrder files (label*.pdf)Shipping label PDF (stored in blob)
ReturnLabelLinkOrder 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

  1. Scheduled task queries Ongoing for orders with unreported returned items
  2. For each return, the system creates a return in Omnium with:
    • Line items matching the returned quantities
    • Return type from Ongoing's return cause
    • Stock updates marked as completed
  3. After processing, Ongoing's ReportedReturnedNumberOfItems is updated

Return Properties

PropertyDescription
ReturnedByOngoingSet to true on returns created by sync
OngoingReturnErrorContains error details if return sync fails

Inventory Synchronization

Inventory levels are synchronized from Ongoing to Omnium.

Sync Methods

  1. Delta Sync: Fetches inventory changes since last sync (limited to 24 hours lookback)
  2. Full Sync: Scrolls through all articles for a specific warehouse

Inventory Flow

  1. Query Ongoing for inventory per warehouse
  2. Match Ongoing warehouse ID to Omnium warehouse via OngoingWarehouseId external ID
  3. Calculate inventory change (delta between Ongoing sellable quantity and current Omnium inventory)
  4. 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

  1. For products with variants, each variant is exported as a separate article
  2. The Ongoing Article System ID is stored as an external ID

Product Mapping

Omnium FieldOngoing FieldDescription
SkuIdArticleNumberSKU identifier
SkuIdProductCodeProduct code
WeightWeightWeight in kilograms
EanBarCodeInfo.BarCodeEAN barcode
DescriptionDescriptionProduct description
Name + ColorArticleNameCombined article name
ColorArticleColorColor attribute
SizeArticleSizeSize attribute
BrandSupplierInfo.SupplierNameBrand/supplier name
SupplierSkuIdSupplierInfo.SupplierArticleNumberSupplier article number
MainImageUrlLinkToPictureProduct image URL

Deleted Products

When a product is deleted in Omnium:

  • IsActive is set to false
  • Barcode is cleared (to avoid duplicate barcode conflicts in Ongoing)

Delivery/Purchase Order Export

Deliveries (inbound goods) are exported to Ongoing as Purchase Orders.

Export Flow

  1. Delivery triggers export workflow
  2. System retrieves associated purchase order lines
  3. Delivery is mapped to Ongoing Purchase Order
  4. Purchase Order ID is stored as property on the delivery

Delivery Mapping

Omnium FieldOngoing FieldDescription
Delivery.IdPurchaseOrderNumberDelivery ID
Supplier.NameSupplierInfo.SupplierNameSupplier name
Supplier.IdSupplierInfo.SupplierNumberSupplier ID
InvoiceNumberReferenceNumberInvoice reference

Purchase Order Status Sync

Purchase order status updates are synchronized from Ongoing to update delivery status in Omnium.

Status Constants

StatusCodeDescription
Ankommet199Arrived
Varslet200Notified
Inkommende300Incoming
Avvik400Deviation
Mottatt500Received
Makulert900Voided
Avbrutt1000Canceled

Goods Reception

When items are received in Ongoing, the integration:

  1. Calculates newly delivered quantities
  2. Creates goods reception lines
  3. Updates delivery line item quantities
  4. Processes inventory transactions

Scheduled Tasks

OngoingSyncScheduledTask

Main synchronization task that runs all enabled sync operations.

ConfigurationDescription
Task NameOngoingSyncScheduledTask
GroupPlugins
TypeDelta (time-based)

Runs the following operations based on connector settings:

  • SyncPurchaseOrders: Sync purchase order statuses
  • SyncOrders: Sync order statuses and shipping info
  • SyncReturns: Process returns from Ongoing
  • SyncInventory: Sync inventory levels

OngoingProductSyncScheduledTask

Scheduled task for bulk product export to Ongoing.

ConfigurationDescription
Task NameOngoingProductSyncScheduledTask
GroupPlugins
TypeDelta (time-based)

Exports products with available inventory that have been modified since the last sync.

External IDs and Properties

External ID Providers

ProviderEntityDescription
OngoingOrderIdOrder, ShipmentOngoing order system ID
OngoingArticleIdProduct, VariantFormat: {ArticleSystemId}_{GoodsOwnerId}
OngoingPurchaseOrderIdDeliveryOngoing purchase order ID
OngoingGoodsOwnerIdStoreGoods owner ID in Ongoing
OngoingWarehouseIdStoreWarehouse ID in Ongoing

Properties

Property KeyEntityDescription
IsOngoingStoreStoreMarks store as Ongoing warehouse
IsDeliveredShipmentShipmentMarks shipment as delivered from Ongoing
IsOrderLineDeliveredOrderLineMarks line as delivered
OngoingPurchaseOrderStatusDeliveryCurrent Ongoing PO status
ReturnedByOngoingOrderReturn created by Ongoing sync
OngoingReturnErrorOrderError details for return sync

Workflow Integration

Order Export Workflow Step

To enable order export to Ongoing, add a workflow step using the Ongoing connector:

{
  "Name": "ExportToOngoing",
  "Connector": "Ongoing",
  "Active": true,
  "TranslateKey": "WorkflowStep_OngoingExport"
}

Delivery Export Workflow Step

Configure delivery export in the delivery workflow:

{
  "Name": "ExportDeliveryToOngoing",
  "Connector": "Ongoing",
  "Active": true
}

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 OngoingReturnError property and ReportedReturnedNumberOfItems is updated to prevent repeated failures

Troubleshooting

Common Issues

IssuePossible CauseSolution
Orders not exportingWarehouse not configuredVerify IsOngoingStore property
No Goods Owner IDMissing external IDAdd OngoingGoodsOwnerId to store
Inventory not syncingWarehouse ID mismatchVerify OngoingWarehouseId mapping
Return sync failsLine item mismatchCheck OngoingReturnError property

Debugging Tips

  1. Verify connector options are correctly configured
  2. Ensure store has both OngoingGoodsOwnerId and OngoingWarehouseId
  3. Check scheduled task execution logs for sync errors